Attualmente sto lavorando a un progetto di architettura per il test di un prodotto che ha una stima di oltre 100.000 successi utente simultanei. Per le specifiche del prodotto, includo l'integrazione continua e le pratiche di consegna continua utilizzando i servizi cloud CI come Travis .
Ora, voglio anche sottolineare / testare le prestazioni del prodotto rispetto a uno scenario di richieste simultanee da 100k simultanee. A prima vista, una soluzione [non] rapida includerebbe la creazione di un intero ambiente di test (al di fuori di Travis, ovviamente), letteralmente la replica dell'ambiente di produzione e l'utilizzo di un sistema dedicato per generare 100k processi separati , premendo l'applicazione in esecuzione nell'ambiente di test e raccogliendo report.
Ora, questo approccio si sente molto semplice e molto vicino a una cattiva pratica (specialmente perché mi è venuta questa idea mentre scrivevo questo post). Probabilmente esiste un progetto o una soluzione standard (forse persino come servizio ) per risolvere questo problema. Inoltre, non vedo come si adatterebbe a una pipeline CI.
Voglio anche aggiungere che la copertura di questo requisito non funzionale (l'app dovrebbe gestire simultaneamente gli utenti 100k) sembra che sia probabilmente risolta da una buona infrastruttura, piuttosto che dal codice. Probabilmente con cui dovrei lavorare sono bilanciatori di carico e provider di server che mi consentono di ridimensionare le risorse orizzontalmente. Tuttavia, anche se questo è DevOps, voglio eseguire test delle prestazioni su di esso.
Quindi, come posso eseguire il test delle prestazioni / carico per gli utenti 100k aggiungendolo alla mia pipeline CI?