Panoramica
La soluzione di test del carico distribuito su AWS automatizza i test delle applicazioni software su vasta scala e sotto carico per aiutarti a identificare potenziali problemi di prestazioni prima del loro rilascio. Questa Soluzione AWS crea e simula migliaia di utenti connessi, generando record transazionali a un ritmo costante senza la necessità di effettuare il provisioning dei server. La soluzione consente inoltre di eseguire test su più Regioni AWS.
Vantaggi
Verifica le capacità di carico del tuo software utilizzando Amazon Elastic Container Service (Amazon ECS) indipendente su container AWS Fargate.
Personalizza i test delle applicazioni creando script JMeter personalizzati.
Pianifica i test di carico in modo che inizino automaticamente in una data specificata o in date ricorrenti.
Visualizza i dati in tempo reale per un test in corso utilizzando la console web di questa soluzione.
Specifiche tecniche
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.