Cosa sono i modelli Saga in AWS?

Cosa Sono I Modelli Saga In Aws



Le applicazioni stanno migrando verso architetture distribuite e microservizi. Causa problemi nel mantenere i dati e gestire transazioni complesse. I modelli Saga offrono una soluzione efficace. Amazon Web Services (AWS) offre numerosi strumenti e servizi che semplificano l'implementazione dei modelli Saga. Garantisce una gestione delle transazioni senza soluzione di continuità tra le applicazioni distribuite.

Questo articolo spiegherà cosa sono i modelli saga, i loro componenti, i servizi AWS supportati e i loro vantaggi.







Cosa sono i modelli Saga in AWS?

I modelli Saga sono una tecnica di progettazione nelle architetture di microservizi per aiutare a distribuire le transazioni tra altri servizi che interagiscono per creare processi aziendali. L'esecuzione di una transazione su più microservizi può causare alcune difficoltà, ad esempio problemi di coerenza dei dati ed errori di sistema.



Il modello Saga funziona suddividendo le transazioni distribuite in transazioni più piccole note come 'Passi della saga' . Ogni 'Passo della saga' rappresenta un'operazione correlata al microservizio. Se uno o più 'Passi della saga' fail, vengono intraprese immediatamente le azioni necessarie per ripristinare lo stato dell'applicazione. Fare riferimento all'immagine qui sotto per comprendere il funzionamento del modello saga:







Cerchiamo di conoscere i suoi componenti chiave:

Quali sono i componenti dei modelli Saga in AWS?

Una soluzione di microservizi completa richiede diversi servizi in un'architettura distribuita. Un modello saga ha alcuni componenti chiave, come ad esempio:



  • Passo della Saga
  • Orchestratore della saga
  • Risarcimento

Discutiamo brevemente questi componenti.

Passo della Saga

I passaggi della saga sono operazioni o attività di microservizi eseguite come parte di transazioni distribuite che non hanno effetti collaterali negativi. Vengono ripetuti più volte e non si verificano effetti collaterali con l'esecuzione ripetuta.

Orchestratore della saga

La responsabilità principale di un orchestratore di saga è gestire e monitorare con successo ogni fase del completamento di una saga. Avvia le transazioni distribuite quando vengono prese le misure appropriate. Fornisce inoltre un risarcimento se un passaggio fallisce.

Risarcimento

Quando si verifica un errore durante il processo della saga, il suo orchestratore intraprende azioni rapide e decisive per ripristinare le modifiche introdotte dai passaggi precedenti. Ciò garantisce che il sistema mantenga l'ordine anche in caso di errori.

Questi erano i componenti principali di un modello di saga. Parliamo dei servizi AWS che supportano i modelli saga.

Quali sono i modelli Saga dei servizi supportati in AWS?

Questi sono i servizi offerti da Amazon che seguono i modelli della saga:

  • Funzioni AWS Step
  • AWS Lambda
  • Amazon DynamoDB
  • Amazon SNS e SQS
  • Gateway API di Amazon
  • AWSCDK
  • AWS SAM

Funzioni AWS Step

Amazon Web Services Step Functions è un servizio completamente gestito progettato per facilitare i flussi di lavoro e la gestione dei microservizi fornendo agli sviluppatori macchine a stati che rappresentano macchine a stati complesse (modelli saga). Gli sviluppatori possono progettare transazioni distribuite utilizzando Step Functions mentre le orchestrano in modo efficace.

AWS Lambda

Il servizio di computer senza server Lambda di Amazon Web Services consente agli sviluppatori di eseguire il codice senza gestire direttamente i server. Rende possibili i modelli saga creando funzioni Lambda che rappresentano ogni passaggio a livello di root. Gli sviluppatori che utilizzano le funzioni Lambda per rappresentare i passaggi possono utilizzarla in modo efficace quando rappresentano i singoli passaggi della saga tramite Lambda.

Amazon DynamoDB

Amazon DynamoDB è un servizio di database NoSQL di AWS completamente gestito. Offre opzioni affidabili per l'archiviazione dei dati. Gli orchestrator di Saga possono utilizzare DynamoDB per tenere traccia delle transazioni distribuite man mano che procedono.

Amazon SNS e SQS

Per creare comunicazioni basate su eventi tra i microservizi, vengono combinati Amazon Simple Notification Service (SNS) e Simple Queue Service (SQS). I passaggi di Saga usano questi servizi per pubblicare messaggi in altri microservizi dopo aver eseguito operazioni specifiche. Questi servizi notificano quindi ad altri microservizi lo stato di completamento e gli aggiornamenti dello stato.

Gateway API di Amazon

Amazon API Gateway è un servizio cloud di Amazon per creare, pubblicare e gestire le API. Queste API possono essere ridimensionate a qualsiasi livello desiderato. Questo servizio connette l'utente ad AWS Lambda. Lambda è ulteriormente connesso alle funzioni step che seguono i modelli saga.

AWSCDK

AWS Cloud Development Kit (CDK) è un framework e uno strumento per creare e distribuire soluzioni cloud personalizzate. È un servizio open source. Le applicazioni basate sull'architettura e sul design dei modelli saga possono essere distribuite utilizzando questo strumento.

AWS SAM

Il modello AWS Serverless Application viene utilizzato per creare applicazioni serverless. Anche questo framework è open source. Qualsiasi applicazione che utilizza il modello saga può essere creata senza la fornitura di server utilizzando AWS SAM.

C'erano servizi AWS che supportano i modelli saga. Parliamo dei vantaggi offerti dai modelli saga.

Quali sono i vantaggi dei modelli Saga in AWS?

Di seguito sono riportati alcuni dei vantaggi offerti dai modelli saga:

  • Gestione delle transazioni distribuite
  • Coerenza dei dati
  • Tolleranza ai guasti
  • Scalabilità
  • Cerchiamo di discutere i vantaggi in dettaglio.

    Gestione delle transazioni distribuite

    I modelli Saga forniscono una soluzione semplice ma efficiente per la gestione delle transazioni distribuite nelle architetture di microservizi. Suddividendo le transazioni in passaggi gestibili, aiutano a semplificare i flussi di lavoro complessi.

    Coerenza dei dati

    Le azioni di compensazione sono progettate per mantenere la coerenza dei dati anche a fronte di guasti parziali del sistema e transazioni parziali. Gli sviluppatori possono raggiungere uno stato di equilibrio indipendentemente dai risultati delle transazioni nei sistemi distribuiti utilizzando i modelli saga.

    Tolleranza ai guasti

    I modelli Saga forniscono architetture di microservizi con una migliore tolleranza agli errori gestendo gli errori a ogni livello di passaggio e compensando gli errori. Di conseguenza, i sistemi che li utilizzano possono recuperare rapidamente da errori di transazione parziali senza influire sulle prestazioni complessive dell'applicazione.

    Scalabilità

    I modelli Saga offrono scalabilità orizzontale, che consente ai sistemi di gestire un carico transazionale maggiore aggiungendo più istanze di microservizi. Tale flessibilità è preziosa per le app moderne che devono gestire efficacemente carichi di lavoro fluttuanti.

    Si trattava di modelli di saga e dei loro componenti e usi nei servizi AWS.

    Conclusione

    I modelli Saga forniscono un approccio efficace per la gestione delle transazioni distribuite all'interno delle architetture di microservizi. AWS Step Functions, Lambda, DynamoDB, SNS e SQS sono solo alcuni dei servizi AWS che supportano questo modello. Questo articolo ha spiegato in modo completo il modello della saga e il suo funzionamento.