Facebook Twitter
alltechbites.com

Test Di Scalabilità: 7 Passi Verso Il Successo

Pubblicato il Marzo 5, 2022 da Grant Tafreshi

I sistemi che funzionano molto bene durante lo sviluppo, distribuiti su piccola scala, possono trascurare di raggiungere gli obiettivi di prestazione una volta che la distribuzione è stata ridimensionata attorno a supportare i gradi di utilizzo di supporto.

Un caso esemplare appropriato di ciò proviene da una significativa società di chip blu che ha recentemente esternalizzato lo sviluppo di una piattaforma ad alta tecnologia lungimirante. Sebbene lo sviluppo fosse in ritardo, ciò è considerato accettabile. La macchina è passata gradualmente attraverso i componenti funzionali di un singolo test di accettazione e infine è apparsa come se una data di distribuzione potesse essere impostata. Ma il fornitore ha iniziato il test di carico e i test di scalabilità. Seguirono una quantità estesa e costosa di modifiche architettoniche e modifiche ai requisiti della macchina. Il fornitore ha combattuto eroicamente per fornire un sistema soddisfacente, fino a quando finalmente il progetto non è stato messo in giro.

Questo non è un caso isolato. Il folklore abbonda di racconti simili. Dai sistemi di spedizione di ambulanze ai siti Web per la presentazione elettronica delle dichiarazioni fiscali, i sistemi falliscono perché ridimensionano e sperimentano le esigenze di picco. Tutti questi progetti sembrano non aver mai identificato e ordinato i principali rischi che hanno affrontato. Questo può essere una fase fondamentale dei test basati sul rischio e si applica anche ai test di scalabilità o ai test di carico poiché lo fa per i test di funzionalità o i test di continuità aziendale. Senza valutazione del rischio non hanno riconosciuto che il ridimensionamento era tra i maggiori rischi, molto di più per fornire tutta la funzionalità

Le recenti tendenze verso l'architettura orientata al servizio (SOA) cercano di affrontare il problema della scalabilità, ma introdurre inoltre nuove questioni. L'incorporazione dei servizi forniti esternamente nella soluzione attuale implica che la capacità di ridimensionare ora dipende da questi sistemi esterni operano sotto carico. Assicurare che questo può essere un compito impegnativo e purtroppo i test di deformazione e i test di stress qui sono spesso trascurati.

La migliore pratica sarebbe quella di iniziare lo sviluppo di un sistema software di grande scala utilizzando le sue prestazioni chiaramente a cuore, in particolare i test di scalabilità, i test del volume e il test di carico. Per generare questo focus sui test delle prestazioni:

  • Ricerca e quantifica i volumi di informazioni e i volumi delle transazioni che il mercato dei marchi implica. Alcune di queste cifre potrebbero essere apritori e aiutare gli utenti delle imprese a realizzare l'intera scala della macchina. Questo da solo può comportare la rivalutazione della priorità di diverse caratteristiche.
  • Determina come potrebbero essere presentate le funzionalità agli utenti e la macchina strutturata per semplificare il ridimensionamento della macchina. Di solito non cercare di avere esattamente la stessa funzionalità che avrai per una singola soluzione di desktop utente offrire un'alternativa scalabile appropriata.
  • Riconoscere un'area intrinseca del processo di sviluppo è il test di carico su scala rappresentativa su ciascun rilascio di software incrementale. Questo è un test continuo, concentrandosi sul rischio maggiore per il progetto: l'opportunità di operare su vasta scala.
  • Assicurarsi che i test di carico siano adeguati sia nell'ambito che nel rigore. Il test di carico non riguarda solo la misurazione dei tempi di risposta con un test delle prestazioni. Il programma di test di deformazione deve includere altri stili di test di carico, inclusi test di sollecitazione, test di affidabilità e test di resistenza.
  • Non dimenticare che si verificheranno fallimenti. I sistemi su larga scala includono generalmente cluster di server con comportamento di fallimento. Dovrebbero essere inclusi i test di fallimento, i test di fallimento e i test di recupero completati su sistemi di scala rappresentativa che operano sotto carico.
  • Non dimenticare che potrebbe verificarsi un fallimento catastrofico. Per problemi su larga scala, i test di disastro e i test di recupero di emergenza dovrebbero essere completati su scala e carichi rappresentativi. Queste attività possono essere considerate come gli strati tecnici dei test di continuità aziendale.
  • Riconosci i servizi esterni se li stai utilizzando. Ciò che la tua posizione è adottare un approccio SOA e quindi è influenzato dai servizi esterni, dovresti essere sicuro che il throughput e il tempo di consegna su questi servizi rimarranno accettabili con l'aumentare delle scale del corpo e le sue richieste. Una buona architettura di sistema include una risposta aggraziata e un funzionamento di back-back se il comportamento del servizio esterno si deteriora o fallisce.
  • .