Droga do serverless - którą ścieżkę wybierzesz?


Droga do Serverless
Na bazie własnego doświadczenia oraz lektury wielu blogów, wysłuchania podcastów i prezentacji mogę śmiało powiedzieć, że istnieją dwie najpopularniejsze drogi do użycia serverless w każdej organizacji.

Pierwsza to greenfield. Powstaje nowy projekt i ktoś (może to byłeś Ty 😃🤝 ) zadecydował, że zostanie on dostarczony w chmurze zgodnie z architekturą serverless.

Druga ścieżka wiedzie przez scenariusz niskiego ryzyka. Innymi słowy, Ty i/lub Twoja organizacja, widzi potencjał, ale nie chce od razu skakać na głęboką wodę. Najpierw trzeba się obwąchać z tą całą Lambdą, a dopiero gdy się ją lepiej pozna wkroczyć w świat serverless.

Będę z Tobą szczery, jeśli jesteś szczęściarzem to trafi Ci się nowiuśki projekt w serverless. Twoje szanse są jak jeden do czterech. Bazuję tutaj na danych z publikacji Cloud Programming Simplified: A Berkeley View on Serverless Computing, która mówi „recent surveys found that about 24% of serverless users were new to cloud computing”. W podobnym tonie ostatnio się wypowiedział Austen Collins, twórca Serverless Framework i CEO Serverless Inc. Zapytany o najpopularniejszą chmurę wśród użytkowników Serverless Framework powiedział, że dominuje AWS oraz dodał „about 25% of our users have never even used AWS before”. Czyli 1/4 firm, nawet bez doświadczenia w chmurze, startuje od serverless. Osobiście mnie to nie dziwi, bo dzięki serverless mnóstwo rzeczy przestaje być naszym problemem.

Jeśli natomiast należysz do pozostałej grupy osób to musisz walczyć o swoje! Przekonywać szefa, architekta, admina oraz kolegów z zespołu, że ta cała Lambda i serverless mają sens. Najprościej będzie to zrobić dysponując gotowym przykładem. Najlepiej z wewnątrz organizacji. Ale skąd go wziąć skoro nikt jeszcze nie zrobił takiego projektu? 🤔

Odpowiedź jest prosta: samemu musisz go stworzyć! To jest właśnie druga ścieżka.

Bierne czekanie na super projekt to kiepska strategia. Bądź niepokorny! Nie zgadzaj się na status quo. Stąd rodzi się, tak pożądana w obecnych czasach, innowacyjność.

Znajdź jakiś problem, który można rozwiązać używając AWS Lambda. Na początku to nie musi być pełnoprawne rozwiązanie serverless. Możliwe, że prosta funkcja Lambda może automatyzować pewne zadania w tradycyjnym, serwerowym rozwiązaniu. To właśnie może być Twoja szansa na pierwsze wdrożenie!

👉 Aby Ci pomóc zidentyfikować takie obszary, przygotowałem listę popularnych zastosowań Lambdy:

  1. wszelkie zadania cronowe (wywoływane, co pewien czas). np. kopiowanie plików, prasowanie ich i inne transformacje.
  2. cykliczne odpytywanie usług wewnętrznych albo firm trzecich i np. zapisywanie zwróconych danych do bazy.
  3. tworzenie raportów lub przynajmniej uruchamiane z odpowiednimi parametrami usługi, która te raporty generuje
  4. automatyzacja zadań administratorskich w chmurze (cloud operations). Funkcja Lambda za pomocą AWS SDK może zrobić to samo, co człowiek klikając w konsole webową AWS. Tylko szybciej i pewniej.
  5. (prze)konfigurowanie usług AWS w odpowiedzi na zdarzenie np. w odpowiedzi na uruchomienie nowego serwera EC2 funkcja Lambda modyfikuje rekord DNS w Route53 (przydatne, gdy z jakiegoś powodu nie chcesz używać load balancerów)
  6. jako custom resource w Cloud Formation, w sumie konieczne do stosowania w bardziej zaawansowanych wdrożeniach
  7. gdy masz w chmurze na serwerach “starodawne” aplikacje serwerowe firm trzecich, którym musisz podać licencje. Lambda może okazać się świetnym rozwiązaniem do automatyzacji takiego procesu. Szczególnie, jeśli te serwery są w Auto Scaling Group.
  8. wymuszanie procedur bezpieczeństwa np. automatyzacja wymiany, co 90 dni, kluczy dostępowych do AWS (IAM access keys)
  9. disaster recovery, oczywiście nie całe, ale Lambda może być użyta, jako narzędzie monitorujące stan aplikacji i w razie potrzeby może uruchomić cały proces. Może być też użyta do tego, aby zbudować zastępcze środowisko (jeśli mamy infrastrukturę opisaną jako kod np. w CloudFormation). Na pewno się przyda w tańszych podejściach DR takich jak „Backup & Restore” lub „Pilot light”
  10. automatyzacja pewnych kroków w procesie CI/CD
  11. automatyzacja testów np. można uruchamiać Chroma w lambdzie, aby testował nasze aplikacje webowe
  12. scraping stron WWW
  13. customowa autentykacja w Cognito
  14. boty, które np. wysyłają informacje na firmowego Slacka, na bazie zdarzeń w chmurze
  15. chatboty dla biznesu
  16. transcoding plików wideo i audio
  17. zamiana tekstu na mowę (wraz z AWS Polly)

To tylko klika pomysłów prosto z mojej głowy, które nadają się na pierwszy mini projekcik niskiego ryzyka z AWS Lambda w roli głównej. Każdy z nich pozwoli Tobie zademonstrować w praktyce zalety tego podejścia przed szefem i kolegami z zespołu. To nie musi robić wielkiego wrażenia, raczej to ma być taki „but w drzwi” pozwalający na dalszą, organiczną ekspansję Lambdy w Twoje firmie. Pamiętaj „jeden mały krok dla człowieka…” i tak dalej 🙂

Jeśli nasuwają Ci się jakieś pytania lub pomysły to napisz do mnie lub rozpocznij dyskusję na naszym forum internetowym tutaj https://forum.serverlesspolska.pl/



Cześć

Nazywam się Paweł Zubkiewicz i cieszę się, że tu jesteś!
Od ponad 13 lat profesjonalnie tworzę oprogramowanie, a od 2016 roku pasjonuje się Serverless.
Tą stronę stworzyłem z myślą o Tobie i o nas wszystkich, którzy uważają, że trend serverless trwale zmieni sposób tworzenia oprogramowania.
Więcej o tej stronie...

Kategorie

Pobierz bezpłatny PDF

Poradnik 12 Rzeczy o Serverless

Wybrane artykuły