Semplificazione delle operazioni - Implementazione di microservizi su AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Semplificazione delle operazioni

Per semplificare ulteriormente gli sforzi operativi necessari per eseguire, mantenere e monitorare i microservizi, possiamo utilizzare un'architettura completamente serverless.

Implementazione di applicazioni basate su Lambda

Puoi distribuire il codice Lambda caricando un archivio di file o creando e caricando zip un'immagine del contenitore tramite l'interfaccia utente della console utilizzando un URI di immagine Amazon ECR valido. Tuttavia, quando una funzione Lambda diventa complessa, vale a dire che ha livelli, dipendenze e autorizzazioni, il caricamento tramite l'interfaccia utente può diventare complicato per le modifiche al codice.

L'utilizzo di AWS CloudFormation and the AWS Serverless Application Model (AWS SAM) o Terraform semplifica il AWS Cloud Development Kit (AWS CDK) processo di definizione delle applicazioni serverless. AWS SAM, supportato nativamente da CloudFormation, offre una sintassi semplificata per specificare le risorse serverless.AWS Lambda I livelli aiutano a gestire le librerie condivise su più funzioni Lambda, riducendo al minimo l'ingombro delle funzioni, centralizzando le librerie compatibili con i tenant e migliorando l'esperienza degli sviluppatori. Lambda SnapStart per Java migliora le prestazioni di avvio per le applicazioni sensibili alla latenza.

Per distribuire, specifica le risorse e le politiche di autorizzazione in un CloudFormation modello, impacchetta gli elementi di distribuzione e distribuisci il modello. SAM Local, uno AWS CLI strumento, consente lo sviluppo, il test e l'analisi locali di applicazioni serverless prima del caricamento su Lambda.

L'integrazione con strumenti come AWS Cloud9 IDE e AWS CodePipeline semplifica la creazione AWS CodeBuild AWS CodeDeploy, il test, il debug e la distribuzione di applicazioni basate su SAM.

Il diagramma seguente mostra la distribuzione delle risorse utilizzando strumenti CI/CD. AWS Serverless Application Model CloudFormation AWS

Diagramma che mostra () AWS Serverless Application Model AWS SAM

Figura 2: AWS Serverless Application Model ()AWS SAM

Astrazione delle complessità legate alla multi-tenancy

In un ambiente multi-tenant come le piattaforme SaaS, è fondamentale semplificare le complessità legate alla multi-tenancy, permettendo agli sviluppatori di concentrarsi sullo sviluppo di caratteristiche e funzionalità. Ciò può essere ottenuto utilizzando strumenti come AWS Lambda Layers, che offrono librerie condivise per affrontare problemi trasversali. La logica alla base di questo approccio è che le librerie e gli strumenti condivisi, se usati correttamente, gestiscono in modo efficiente il contesto dei tenant. 

Tuttavia, non dovrebbero estendersi all'incapsulamento della logica aziendale a causa della complessità e dei rischi che possono comportare. Un problema fondamentale delle librerie condivise è la maggiore complessità degli aggiornamenti, che li rende più difficili da gestire rispetto alla duplicazione del codice standard. Pertanto, è essenziale trovare un equilibrio tra l'uso di librerie condivise e la duplicazione nella ricerca dell'astrazione più efficace.

Gestione API

La gestione APIs può richiedere molto tempo, soprattutto se si considerano più versioni, fasi del ciclo di sviluppo, autorizzazioni e altre funzionalità come la limitazione e la memorizzazione nella cache. Oltre ad API Gateway, alcuni clienti utilizzano anche ALB (Application Load Balancer) o NLB (Network Load Balancer) per la gestione delle API. Amazon API Gateway aiuta a ridurre la complessità operativa di creazione e manutenzione RESTful APIs. Ti consente di creare in modo APIs programmatico, funge da «porta d'ingresso» per accedere ai dati, alla logica di business o alle funzionalità dei tuoi servizi di backend, autorizzazione e controllo degli accessi, limitazione della velocità, memorizzazione nella cache, monitoraggio e gestione del traffico e funziona senza la gestione dei server. APIs

La Figura 3 illustra come API Gateway gestisce le chiamate API e interagisce con altri componenti. Le richieste provenienti da dispositivi mobili, siti Web o altri servizi di backend vengono indirizzate al CloudFront Point of Presence (PoP) più vicino per ridurre la latenza e fornire un'esperienza utente ottimale.

Diagramma che mostra il flusso di chiamate API Gateway

Figura 3: flusso di chiamate API Gateway