
Google Data Studio: Bądź pomysłowy w wizualizacji danych
31 maja 2019
Po co mi to big data? Analiza ogromnych baz danych.
8 lipca 2019
Jeszcze do niedawna było tak: aby wykonywać operacje obliczeniowe, potrzebowałeś sprzętu. Musiałeś mieć komputer, a w bardziej skomplikowanych procesach, całą ich mnogość, upchaną w serwerowniach. Dziś mamy AWS Lambda, czyli tzw. serverless computing, liczenie bez komputera.
Tradycyjne rozwiązanie miało więcej wad niż zalet. Po początkowej ocenie potrzeb, należało wydać potężne pieniądze na sprzęt oraz jego instalację, konfigurację i oprogramowanie. Taka serwerownia to studnia bez dna, a już kilka miesięcy po zakupie mogło się okazać, że potrzeby są większe (lub mniejsze), a sprzęt wymagał stałej opieki ze strony działu IT – wymiany, aktualizacji, usuwania usterek itp. Kilka lat po inwestycji, wraz z rozwojem technologii informatycznych, wszystko to nadawało się do wymiany. Wraz z tym należało często zmieniać infrastrukturę, okablowanie i kupować nowe licencje.
Była jednak inna droga. Już od dawna istniały centra danych, które sprzedawały pewne zasoby danych, przewidziane z wyprzedzeniem, a my byliśmy w stanie korzystać z ich sprzętu. Najprostszym przykładem były renderfarmy, z których często korzystały małe studia graficzne lub filmowe. Zamiast budować własne serwery, zlecały one wyspecjalizowanym firmom liczenie skomplikowanych animacji 3D. To pozwalało im szybko zobaczyć wyniki swojej pracy, jednocześnie oszczędzając ogromne sumy pieniędzy.
Bez komputera?
Z tego rozwiązania korzystali też naukowcy, często zlecając trudne symulacje do centrów danych. Jednak nawet największa serwerownia ma swoje ograniczenia, choćby przestrzeń. Rozwiązanie to ograniczone jest też mocą klastra obliczeniowego i współdzielonych jednocześnie procesów. Jednak z rozwojem technologii cloud computing oraz dużych, choć rozproszonych systemów, dzisiaj korzystanie z takich usług nabrało zupełnie nowego wymiaru.
Nie chodzi już nawet o moc, bo czasami w usługach obliczeń bezserwerowych trudno ją obliczyć. Coraz częściej chodzi o ilość procesów obliczeniowych, które mają się odbywać w tym samym czasie. Olbrzymie sklepy internetowe czy korporacje, często wykonują procesy, które nie wymagają dużych obliczeń, ale ich liczba na sekundę jest przytłaczająca.
Chmura w służbie korporacji
Pomyślmy chociażby o systemie PayPal. Co sekundę tysiące klientów rozpoczyna proces płatności. Gdyby ten system oparty był na standardowych procesach obliczeniowych, miałby poważne problemy z obsłużeniem takiej liczby płatności naraz. Albo inna potężna organizacja, The Coca-Cola Company. W tym wypadku nie chodzi nawet o klientów detalicznych, ale o dziesiątki tysięcy kontrahentów, hurtowni i sklepów na całym świecie. Co minutę dostarczają oni niewielkie paczki danych o zamówieniach i sprzedaży, które trzeba stosunkowo szybko przetworzyć.
Buckety z programami
Budowanie serwerowni w różnych częściach świata mogłoby być rozwiązaniem, jednak korzystając z istniejącej infrastruktury i systemu, takiego jak AWS Lambda, połączonych w jedną, olbrzymią chmurę obliczeniową, zaoszczędzimy mnóstwo czasu i pieniędzy.
Oczywiście, sama koncepcja przetwarzania bezserwerowego (serverless computing) jest nieco myląca. Naturalnie, wszystkie obliczenia są wykonywane przez komputery. Jednakże, po stronie klienta, czyli nas, pozostaje jedynie wrzucić pakiet z programem do tzw. bucketa, ponieważ tak w środowisku Amazon nazywany jest pojedynczy pakiet ze skryptem, bez martwienia się o cały sprzęt, który ma wykonać te procesy.
Patrząc na schemat działania wspomnianej AWS Lambda, wszystko wydaje się być jasne i przejrzyste z finansowego punktu widzenia. Po wgraniu lub napisaniu w wbudowanym edytorze skryptu do wykonania, system uruchamia proces tylko wtedy, gdy otrzyma żądanie z zewnątrz, jak np. naciśnięcie przez klienta przycisku „Zapłać” na stronie internetowej. Po zakończeniu procesu płatności, AWS Lambda przestaje działać i czeka na kolejne zamówienie. Poszczególne buckety ze skryptami mogą oczywiście wchodzić ze sobą w interakcje, np. podczas niestandardowych operacji – jeden bucket uruchamia drugi.
Zintegruj i oszczędzaj pieniądze
AWS Lambda wymaga sporych umiejętności programistycznych, gdy chcemy ją podłączyć do naszej strony internetowej lub wewnętrznych systemów IT. Możemy korzystać z katalogu gotowych instancji i skryptów, które znajdują się na stronie projektu AWS. Jednak przed komercyjnym użyciem warto skonsultować się ze specjalistyczną firmą, taką jak wrocławska Greenlogic, która wdraża w firmach rozwiązania z zakresu serverless computing. Wykorzystując wiele języków skryptowych, integruje ona już istniejący w firmach system IT tak, aby wszystkie obliczenia były wykonywane po stronie Amazonu. Dbają również o zabezpieczenie połączeń między systemami, co np. podczas transakcji finansowych ma najwyższe znaczenie.
System jest skalowalny, co oznacza, że w razie potrzeby wykonuje jednocześnie tyle pojedynczych operacji obliczeniowych tego samego skryptu, ile mu się zleci, np. podczas zwiększonej liczby zakupów w naszym sklepie internetowym. Nie ma zatem potrzeby, jak w tradycyjnych systemach, kolejkowania procesów.
Korzystając z technologii serverless computing, takiej jak AWS Lambda, oszczędzamy również na rachunkach za prąd. W czasie, gdy ruch jest mniejszy, np. w nocy, w naszym interesie jest, aby nie zasilać dziesiątek serwerów, które stoją bezczynnie. Nie ma również żadnych opłat rezerwacyjnych za zasoby w Lamdzie. Zawsze płacimy tylko za czas pracy naszego skryptu. Trochę jak impuls w telefonie, z tą różnicą, że jest naliczany co 100 ms.


