Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Migracja do chmury, prosta czy natywna?

Avatar for MG MG
September 13, 2021

Migracja do chmury, prosta czy natywna?

In this presentation, I'm showing how to model business processes in AWS Cloud.

Avatar for MG

MG

September 13, 2021
Tweet

More Decks by MG

Other Decks in Programming

Transcript

  1. Informacje dodatkowe • Pytania można zadawać w sekcji Q&A •

    Głosowo na koniec webinaru • Po webinarze na e-mail [email protected] • Wszystkie pytania zostaną obsłużone również w formie pisemnej • Czas trwania: około 40 minut • Nagranie będzie na YT 3
  2. 5 Mateusz Boś Cloud Architect https://www.linkedin.com/i n/mateuszbos/ Michał Górski Chief

    Architect https://www.linkedin.com /in/michal-gorski/ Cześć!
  3. 6

  4. Wprowadzenie do problemu 7 Stan obecny • Napisany przed wzrostem

    firmy, obsługuje 100k faktur • Często pojawiają się błędy, ich obsługa jest trudna • Cykl fakturowania trwa około 6 godzin Cel • Skrócenie czasu przetwarzania • Łatwa obsługa błędów • Umożliwienie skalowania do 5x obecnego ruchu • Tylko zarządzane usługi - zero utrzymania!
  5. Przetwarzanie batchowe Tips & Tricks - idempotentność 28 Message 1

    Message 2 Message 3 Message 4 Message 5 Lambda Error Idempotent Lambda All messages
  6. Przetwarzanie batchowe Tips & Tricks - usuwanie wiadomości 29 Message

    1 Message 2 Message 3 Message 4 Message 5 Lambda Delete Message Delete Message Delete Message Delete Message Delete Message
  7. Przetwarzanie batchowe Tips & Tricks - usuwanie wiadomości 30 Message

    1 Message 2 Message 3 Message 4 Message 5 Throw exception Lambda Delete Message Delete Message Delete Message Delete Message VisibilityTimeout: 60
  8. 32 Regulowanie przepustowości Reserved Concurrency Minusy • Na stałe zmniejszamy

    dostępnych jednoczesnych wywołań na konto • Wiadomość może nigdy nie zacząć się przetwarzać i wylądować na DLQ • Metryki stają się mało czytelne CloudFormation SampleLambda: Type: AWS::Serverless::Function Properties: ReservedConcurrentExecutions: 5
  9. 33 Regulowanie przepustowości MessageGroupId Wymagania • Kolejka FIFO • Generowanie

    MessageGroupId Wysyłanie wiadomości new SendMessageRequest { QueueUrl = "sqs-url", MessageGroupId = random.Next(0, 4).ToString(), MessageBody = "message" } CloudFormation SampleQueue: Type: AWS::SQS::Queue Properties: FifoQueue: true
  10. 34 Regulowanie przepustowości MessageGroupId Group1 Group2 Group3 SQS 3 GroupIds

    = 3 Lambdas FIFO FIFO FIFO MessageGroupId: Group2 MessageGroupId: Group3 Message Message Message MessageGroupId: Group1 MessageGroupId: Group2 MessageGroupId: Group3
  11. 41 Tracing - CorrelationId Przykładowy log { "timestamp": "2021-09-01T20:20:20.991Z", "log-message":

    "Sample log message", "log-level": "ERROR", "correlation-id": "24af2e27-86bc-4548-92cc-72186955fefc" }