Jeszcze niedawno było tak: żeby wykonać operacje obliczeniowe potrzebny był sprzęt. Musiałeś mieć komputer, a w bardziej skomplikowanych procesach, całą rzeszę komputerów, upchaną w szafach serwerowni. Dziś mamy AWS Lambda, czyli serverless computing, liczenie bez komputera.
Rozwiązanie tradycyjne miało raczej więcej minusów niż plusów. Po wstępnej ocenie potrzeb trzeba było wydać ogromne sumy na sprzęt i jego instalację, konfigurowanie i oprogramowanie. Serwerownia taka to worek bez dna, a już kilka miesięcy po zakupie mogło okazać się, że potrzeby jednak są większe (albo mniejsze), a sprzęt wymagał od działu IT ciągłej opieki – wymiany, aktualizacji, rozwiązywania problemów itd. Po kilku latach od inwestycji, wraz z rozwojem technologii informacyjnych, cały nadawał się do wymiany. Wraz z tym trzeba było często zmieniać infrastrukturę, okablowanie i kupować nowe licencje.
Był co prawda inny sposób. Już od dawna istniały centra obliczeniowe, które sprzedawały określone zasoby obliczeniowe, wcześniej prognozowane i dzięki temu mogliśmy wykorzystywać ich sprzęt. Najprostszym przykładem były renderfarmy, z których usług często korzystały małe studia graficzne i filmowe. Zamiast stawiać własna serwerownie, zlecali przeliczanie skomplikowanych animacji 3D wyspecjalizowanym firmom. Dzięki temu, oszczędzając ogromne pieniądze w szybki sposób mogli widzieć efekty swojej pracy.
Z tego rozwiązania korzystali również naukowcy, często zamawiając obliczenia trudnych symulacji centrom obliczeniowym. Jednak nawet największa serwerownia ma swoje ograniczenia, choćby powierzchni. To rozwiązanie jest również ograniczone mocą klastra obliczeniowego i współdzielonych procesów w tym samym czasie. Jednak wraz z rozwojem technologii chmur obliczeniowych i wielkich, choć rozproszonych systemów, dziś korzystanie z takich usług nabrało zupełnie nowego wymiaru.
Nie chodzi już nawet o moc, bo czasami w usłuchach typu serverless computing z trudem można ją obliczyć. Częściej gra toczy się o ilość procesów obliczeniowych, które mają się w tym samym czasie odbywać. Ogromne sklepy internetowe, czy korporacje wykonują często procesy nie wymagające dużej mocy, jednak ich ilość w ciągu jednej sekundy jest spora.
Pomyślmy choćby o PayPal. W każdej sekundzie tysiące klientów rozpoczynają proces płatności. Gdyby oprzeć działanie tego systemu o standardowe procesy obliczeniowe, system miałby poważne problemy z obsługą takiej ilości płatności na raz. Albo inna ogromna organizacja, Coca-Cola Company. W tym przypadku nawet nie chodzi o klientów detalicznych, ale o dziesiątki tysięcy odbiorców, hurtowni i sklepów na całym świecie. Dostarczają one w każdej minucie małe pakiety danych o zamówieniu czy sprzedaży, które w miarę szybko muszą zostać obrobione.
Stawianie w różnych miejscach świata serwerowni mogłoby być rozwiązaniem, jednak korzystając z istniejącej już infrastruktury i systemu, jak choćby AWS Lambda, połączonego w ogromną chmurę obliczeniową, zaoszczędzimy naprawdę mnóstwo czasu i pieniędzy.
Oczywiście samo pojęcie serverless computing jest nieco mylące. Wszystkie obliczenia są przecież wykonywane przez komputery. Jednak po stronie klienta, czyli nas, pozostaje jedynie wrzucenie paczki z programem do wiadra, bo tak w środowisku Amazonu nazywa się pojedynczy pakiet ze skryptem, bez martwienia się o cały hardware, który ma wykonywać te procesy.
Patrząc na schemat działania wspomnianej AWS Lambda, wszystko wydaje się czytelne i transparentne od strony finansowej. Po wgraniu lub napisaniu we wbudowanym edytorze skryptu do wykonywania, system uruchamia proces jedynie w momencie otrzymania żądania z zewnątrz, choćby w momencie, gdy na stronie sklepu internetowego klient naciska guzik “Zapłać”. Po wykonaniu procesu płatności AWS Lambda kończy pracę i czeka na kolejne zlecenie. Poszczególne wiadra ze skryptami mogą oczywiście oddziaływać na siebie, choćby w czasie niestandardowych operacji – jedno wiadro uruchamia drugie.
AWS Lambda wymaga sporej wprawy programistycznej, gdy chcemy ją połączyć z naszą stroną internetową lub wewnętrznymi systemami informatycznymi. Możemy skorzystać z katalogu gotowych instancji i skryptów, które znajdziemy na stronie www projektu AWS. Jednak przed komercyjnym zastosowaniem, warto zasięgnąć porady wyspecjalizowanej firmy, jak choćby Greenlogic z Wrocławia, która wdraża w firmach rozwiązania obliczeń bez serwerów. Stosując wiele języków skryptowych integrują oni istniejący już w firmach system IT tak, by wszystkie obliczenia odbywały się po stronie Amazon. Dbają również o zabezpieczenie połączeń pomiędzy systemami, co na przykład podczas transakcji finansowych wydaje się kluczowe.
System jest skalowalny, czyli w razie potrzeby, na przykład zwiększonej ilości zakupów w naszym sklepie internetowym, wykonuje jednocześnie tyle pojedynczych operacji obliczeniowych tego samego skryptu, ile jest zleconych. Nie ma zatem potrzeby, jak w tradycyjnych systemach, kolejkowania procesów.
Stosując technologię serverless computing jak AWS Lambda oszczędzamy również na rachunkach za energię elektryczną. W czasie, gdy w naszym interesie jest mniejszy ruch, choćby w nocy, nie musimy zasilać dziesiątków serwerów, które stoją bezczynnie. W Lambdzie nie ma również opłat za rezerwację zasobów. Zawsze płacimy wyłącznie za czas pracy naszego skryptu. Trochę jak impulsy w telefonie, z tą różnicą, że naliczanie odbywa się co 100 ms.