Ce sunt modelele Saga în AWS?

Ce Sunt Modelele Saga In Aws



Aplicațiile migrează către arhitecturi distribuite și microservicii. Cauzează probleme în menținerea datelor și gestionarea tranzacțiilor complexe. Modelele Saga oferă o soluție eficientă. Amazon Web Services (AWS) oferă numeroase instrumente și servicii care simplifică implementarea modelelor Saga. Acesta asigură gestionarea fără întreruperi a tranzacțiilor în aplicațiile distribuite.

Acest articol va explica ce sunt modelele de saga, componentele acestora, serviciile AWS acceptate și beneficiile acestora.







Ce sunt modelele Saga în AWS?

Modelele Saga sunt o tehnică de proiectare în arhitecturile de microservicii pentru a ajuta la distribuirea tranzacțiilor între alte servicii care interacționează pentru a crea procese de afaceri. Executarea unei tranzacții prin mai multe microservicii poate cauza unele dificultăți, cum ar fi probleme de consistență a datelor și defecțiuni ale sistemului.



Modelul Saga funcționează prin împărțirea tranzacțiilor distribuite în tranzacții mai mici cunoscute ca „Saga Steps” . Fiecare „Saga Step” reprezintă o operațiune legată de microserviciu. Dacă una sau mai multe „Saga Steps” eșuează, se iau imediat acțiunile necesare pentru a restabili starea aplicației. Consultați imaginea de mai jos pentru a înțelege funcționarea modelului saga:







Să aflăm despre componentele sale cheie:

Care sunt componentele modelelor Saga în AWS?

O soluție completă de microservicii necesită mai multe servicii într-o arhitectură distribuită. Un model de saga are câteva componente cheie, cum ar fi:



  • Saga Step
  • Saga Orchestrator
  • Compensare

Să discutăm pe scurt aceste componente.

Saga Step

Pașii Saga sunt operațiuni de microservicii sau sarcini efectuate ca parte a tranzacțiilor distribuite care nu au efecte secundare negative. Ele sunt repetate de mai multe ori și nu apar efecte secundare prin execuție repetată.

Saga Orchestrator

Responsabilitatea principală a unui orchestrator de saga este gestionarea și monitorizarea fiecărui pas din finalizarea cu succes a unei sagă. Începe tranzacțiile distribuite atunci când sunt luate măsurile adecvate. De asemenea, oferă compensații dacă vreun pas nu reușește.

Compensare

Atunci când se întâlnește o eroare în timpul procesului de saga, orchestratorul acesteia ia măsuri rapide și decisive pentru a schimba înapoi modificările introduse de pașii anteriori. Acest lucru asigură că sistemul menține ordinea chiar și în cazul unor erori.

Acestea au fost componentele principale ale unui model de saga. Să discutăm despre serviciile AWS care acceptă modele de saga.

Care sunt modelele Saga de servicii acceptate în AWS?

Acestea sunt serviciile oferite de Amazon care urmează modele de saga:

  • Funcții AWS Step
  • AWS Lambda
  • Amazon DynamoDB
  • Amazon SNS și SQS
  • Amazon API Gateway
  • AWS CDK
  • AWS SAM

Funcții AWS Step

Amazon Web Services Step Functions este un serviciu complet gestionat, conceput pentru a facilita fluxurile de lucru și gestionarea microserviciilor, oferind dezvoltatorilor mașini de stare care reprezintă mașini de stare complexe (modele saga). Dezvoltatorii pot proiecta tranzacții distribuite utilizând Funcții Step în timp ce le orchestrează eficient.

AWS Lambda

Serviciul de computer fără server Lambda al Amazon Web Services le permite dezvoltatorilor să ruleze cod fără a gestiona direct serverele. Face posibile modele de saga prin crearea de funcții Lambda reprezentând fiecare pas la nivel de rădăcină. Dezvoltatorii care folosesc funcții Lambda pentru reprezentarea pașilor îl pot utiliza în mod eficient atunci când reprezintă pașii individuali ai sagăi prin Lambdas.

Amazon DynamoDB

Amazon DynamoDB este un serviciu de baze de date NoSQL de la AWS care este complet gestionat. Oferă opțiuni sigure de stocare a datelor. Orchestratorii Saga pot utiliza DynamoDB pentru a urmări tranzacțiile distribuite pe măsură ce progresează.

Amazon SNS și SQS

Pentru a crea o comunicare bazată pe evenimente între microservicii, sunt combinate Amazon Simple Notification Service (SNS) și Simple Queue Service (SQS). Pașii Saga folosesc aceste servicii pentru a publica mesaje către alte microservicii după efectuarea unor operațiuni specifice. Aceste servicii notifică apoi alte microservicii despre starea de finalizare și actualizările de stare.

Amazon API Gateway

Amazon API Gateway este un serviciu cloud oferit de Amazon pentru a crea, publica și gestiona API-uri. Aceste API-uri pot fi scalate la orice nivel dorit. Acest serviciu conectează utilizatorul la AWS Lambda. Lambda este conectat în continuare la funcțiile pas care urmează modele de saga.

AWS CDK

AWS Cloud Development Kit (CDK) este un cadru și un instrument pentru a crea și implementa soluții cloud personalizate. Este un serviciu open-source. Aplicațiile construite pe arhitectura și designul modelelor de saga pot fi implementate folosind acest instrument.

AWS SAM

Modelul AWS Serverless Application este utilizat pentru a crea aplicații fără server. Acest cadru este, de asemenea, open source. Orice aplicație care utilizează modelul saga poate fi creată fără furnizarea de servere folosind AWS SAM.

Au existat servicii AWS care acceptă modele de saga. Să discutăm despre beneficiile pe care modelele de saga le oferă.

Care sunt beneficiile modelelor Saga în AWS?

Unele dintre beneficiile pe care modelele de saga le oferă sunt mai jos:

  • Managementul tranzacțiilor distribuite
  • Consistența datelor
  • Toleranță la erori
  • Scalabilitate
  • Să discutăm despre beneficii în detaliu.

    Managementul tranzacțiilor distribuite

    Modelele Saga oferă o soluție simplă, dar eficientă pentru gestionarea tranzacțiilor distribuite în arhitecturile de microservicii. Prin împărțirea tranzacțiilor în pași gestionați, acestea ajută la eficientizarea fluxurilor de lucru complexe.

    Consistența datelor

    Acțiunile de compensare sunt concepute pentru a menține consistența datelor chiar și în fața defecțiunilor parțiale ale sistemului și tranzacțiilor parțiale. Dezvoltatorii pot ajunge la o stare de echilibru, indiferent de rezultatele tranzacției în sistemele distribuite folosind modele saga.

    Toleranță la erori

    Modelele Saga oferă arhitecturi de microservicii cu toleranță îmbunătățită la erori, gestionând eșecurile la fiecare nivel de pas și compensând erorile. Ca rezultat, sistemele care le folosesc se pot recupera rapid din eșecurile parțiale ale tranzacțiilor fără a afecta performanța generală a aplicației.

    Scalabilitate

    Modelele Saga oferă scalabilitate orizontală, ceea ce permite sistemelor să gestioneze o sarcină tranzacțională crescută prin adăugarea mai multor instanțe de microservicii. O astfel de flexibilitate este de neprețuit pentru aplicațiile moderne care trebuie să facă față în mod eficient sarcinilor de lucru fluctuante.

    Acesta a fost totul despre modelele de saga și componentele și utilizările acestora în serviciile AWS.

    Concluzie

    Modelele Saga oferă o abordare eficientă pentru gestionarea tranzacțiilor distribuite în cadrul arhitecturilor de microservicii. AWS Step Functions, Lambda, DynamoDB, SNS și SQS sunt doar câteva servicii AWS care acceptă acest model. Acest articol a explicat cuprinzător modelul saga și funcționarea acestuia.