Domanda

Spesso mi viene chiesto di eseguire il dimensionamento e la pianificazione della capacità per i nostri clienti. Quando i nostri clienti acquistano i nostri prodotti (essenzialmente applicazioni web J2EE), spesso chiedono quale hardware di cui avranno bisogno per eseguire tali prodotti. Le nostre raccomandazioni spesso sfociano in acquisizioni hardware ad alto costo.

Finora, i migliori euristiche che ho sviluppato è quello di confrontare le proiezioni di utilizzo (numero di utenti registrati e concorrenti che l'applicazione deve partecipare) con i dati raccolti presso i nostri impianti esistenti. Qualcosa come:. Se l'installazione Un assiste 100 utenti simultanei con X l'hardware, l'installazione B avrà bisogno di 2 * X hardware per assistere 200 utenti simultanei

Questo approccio, tuttavia, ha una serie di problemi. I clienti spesso utilizzano piattaforme hardware e software differenti. L'insieme dei prodotti che acquista da noi è in genere mai gli stessi e in generale parti della domanda sono costruite su ordinazione per i client specifico. Mettere in conto che le versioni di software stanno cambiando, ecc e ci sono così tanti parametri che possono rendere il compito di dimensionamento molto difficile.

Ho studiato alcuni libri sul tema e alcuni propongo utilizzando modelli matematici complessi. Il numero di parametri questi approcci richiedono come input (ad esempio la classificazione dettagliata delle funzionalità dell'applicazione) mi fa pensare questi sono di scarsa utilità. L'hardware è generalmente ordinato prima che anche i requisiti di base sono definiti per non parlare che questi varieranno durante tutto lo sviluppo delle applicazioni e del ciclo di vita. Quindi, come si fa a fare il dimensionamento e la pianificazione della capacità? Eventuali suggerimenti e how-to apprezzato.

È stato utile?

Soluzione

Se l'hardware deve essere ordinata prima della reqs base sono definiti, ben, circa il meglio che puoi fare è quello di ballpark la capacità, cercando in vostra base installata per un simile insieme di progetti (come si sta facendo ora). Tenere traccia della vostra esperienza clienti esistenti nei bisogni di scala e capacità man mano che crescono le loro installazioni, e se si dispone di una grande base abbastanza, probabilmente si può fare raccordo raggruppando progetti simili con hardware simile e guardando esigenze di capacità della curva di massima. Guarda come capacità di clienti esistente deve cambiare durante la crescita, nonché per i punti dati aggiuntivi.

Idealmente, l'iniziale HW / SW acquisto è per un impianto pilota, e punto di riferimento il programma di installazione pilota di una volta che è installato e spec riunione. Utilizzare questi risultati per proiettare esigenze di capacità per il passaggio da pilota di produzione. Naturalmente, questo richiede tempo, nello schema pilota-to-produzione di riferimento all'applicazione poi ordinare e prendere consegna delle attrezzature. Ma vi darà una stima più accurata della capacità di fare tutto in anticipo.

Altri suggerimenti

Non esiste una formula facile o matematico per prevedere scala nella descrizione che hai dato, se voi (o la vostra azienda) è sul serio questo allora il modo migliore è quello di costruire un ambiente in cui si può facilmente impostare e lacrima test delle prestazioni e scalabilità giù varie configurazioni dei client e inviare carico a loro per vedere come faranno. Poiché si sta costruendo componenti personalizzati, un componente scritto male o mancante indice può rovinare tutto, in modo da avere un ambiente come questo è dove si può appianare queste cose prima di dare al cliente. Una volta che avete questo tipo di ambiente, è possibile aggiungere la memoria e CPU per server e database di applicazioni per vedere come le scale di applicazione.

Vorrei suggerire un ambiente VM in cui possono facilmente aggiungere cpu e della memoria in base alle esigenze della domanda, con una certa realistica test esterno di carico / scala utilizzando un servizio come WatchMouse o browsermob.

Se l'applicazione scala orizzontalmente in modo gracefull, una prima stima approssimativa è ok come punto di partenza. Aggiunta o rimozione di scatole supplementari come richiesto dovrebbe essere facile una volta che l'applicazione viene eseguito in produzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top