Scalabilità della tua applicazione in ambiente cloud

Share post

Tempo di lettura: 3 min.
Continua da QUI

Come accennato in precedenza, PaaS fornisce scalabilità immediata per la maggior parte dei linguaggi e runtime. Tuttavia, come sviluppatore è necessario essere consapevoli dei tipi di scaling offerti e quando ha senso scalare orizzontalmente o verticalmente.

Scalabilità verticale

La scalabilità verticale si riferisce ad un tipo di scaling che è stata la scelta predefinita per decenni. Questo tipo di scalabilità si riferisce al concetto che per gestire il carico, è sufficiente utilizzare sistemi più grandi. Questo è uno dei motivi per cui oggi esistono server con un terabyte di RAM e un numero massiccio di CPU e core per servire una singola applicazione Java®. Di solito, quando si usa lo scaling verticale, un unico grande sistema viene utilizzato per gestire la maggior parte o tutte le richieste di applicazioni da parte degli utenti.

Scalabilità orizzontale

Con la scalatura orizzontale, il carico dell’applicazione e le richieste sono distribuite su un gruppo di server più piccoli; questi sono tipicamente dietro un bilanciatore di carico. Quando viene fatta una richiesta da un utente, il bilanciatore di carico invia la richiesta a un server e poi gestisce lo stato della sessione attraverso il cluster di server. Di solito ci sono due tipi di scaling orizzontale da utilizzare per garantire la migliore esperienza possibile per gli utenti della vostra applicazione. Parliamo di scaling manuale e automatico.

Manuale

Con la scalabilità manuale, si specifica che si desidera che l’applicazione sia scalabile per gestire l’aumento del traffico quando si sa di avere un evento imminente che aumenterà la richiesta di quell’applicazione. Ad esempio, se si sa che si sta per eseguire una campagna di marketing per attirare più utenti alla propria applicazione, si potrebbe voler aggiungere proattivamente ulteriori server al proprio cluster. La maggior parte dei fornitori di PaaS consentono di realizzare questo compito con un semplice comando.

Automatica

Con la scalabilità automatica, si specificano le condizioni in cui la vostra applicazione si scalerà automaticamente senza alcuna interazione umana. Questa condizione può essere basata su cose come il numero di richieste HTTP simultanee che la vostra applicazione sta ricevendo, o la quantità di CPU che la vostra applicazione sta utilizzando. Questo permette allo sviluppatore di aggiungere automaticamente nuovi server al bilanciatore di carico quando la richiesta dell’applicazione è alta. Il ridimensionamento automatico fornisce un approccio veramente hands-off al ridimensionamento, garantendo al tempo stesso che la domanda degli utenti sia soddisfatta in modo tempestivo. Il ridimensionamento automatico è fondamentale quando l’uso non pianificato dell’applicazione è dovuto a determinate circostanze. Ad esempio, potreste far apparire la vostra applicazione mobile su un negozio di applicazioni per un breve periodo di tempo quando i vostri servizi di back-end risiedono nel cloud.

Quale scalabilità delle applicazioni dovreste scegliere?

In qualità di sviluppatore, dovreste scegliere una piattaforma che consenta la scalabiità orizzontale manuale e automatica della vostra applicazione.