Hva er Saga Patterns i AWS?

Hva Er Saga Patterns I Aws



Applikasjoner migrerer mot distribuerte arkitekturer og mikrotjenester. Det forårsaker problemer med å vedlikeholde data og administrere komplekse transaksjoner. Saga-mønstre tilbyr en effektiv løsning. Amazon Web Services (AWS) tilbyr en rekke verktøy og tjenester som gjør det enkelt å implementere Saga-mønstre. Det sikrer sømløs transaksjonsadministrasjon på tvers av distribuerte applikasjoner.

Denne artikkelen vil forklare hva sagamønstre er, deres komponenter, støttede AWS-tjenester og deres fordeler.







Hva er Saga Patterns i AWS?

Saga-mønstre er en designteknikk i mikrotjenester-arkitekturer for å hjelpe til med å distribuere transaksjoner på tvers av andre tjenester som samhandler for å skape forretningsprosesser. Å utføre én transaksjon på tvers av flere mikrotjenester kan forårsake noen problemer, for eksempel problemer med datakonsistens og systemfeil.



Saga-mønsteret fungerer ved å dele opp distribuerte transaksjoner i mindre transaksjoner kjent som 'Saga Steps' . Hver 'Saga Step' representerer én operasjon relatert til mikrotjenesten. Hvis en eller flere 'Saga Steps' mislykkes, iverksettes nødvendige handlinger umiddelbart for å gjenopprette applikasjonstilstanden. Se bildet nedenfor for å forstå hvordan sagamønsteret fungerer:







La oss lære om nøkkelkomponentene:

Hva er komponentene i Saga Patterns i AWS?

En komplett mikrotjenesteløsning krever flere tjenester i en distribuert arkitektur. Et sagamønster har noen få nøkkelkomponenter, for eksempel:



  • Saga Step
  • Saga Orchestrator
  • Kompensasjon

La oss diskutere disse komponentene kort.

Saga Step

Saga-trinn er mikrotjenesteoperasjoner eller oppgaver utført som en del av distribuerte transaksjoner som ikke har negative bivirkninger. De gjentas flere ganger og ingen bivirkninger oppstår ved gjentatt utførelse.

Saga Orchestrator

En sagaorkestrators hovedansvar er å administrere og overvåke hvert trinn i en sagas fullføring. Den starter distribuerte transaksjoner når passende skritt er tatt. Det gir også kompensasjon hvis et trinn mislykkes.

Kompensasjon

Når det oppstår en feil under sagaprosessen, tar dens orkestrator raske og avgjørende handlinger for å endre tilbake endringene som ble introdusert i tidligere trinn. Dette sikrer at systemet holder orden selv ved feil.

Dette var hovedkomponentene i et sagamønster. La oss diskutere AWS-tjenestene som støtter sagamønstre.

Hva er Saga-mønstrene for støttede tjenester i AWS?

Dette er tjenestene som tilbys av Amazon som følger sagamønstre:

  • AWS trinnfunksjoner
  • AWS Lambda
  • Amazon DynamoDB
  • Amazon SNS og SQS
  • Amazon API-gateway
  • AWS CDK
  • AWS SAM

AWS trinnfunksjoner

Amazon Web Services Step Functions er en fullstendig administrert tjeneste designet for å lette arbeidsflyter og administrasjon av mikrotjenester ved å gi utviklere tilstandsmaskiner som representerer komplekse tilstandsmaskiner (sagamønstre). Utviklere kan designe distribuerte transaksjoner ved å bruke trinnfunksjoner mens de orkestreres effektivt.

AWS Lambda

Amazon Web Services’ Lambda serverløse datatjeneste lar utviklere kjøre kode uten å administrere servere direkte. Det gjør sagamønstre mulig ved å lage Lambda-funksjoner som representerer hvert trinn på rotnivå. Utviklere som bruker Lambda-funksjoner for å representere trinn kan bruke det effektivt når de representerer individuelle saga-trinn gjennom Lambdas.

Amazon DynamoDB

Amazon DynamoDB er en NoSQL-databasetjeneste av AWS som er fullt administrert. Den tilbyr pålitelige datalagringsalternativer. Saga-orkestratorer kan bruke DynamoDB for å spore distribuerte transaksjoner etter hvert som de går videre.

Amazon SNS og SQS

For å skape hendelsesdrevet kommunikasjon mellom mikrotjenester kombineres Amazon Simple Notification Service (SNS) og Simple Queue Service (SQS). Saga-trinn bruker disse tjenestene til å publisere meldinger til andre mikrotjenester etter å ha utført spesifikke operasjoner. Disse tjenestene varsler deretter andre mikrotjenester om fullføringsstatus og statusoppdateringer.

Amazon API-gateway

Amazon API Gateway er en skytjeneste fra Amazon for å lage, publisere og administrere APIer. Disse API-ene kan skaleres til et hvilket som helst ønsket nivå. Denne tjenesten kobler brukeren til AWS Lambda. Lambda er videre koblet til trinnfunksjonene som følger sagamønstre.

AWS CDK

AWS Cloud Development Kit (CDK) er et rammeverk og et verktøy for å lage og distribuere tilpassede skyløsninger. Det er en åpen kildekode-tjeneste. Applikasjoner bygget på sagamønsterarkitektur og design kan distribueres ved hjelp av dette verktøyet.

AWS SAM

AWS Serverless Application-modellen brukes til å lage serverløse applikasjoner. Dette rammeverket er også åpen kildekode. Enhver applikasjon som bruker sagamønsteret kan opprettes uten servere som bruker AWS SAM.

Det var AWS-tjenester som støtter sagamønstre. La oss diskutere fordelene som sagamønstre gir.

Hva er fordelene med Saga Patterns i AWS?

Noen av fordelene som sagamønstre gir er nedenfor:

  • Distribuert transaksjonsstyring
  • Datakonsistens
  • Feiltoleranse
  • Skalerbarhet
  • La oss diskutere fordelene i detalj.

    Distribuert transaksjonsstyring

    Saga-mønstre gir en enkel, men effektiv løsning for håndtering av distribuerte transaksjoner i mikrotjenestearkitekturer. Ved å dele opp transaksjoner i håndterbare trinn, hjelper de til med å strømlinjeforme komplekse arbeidsflyter.

    Datakonsistens

    Kompenserende handlinger er utformet for å opprettholde datakonsistens selv i møte med delvise systemfeil og delvise transaksjoner. Utviklere kan nå en likevektstilstand uavhengig av transaksjonsresultater i distribuerte systemer ved bruk av sagamønstre.

    Feiltoleranse

    Saga-mønstre gir mikrotjenestearkitekturer forbedret feiltoleranse ved å håndtere feil på hvert trinn og kompensere for feil. Som et resultat kan systemer som bruker dem raskt gjenopprette fra delvise transaksjonsfeil uten å påvirke den generelle applikasjonsytelsen.

    Skalerbarhet

    Saga-mønstre tilbyr horisontal skalerbarhet, som lar systemer håndtere en økt transaksjonsbelastning ved å legge til flere mikrotjenesteforekomster. Slik fleksibilitet er uvurderlig for moderne apper som effektivt må håndtere varierende arbeidsbelastninger.

    Dette handlet om sagamønstre og deres komponenter og bruk i AWS-tjenester.

    Konklusjon

    Saga-mønstre gir en effektiv tilnærming for håndtering av distribuerte transaksjoner innenfor mikrotjenestearkitekturer. AWS Step Functions, Lambda, DynamoDB, SNS og SQS er bare noen få AWS-tjenester som støtter dette mønsteret. Denne artikkelen har utførlig forklart sagamønsteret og dets virkemåte.