I recenti progressi nelle architetture del cloud computing e senza server hanno già cambiato il modo in cui vengono create le applicazioni. Tra i servizi più ampiamente riconosciuti per il calcolo senza server c’è AWS Lambda, che consente l’esecuzione del codice senza gestire alcun server. D’altra parte, un’applicazione su larga scala contiene generalmente molte dipendenze e configurazioni mantenibili.
Questo articolo esamina come i livelli di Lambda AWS e la formazione di cloud possono essere utilizzati per sviluppare sistemi scalabili, efficienti e mantenibili senza server.
Cosa sono gli strati AWS Lambda?
Gli strati lambda risolvono problemi comuni affrontati Sviluppo senza server, come la gestione delle dipendenze comuni tra le funzioni, le ottimizzazioni dei pacchetti distribuibili e la produttività degli sviluppatori. I vantaggi degli strati Lambda sono meglio visti in grandi applicazioni costruite su molteplici funzioni che dipendono da librerie di utilità sviluppate internamente e librerie di terze parti comunemente usate.
I vantaggi chiave dell’utilizzo degli strati AWS Lambda possono essere riassunti così:
1. La capacità di sfruttare le competenze esistenti
Gli strati lambda promuovono la conformità al Non ripetere te stesso (asciutto) principio. Piuttosto che avere dipendenze ridondanti o logica comune come parte di una information funzione Lambda, tali elementi sono raggruppati e incapsulati in un singolo livello per consentire la condivisione in molte funzioni. Ciò avvantaggia l’eliminazione del codice duplicato e promuove l’applicazione coerente di librerie o logiche comuni. Advert esempio, un’organizzazione che utilizza la libreria di richieste per le chiamate HTTP in 10 numerous funzioni Lambda può creare un livello con quella libreria e collegarla a tutte le funzioni pertinenti, piuttosto che le richieste di imballaggio in ognuna.
2. Piccoli dimensioni del payload
AWS Lambda ha limiti di dimensioni dell’imballaggio: dimensioni compresse massime di 50 MB e una dimensione massima non rimbalzata di 250 MB. Molte dipendenze, in particolare quelle rilevanti per la scienza dei dati come Numpy, Panda e Scipy, si aggiungono alle dimensioni più grandi di pacchetti. Usando i livelli su tali dipendenze, diventa più facile avere un pacchetto di funzioni pulito. Ora che il pacchetto viene utilizzato per concentrarsi esclusivamente sulla logica del enterprise principale.
3. Valutazione e manutenzione migliorate
I livelli Lambda eliminano la necessità di aggiornare ciascuna funzione quando sono necessarie modifiche a una dipendenza comune. Solo il livello deve essere aggiornato, quindi viene pubblicata una nuova versione e quindi collegata alle funzioni dipendenti.
4. Migliore controllo della versione
Una pdata a livello di strato provoca la generazione di una versione fresca. Ciò facilita la selezione della versione particolare del livello utilizzato da qualsiasi funzione specificata e quindi offre il pieno controllo del ciclo di vita di distribuzione. Oltre a garantire la compatibilità all’indietro, il modello di versioning semplifica anche l’implementazione dei protocolli di take a look at come precursore delle distribuzioni di massa in tutte le funzioni.
5. Contesti di esecuzione personalizzati e funzionalità additional
I livelli Lambda consentono di integrare ambienti di runtime personalizzati, consentendo così agli sviluppatori di implementare linguaggi di programmazione che il runtime di Lambda non supporta in modo nativo. In secondo luogo, funzionalità aggiuntive come un runtime Ruby o PHP personalizzate sono abilitate da questi livelli. In terzo luogo, le soluzioni di monitoraggio di Datadog e New Relic Tipo possono anche essere combine al fantastic di aumentare l’osservabilità complessiva.
6. Isolamento e sicurezza
La segregazione di file di configurazione riservati, strumenti di sviluppo del software program (SDK) o strumenti in livelli separati rende più semplice per i staff gestire la loro governance in termini di gestione dell’accesso. Questi livelli sono condivisibili su più account utilizzando il gestore AWS Useful resource Entry Supervisor (RAM) e limitati ulteriormente utilizzando le autorizzazioni IAM.
Strati lambda con formazione cloud per ottimizzare
I livelli AWS Lambda si integrano con CloudFormation per la distribuzione senza soluzione di continuità e la manutenzione delle infrastrutture.
Questi sono i passaggi per ottimizzare il calcolo senza server:
Passaggio 1: creare un livello Lambda
-
Preparare le dipendenze: Crea una struttura di cartelle con tutte le dipendenze all’interno ::
mkdir python pip set up requests -t python/
-
ZIP il contenuto del livello:
-
Carica il livello su AWS:
aws lambda publish-layer-version --layer-name MyLayer --zip-file fileb://layer.zip --compatible-runtimes python3.8
-
Salva l’arn di livello: Prendi nota dell’arn che AWS restituisce in modo che possa essere utilizzato con CloudFormation ..
Passaggio 2: definire lo strato Lambda in CloudFormation
Assets:
MyLayer:
Sort: AWS::Lambda::LayerVersion
Properties:
LayerName: MyLayer
CompatibleRuntimes:
- python3.8
Content material:
S3Bucket: my-layer-bucket
S3Key: layer.zip
Passaggio 3: usando il livello con una funzione Lambda
Assets:
MyFunction:
Sort: AWS::Lambda::Perform
Properties:
FunctionName: MyFunction
Runtime: python3.8
Handler: app.handler
Code:
S3Bucket: my-code-bucket
S3Key: my-code.zip
Layers:
- !Ref MyLayer
Position: !GetAtt MyLambdaExecutionRole.Arn
Passaggio 4: automatizzare la distribuzione utilizzando CloudFormation
aws cloudformation deploy --template-file template.yaml --stack-name MyServerlessApp
Caso d’uso: ottimizzazione del again -end API
State of affairs: È stata sviluppata un’API senza server senza server in cui una serie di funzioni Lambda dipendono da dipendenze comuni come requests
E boto3
.
Problema: Le dipendenze ripetute aumentano le dimensioni del pacchetto e la distribuzione lenta.
Soluzione:
- Metti le dipendenze comuni in uno strato Lambda.
- Utilizzare CloudFormation per dichiarare livelli e funzioni.
- Fare riferimento a un livello condiviso da più funzioni ed evita la ridondanza.
Le migliori pratiche di strati lambda con formazione cloud
- Vstrati ersion in modo appropriato: La versione semantica consentirà il monitoraggio degli aggiornamenti.
- Ottimizza il contenuto del livello: Includi solo le dipendenze necessarie, tenendo presente le dimensioni.
- Sfrutta S3 per file di grandi dimensioni: Conservare i livelli più grandi in S3 e fare riferimento a CloudFormation.
- Compatibilità del take a look at: Testa la compatibilità degli strati con i punti di Lambda AWS.
- Monitor Utilizzo: Il monitoraggio tramite AWS CloudWatch sarà utile per osservare le prestazioni e le richieste per livello.
Vantaggi della combinazione di livelli di lambda e formazione cloud
- Efficienza: Fornire processi di sviluppo e distribuzione regolari.
- Scalabilità: Replicare facilmente le architetture in tutti gli ambienti.
- Risparmio dei costi: Ridurre al minimo l’archiviazione e la duplicazione delle dipendenze.
- Manutenibilità: Semplifica aggiornamenti e gestione delle versioni.
Conclusione
I livelli di Lambda AWS e CloudFormation sono davvero soluzioni molto potenti che possono essere utilizzate per ottimizzare l’architettura senza server. Le dipendenze di disaccoppiamento con il provisioning di infrastrutture automatizzate consentiranno agli sviluppatori di creare applicazioni scalabili, efficienti e gestibili. Che si tratti di uno sviluppo di piccoli progetti o di gestione del sistema aziendale, l’integrazione ridurrà sicuramente le spese generali, consentendo alle innovazioni di iniziare.
Trasforma il tuo flusso di lavoro senza server combinando i livelli Lambda e CloudFormation oggi.