SlideShare a Scribd company logo
Amazon Step Functions
Sposób na implementację procesów w chmurze
Krzysztof Łoś
Node.js Developer
The Software House
2
Jak się koduje w AWS?
● Poprzez lambdy (AWS Lambda)
● Lambda = prosta funkcja / program
● Lambda = nanoserwis
● Łatwy deployment, wbudowane logi
● Komunikacja z DB, kolejkami, bucketami
● Wywoływanie innych lambd
3
Jak się koduje w AWS?
● Poprzez lambdy (AWS Lambda)
● Lambda = prosta funkcja / program
● Lambda = nanoserwis
● Łatwy deployment, wbudowane logi
● Komunikacja z DB, kolejkami, bucketami
● Wywoływanie innych lambd
4
Czy mamy jakiś problem?
● Tracing (wygodny)
5
Czy mamy jakiś problem?
● Tracing (wygodny)
6
Użyjmy Step Functions!
● Sekwencja, maszyna stanu
● Koordynacja procesu (różne typy kroków)
● Bezpośrednia komunikacja z usługami AWS
● Tracing kroków
● Piszemy w ASL
● Less-code
7
Jak zacząć zabawę?
8
Jak zacząć zabawę?
9
No nieźle…
10
Może coś prostszego
11
Szybki deploy
12
Odpalamy
13
Jak to wygląda?
14
Jak to wygląda?
15
No i w końcu ten tracing
16
Historia wywołań
17
Projektowanie wizualne
18
Jak z tym pracować?
19
Narzędzia
● Serverless Framework
● Visual Studio Code
● AWS Toolkit for VSC
20
Serverless Boilerplate
https://github.com/TheSoftwareHouse/serverless-boilerplate
21
AWS Toolkit
22
Nowy proces Ctrl+N
23
● Zamówienie
● Różna obsługa - klient prywatny vs. biznesowy
● Sprawdzenie stanów magazynowych - integracja kilku systemów
● Wybór magazynu
● Integracja z serwisem wysyłki
● Powiadomienie klienta
Wybór klienta
24
Step output:
Step input:
Obsługa klienta
25
arn:aws:lambda:us-west-2:123456789012:function:my-function
Step output:
Step input:
Sprawdzenie stanów magazynowych
26
Step input:
Step output:
Wybór magazynu
27
Step input:
Step output:
Integracja z serwisem wysyłki - kolejka
28
Step input: Step output:
Integracja z serwisem wysyłki - odpowiedź
29
Step input: Step output:
Integracja z serwisem wysyłki - aktualizacja statusu
30
Step input:
Step output:
Powiadomienie klienta
31
Step input:
Step output:
Jak to ulepszyć?
32
● Catch
Jak to ulepszyć?
33
● Retry
Jak to testować?
34
● Przez deployment
Jak to testować?
35
● Lokalnie
arn:aws:lambda:us-east-1:101010101010:function:tshExampleApp-dev-example-step-lambda
Jak to testować?
36
● Lokalnie
37
Podsumowanie
● Procesy lubią Step Functions
● Stosunkowo niskie koszty
● Nie wszystko się da
● Uwaga na ponawianie workflow!
38
Dzięki!

More Related Content

PDF
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
PDF
Uszanowanko Podsumowanko
PDF
Jak efektywnie podejść do certyfikacji w AWS?
PDF
O co chodzi z tą dostępnością cyfrową?
PDF
Chat tekstowy z użyciem Amazon Chime
PDF
Migracje danych serverless
PDF
Jak nie zwariować z architekturą Serverless?
PDF
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Uszanowanko Podsumowanko
Jak efektywnie podejść do certyfikacji w AWS?
O co chodzi z tą dostępnością cyfrową?
Chat tekstowy z użyciem Amazon Chime
Migracje danych serverless
Jak nie zwariować z architekturą Serverless?
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS

More from The Software House (20)

PDF
Feature flags na ratunek projektu w JavaScript
PDF
Typowanie nominalne w TypeScript
PDF
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
PDF
Serverless Compose vs hurtownia danych
PDF
Testy API: połączenie z bazą danych czy implementacja w pamięci
PDF
Jak skutecznie read model. Case study
PDF
Firestore czyli ognista baza od giganta z Doliny Krzemowej
PDF
Jak utrzymać stado Lambd w ryzach
PDF
Jak poskromić AWS?
PDF
O łączeniu Storyblok i Next.js
PDF
Od Figmy do gotowej aplikacji bez linijki kodu
PDF
Co QA może i czego nie powinien się bać?
PDF
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
PDF
Pierwsza wycieczka nad jezioro (danych)
PDF
A w więc chcesz zostać frontend developerem?
PDF
DynamoDB – podstawy modelowania danych dla opornych
PDF
Komunikacja oparta o zdarzenia z wykorzystaniem AWS Event Bridge
PDF
DIY: React.js od zera
PDF
Jak poprawić Core Web Vitals w aplikacji Next.js
PDF
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
Feature flags na ratunek projektu w JavaScript
Typowanie nominalne w TypeScript
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Serverless Compose vs hurtownia danych
Testy API: połączenie z bazą danych czy implementacja w pamięci
Jak skutecznie read model. Case study
Firestore czyli ognista baza od giganta z Doliny Krzemowej
Jak utrzymać stado Lambd w ryzach
Jak poskromić AWS?
O łączeniu Storyblok i Next.js
Od Figmy do gotowej aplikacji bez linijki kodu
Co QA może i czego nie powinien się bać?
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
Pierwsza wycieczka nad jezioro (danych)
A w więc chcesz zostać frontend developerem?
DynamoDB – podstawy modelowania danych dla opornych
Komunikacja oparta o zdarzenia z wykorzystaniem AWS Event Bridge
DIY: React.js od zera
Jak poprawić Core Web Vitals w aplikacji Next.js
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
Ad

Amazon Step Functions. Sposób na implementację procesów w chmurze