Panoramica

Il Test del carico distribuito su AWS automatizza i test delle prestazioni su larga scala, mostrando come si comporteranno le applicazioni in diverse condizioni di carico e identificando potenziali problemi di prestazioni durante tutto il ciclo di vita delle applicazioni (inclusi sviluppo, staging, produzione e post-produzione). Questa soluzione AWS simula utenti e transazioni che vanno da centinaia a milioni, generando transazioni coerenti senza la necessità di effettuare provisioning di utenti o server.
La soluzione fornisce approfondimenti su aree cruciali, come la scalabilità e l'affidabilità delle istanze Amazon Elastic Compute Cloud (Amazon E2), Amazon Elastic Container Service (Amazon ECS) o Amazon Elastic Kubernetes Service (Amazon EKS), i tempi di avvio ed esecuzione a freddo delle funzioni AWS Lambda, le prestazioni delle query del database Amazon Relational Database Service (Amazon RDS) e i tempi di risposta di Amazon CloudFront. Simulando scenari di carico realistici, l'infrastruttura viene ottimizzata sia in termini di prestazioni che di efficienza dei costi.
Vantaggi

Dimensiona correttamente l'infrastruttura ottenendo informazioni accurate sulle prestazioni delle applicazioni in condizioni di carico variabili, in modo da garantire un'allocazione delle risorse a costi contenuti.
Automatizza i test di carico programmandoli o incorporando questa soluzione nella pipeline di integrazione continua e distribuzione continua (CI/CD), semplificando il processo di test.
Simula il traffico reale da più Regioni AWS per valutare il comportamento dell'applicazione in presenza di carichi geografici diversi, ottimizzando le prestazioni globali.
Progetta e integra perfettamente i test di carico distribuito con gli script JMeter, che consentono di personalizzare i test per le esigenze specifiche dell'applicazione.
Dettagli tecnici

Questa architettura può essere implementata automaticamente consultando la guida all'implementazione e il modello AWS CloudFormation allegato per le regioni AWS.
Fase 1
Un'API Gateway Amazon API richiama i microservizi della soluzione (funzioni AWS Lambda).
Fase 2
I microservizi forniscono la logica aziendale per gestire i dati dei test ed eseguire i test.
Fase 3
Questi microservizi interagiscono con Amazon Simple Storage Service (Amazon S3), Amazon DynamoDB e AWS Step Functions per eseguire scenari di test e fornire spazio di archiviazione per i dettagli dello scenario di test.
Fase 4
Una topologia di rete Amazon Virtual Private Cloud (Amazon VPC) contiene i container Amazon Elastic Container Service (Amazon ECS) della soluzione in esecuzione su AWS Fargate.
Fase 5
I container includono un'immagine del container per il test del carico Taurus conforme all'OCI (Open Container Initiative) che viene utilizzata per generare il carico al fine di testare le prestazioni dell'applicazione. Taurus è un framework di automazione dei test open source. L'immagine del container è ospitata da AWS in un repository pubblico Amazon Elastic Container Registry (Amazon ECR).
Fase 6
Una console web basata su AWS Amplify viene distribuita in un bucket S3 configurato per l'hosting web statico.
Fase 7
Amazon CloudFront fornisce un accesso pubblico e sicuro ai contenuti nel bucket del sito web della soluzione.
Fase 8
Durante la configurazione iniziale, la soluzione crea anche un ruolo di amministratore della soluzione predefinito e invia un invito di accesso a un indirizzo e-mail utente specificato dal cliente.
Fase 9
Un pool di utenti Amazon Cognito gestisce l'accesso degli utenti alla console e all'API API Gateway.
Fase 10
Dopo aver distribuito questa soluzione, è possibile utilizzare la console web per creare uno scenario di test che definisce una serie di attività.
Fase 11
I microservizi utilizzano questo scenario di test per eseguire Amazon ECS su attività Fargatenelle Regioni AWS specificate.
Fase 12
Oltre a memorizzare i risultati in Amazon S3 and DynamoDB, una volta completato il test, l'output viene registrato in Amazon CloudWatch.
Fase 13
Se si seleziona l'opzione dati in tempo reale, la soluzione invia i log di CloudWatch per le attività di Fargate a una funzione Lambda durante il test, per ogni Regione in cui è stato eseguito il test.
Fase 14
La funzione Lambda pubblica quindi i dati nell'argomento corrispondente in AWS IoT Core nella Regione in cui è stato distribuito lo stack principale. La console web sottoscrive l'argomento ed è possibile visualizzare i dati durante l'esecuzione del test.
- Data di pubblicazione

“In Calabrio, la nostra missione è aiutare i contact center a lavorare in modo più intelligente, veloce ed efficace. Dovevamo progettare rapidamente una nuova funzionalità ad alte prestazioni per un importante cliente. Abbiamo utilizzato il test del carico distribuito su AWS per testare le prestazioni del nostro sistema su larga scala, senza dover ricorrere a costose licenze di test aziendali o alla scrittura di codice di orchestrazione personalizzato per strumenti open source. Grazie a questa soluzione AWS, abbiamo progettato ed eseguito test con un volume di traffico sei volte superiore a quello previsto e abbiamo lanciato la nuova funzionalità con successo e prima del previsto.”
Contenuto correlato

Che si tratti di un'azienda privata o di un servizio pubblico, è necessario avere la certezza che la propria applicazione sia in grado di dimensionarsi con l'aumento del carico di utenti. I test di carico distribuito su AWS consentono di automatizzare i test delle applicazioni, comprenderne le prestazioni su larga scala e correggere i colli di bottiglia prima di rilasciare l'applicazione.