“Śledź paczkę” to nazwa fikcyjnej aplikacji serverless, którą wymyśliłem na potrzeby kursu wideo. Posłuży ona za praktyczny przykład tego, w jaki sposób można budować rozwiązania serverless w chmurze Amazon Web Services.
Szkolenie dostępne bezpłatnie na platformie Akademia Serverless Polska.
Możesz do niego dołączyć w dowolnym momencie i rozpocząć naukę. Wystarczy, że klikniesz tutaj!
Kod źródłowy znajduję się w publicznym repozytorium na GitHubie, po każdym odcinku był commit oraz tag, abyś mógł śledzić zmiany. Linki do repo pod każdym odcinkiem (od czwartego).
Lista lekcji w szkoleniu
Lekcja 01
Wprowadzenie do projektu i objaśnienie zasady działania aplikacji “Śledź paczkę”.
Diagram aplikacji.
Użyte usługi
- CloudWatch Events - służy do wywołania funkcji w interwałach czasowych. Taki cron lub harmonogram zdarzeń.
- AWS Lambda - funkcja jako serwis, umożliwia uruchamianie naszego kodu bez zaprzątania sobie głowy serwerami, paczami, firewallami i inną prozą życia
- DynamoDB - baza danych NoSQL. Piekielnie szybka i wysokodostępna. Płatna w modelu pay-as-you-go, to znaczy, że nie płaci się za czas uruchomienia serwera na którym działa baza, a za ilość danych w niej przechowywanych oraz żądania (odczyty i zapisy).
- Kolejka SNS - może służyć do kilku rzeczy. Tutaj wykorzystana w roli integratora pomiędzy dwoma funkcjami Lambda (krok 4) oraz jako kanał notyfikacji (krok 7).
Lekcja 02
Omówienie stworzenia projektu w Serverless Framework posługując się przygotowanym uprzednio szablonem.
Poniżej linki do materiałów o których mówiłem w wideo.
- szablon - https://github.com/serverlesspolska/serverless-aws-nodejs-starter
- Jak zainstalować Serverless Framework?
- Jak skonfigurować AWS CLI?
- Poradnik "12 Rzeczy o Serverless"
- Serverless Framework - https://serverless.com
Lekcja 03
Budowa funkcji pobierającej informacje o paczce ze strony kurierskiej oraz testowanie. Głównie programowanie w JavaScript.
Lekcja04
💥 Tworzymy funkcję AWS Lambda, deployujemy ją i testujemy - czyli programowanie serverless w czystej praktyce. Używamy Serverless Framework do konfiguracji i deploymentu.
Źródła projektu można pobrać stąd: https://github.com/serverlesspolska/sledz-paczke/tree/Odcinek04
Lekcja 05
Konfigurujemy topic SNS i integrujemy go z funkcją Lambda sprawdź info paczki w taki sposób, aby każda nowa wiadomość wysłana na topic uruchomiła tę funkcję.
Źródła projektu można pobrać stąd: https://github.com/serverlesspolska/sledz-paczke/tree/Odcinek05
Lekcja 06
Dodajemy kolejną funkcję AWS Lambda o nazwie sprawdź aktywne paczki i tym samym efektywnie implementujemy wzorzec fan-out.
Źródła projektu można pobrać stąd: https://github.com/serverlesspolska/sledz-paczke/tree/Odcinek06
Lekcja 07
Z tego odcinka dowiesz się jak za pomocą kilkunastu linijek kodu skonfigurować i stworzyć bazę danych DynamoDB posługując się CloudFormation w Serverless Framework.
Źródła projektu można pobrać stąd: https://github.com/serverlesspolska/sledz-paczke/tree/Odcinek07
Lekcja 08
Tym razem zaimplementujemy obsługę bazy DynamoDB w kodzie naszych funkcji oraz dodamy CoudWatch Event uruchamiający naszą aplikację, co godzinę.
Źródła projektu można pobrać stąd: https://github.com/serverlesspolska/sledz-paczke/tree/Odcinek08
Lekcja 09
W tym odcinku oprowadzę Cię po usłudze #CoudWatch Logs. Wytłumaczę, co to jest Structured Logging i dlaczego warto go używać?
Lekcja 10
Event-driven architecture - praktycznie i bez bólu. Konfigurujemy #DynamoDB Streams i integrujemy je z nową funkcją Lambda, służącą do wysyłania SMSów.
Źródła projektu można pobrać stąd: https://github.com/serverlesspolska/sledz-paczke/tree/Odcinek10
Lekcja 11
Tym razem kończymy implementacje funkcji Lambda, służącej do wysyłania SMSów. Konfigurujemy również AWS SNS, które będzie te SMSy wysyłać.
Źródła projektu można pobrać stąd: https://github.com/serverlesspolska/sledz-paczke/tree/Odcinek11
Lekcja 12
Łączymy wszystkie elementy ze sobą, aby skompletować w pełni działającą aplikację. Następnie wielki test czy SMSy przychodzą na telefon.
Źródła projektu można pobrać stąd: https://github.com/serverlesspolska/sledz-paczke/tree/Odcinek12
Szkolenie dostępne bezpłatnie na platformie Akademia Serverless Polska.
Miłego dnia 🙂