Wyślij zapytanie Dołącz do Sii

W dziedzinie nowoczesnych rozwiązań chmurowych architektura serverless jest modnym hasłem, choć jej praktyczne zastosowania często pozostają niezbadane. Celem tego artykułu jest wypełnienie tej luki poprzez zademonstrowanie aplikacji internetowej Price Tracker. Oprócz wiedzy teoretycznej, artykuł kładzie nacisk na praktyczne zastosowania, aby pokazać, jak te koncepcje mogą zostać wykorzystane w rzeczywistych scenariuszach.

Wprowadzenie do architektury serverless oraz chmury AWS

Architektura serverless to rewolucyjny paradygmat przetwarzania w chmurze, który umożliwia programistom tworzenie i uruchamianie aplikacji bez konieczności zarządzania serwerami. Takie podejście daje możliwość skupienia się na kodzie, a nie na infrastrukturze, co pozwala na większą elastyczność i innowacyjność.

AWS Cloud, dostarczyciel usług przetwarzania w chmurze, oferuje kompleksowy ekosystem do skutecznego wdrażania architektury serverless. Pakiet usług jak:

  • Lambda,
  • API Gateway,
  • DynamoDB,

umożliwia programistom wdrażanie skalowalnych, wysoce dostępnych aplikacji. Dzięki wykorzystaniu AWS koncepcja serverless wykracza poza teorię, oferując solidną platformę, którą można użyć do rozwiązywania złożonych problemów.

O aplikacji

Aplikacja Price Tracker przeznaczona jest dla osób zainteresowanych obserwacją zmian cen produktów w czasie. Narzędzie automatycznie sprawdza zmiany cen, przechowuje je w bazie danych i wyświetla te informacje w formie wykresów. Jest to szczególnie przydatne w celach edukacyjnych, skupiających się na praktycznym zastosowaniu technologii serverless oraz tworzeniu aplikacji internetowych.

Przegląd architektury

Architektura aplikacji Price Tracker zbudowanej na platformie AWS stanowi przykład projektu serverless, który wykorzystuje możliwości oraz elastyczność zasobów chmury. Poniżej zaprezentuję wizualną reprezentację architektury wraz ze szczegółowym wyjaśnieniem.  

System działa poprzez szereg skoordynowanych działań pomiędzy usługami AWS w celu zarządzania danymi:

  • Tracking Lambda –funkcja stanowi serce operacji śledzenia cen. Jej zadaniem jest zebranie i zwrócenie odpowiednich danych o produkcie, który jest obserwowany: aktualnej ceny oraz znacznika czasu.
  • EventBridge Rule – reguła skonfigurowana za pomocą narzędzia EventBridge odpowiada za uruchamianie funkcji Tracking Lambda w regularnych odstępach czasu. Taka konfiguracja zapewnia okresowe śledzenie przedmiotu, dzięki czemu proces gromadzenia danych jest spójny i zautomatyzowany.
  • Handler Lambda – gdy funkcja Tracking Lambda zbierze dane, funkcja Handler Lambda przejmuje kontrolę. Przetwarza te dane i przechowuje je w tabeli DynamoDB. Oprócz tego funkcja jest również odpowiedzialna za generowanie wykresów obserwowanych produktów, które następnie przesyła do S3 bucket.
  • Gateway Lambda i API Gateway – funkcja Gateway Lambda łączy się z bramą API Gateway, która działa jako interfejs użytkownika. Kiedy użytkownik wysyła żądanie do serwera funkcja generuje kod html i przekazuje go użytkownikowi jako odpowiedź na jego żądanie.
  • S3 bucket (public) – aplikacja Price Tracker ma w kodzie html zawarte linki do wykresów ze zmianami cen. Wykresy są przechowywane w S3 bucket.

Hands-on

W części praktycznej można wybrać jedną z dwóch opcji – ręczną konfigurację aplikacji Price Tracker za pośrednictwem AWS Management Console (zalecane) lub opcję opartą na skryptach.

  • metoda ręczna za pomocą konsoli zapewnia dogłębne zrozumienie krok po kroku, jakie operacje są wykonywane,
  • opcja skryptowa jest przeznaczona dla programistów posiadających przynajmniej podstawową wiedzę z AWS; pozwala na szybką i zautomatyzowaną konfigurację środowiska AWS i uruchomienie projektu.

Niezależnie od tego, którą opcję wybierzemy, należy wykonać następujące kroki:

  1. Utwórz policies.
  2. Utwórz roles.
  3. Utwórz bucket (więcej informacji w sekcji: Uwagi dotyczące S3 bucket).
  4. Utwórz Tracking Lambda.
  5. Utwórz Handler Lambda.
  6. Dodaj Handler Lambda jako destinations do Tracking Lambda.
  7. Dodaj regułę EventBridge (wyzwalaj procedurę co dwie minuty).
  8. Utwórz Gateway Lambda.
  9. W API Gateway stwórz http endpoint, route oraz integration.
  10. Przetestuj aplikacje (wygenerowanie wykresu może zająć kilka minut).

Wymagania

  • Docker, instalacja: docker.com.,
  • Dostęp do AWS Management Console: link (opcja 1.),
  • Skonfigurowane AWS CLI, instalacja: link, konfiguracja link (opcja 2.).

Uwagi dotyczące S3 bucket

  1. Nazwa S3 bucket musi być unikalna wśród wszystkich istniejących bucketów w Amazon S3, a nie tylko w obrębie Twojego własnego konta AWS lub określonego regionu AWS. Istnieje duża szansa, że nie można użyć domyślnie używanej nazwy „price-tracker-plots”. Z tego powodu nazwę można dostosować w pliku app.config. Po zmianie pliku app.config należy ponownie zbudować projekt.
  2. Aplikacja Price Tracker ma w kodzie html zawarte linki do wykresów ze zmianami cen. Z uwagi na to, że wykresy te znajdują się w S3 bucket, aby użytkownik końcowy ładując stronę miał do nich dostęp, dostęp do bucketu musi być publiczny.

Opcja 1.: AWS Management Console

  1. Pobierz repozytorium: git clone [email protected]:czczajka/price-tracker-serverless.git
  2. Zmodyfikuj nazwę S3 bucket w pliku app.config (więcej informacji znajdziesz w sekcji: Uwagi dotyczące S3 bucket, punkt 1).
  3. Zbuduj wszystkie niezbędne artefakty: ./scripts/build.sh
  4. Obejrzyj film i odtwórz wszystkie kroki w nim zawarte.

Opcja 2.: zautomatyzowana, z wykorzystaniem AWS CLI

W drugim podejściu używamy skryptu, który wykorzystuje AWS CLI do wykonywania tej samej pracy w sposób zautomatyzowany. Jest to opcja dodatkowa oraz zawiera pewne rozwiązania na skróty, np.: wykorzystuje polecenie sleep pomiędzy poszczególnymi wywołaniami do AWS-a. Wynikiem końcowym działania skryptu jest adres URL, pod którym dostępna jest aplikacja Price Tracker.

Ważne

Aby pomyślnie uruchomić skrypty deploy_aws.sh i cleanup_aws.sh użytkownik, skonfigurowany z AWS CLI, musi posiadać wymagane uprawnienia do przeprowadzenia wszystkich potrzebnych operacji. W pliku policy/price-tracker-user.json znajduje się przykładowa polityka, którą można dołączyć do użytkownika.

Kroki do powtórzenia:

  1. Zmodyfikuj nazwę S3 bucket w pliku app.config (więcej informacji znajdziesz w sekcji: Uwagi dotyczące S3 bucket, punkt 1).
  2. Uruchom skrypt: ./scripts/deploy_aws.sh
  3. Przejdź do adresu URL (ostatnia linia zwracana ze skryptu) i sprawdź, czy działa strona poprawnie. Zanim wykres będzie dostępny, może minąć kilka minut.
  4. Uruchom skrypt: ./scripts/cleanup_aws.sh
  5. Dobrą praktyką jest sprawdzenie w AWS Management Console, czy wszystkie usługi zostały poprawnie usunięte za pomocą skryptu czyszczącego.

Podsumowanie

W artykule „Price Tracker: praktyczne zanurzenie się w aplikacjach serverless” zaprezentowałem proces tworzenia aplikacji internetowej do śledzenia cen produktów.

Obejmuje on podstawy przetwarzania serverless, podstawowe informacje o chmurze AWS, od konfiguracji usług takich jak Lambda i DynamoDB, planowanie wywołań z serwisem Event Bridge Rule, po wdrożenie ostatecznej aplikacji z wykorzystaniem API Gateway, demonstrując przy tym praktyczne zastosowanie technologii serverless w rzeczywistych scenariuszach.

***

Jeśli interesuje Cię temat narzędzi wykorzystywanych w IT, zajrzyj koniecznie również do innych artykułów naszych specjalistów.

4.9/5 ( głosy: 8)
Ocena:
4.9/5 ( głosy: 8)
Autor
Avatar
Cezary Czajka

Absolwent Informatyki na Politechnice Łódzkiej. Posiada wieloletnie doświadczenie w tworzeniu oprogramowania dla urządzeń IoT. Od ponad pół roku pracuje w Sii jako programista systemów wbudowanych. Lubi uczyć się nowych technologii, a później wykorzystywać je w praktyce. Czas po pracy spędza czytając książki, głównie o psychologii i ekonomii oraz uprawiając sporty. Kiedy jest tego wolnego czasu trochę więcej to wykorzystuje go na zwiedzanie świata.

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Może Cię również zainteresować

Pokaż więcej artykułów

Bądź na bieżąco

Zasubskrybuj naszego bloga i otrzymuj informacje o najnowszych wpisach.

Otrzymaj ofertę

Jeśli chcesz dowiedzieć się więcej na temat oferty Sii, skontaktuj się z nami.

Wyślij zapytanie Wyślij zapytanie

Natalia Competency Center Director

Get an offer

Dołącz do Sii

Znajdź idealną pracę – zapoznaj się z naszą ofertą rekrutacyjną i aplikuj.

Aplikuj Aplikuj

Paweł Process Owner

Join Sii

ZATWIERDŹ

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?