Architettura dei microservizi - Scalabilità
Il ridimensionamento è un processo di scomposizione di un software in diverse unità. Il ridimensionamento definisce anche in termini di scalabilità. La scalabilità è il potenziale per implementare funzionalità più avanzate dell'applicazione. Aiuta a migliorare la sicurezza, la durata e la manutenibilità dell'applicazione. Abbiamo tre tipi di procedure di ridimensionamento che vengono seguite nei settori. Di seguito sono riportate le diverse metodologie di ridimensionamento insieme ai corrispondenti esempi di vita reale.
Scala dell'asse X.
Il ridimensionamento dell'asse X è anche chiamato ridimensionamento orizzontale. In questa procedura, l'intera applicazione è suddivisa in diverse parti orizzontali. Normalmente, qualsiasi applicazione server web può avere questo tipo di ridimensionamento. Si consideri una normale architettura MVC che segue il ridimensionamento orizzontale come mostrato nella figura seguente.
Come esempio, possiamo considerare qualsiasi applicazione servlet JSP. In questa applicazione, il controller controlla ogni richiesta e genererà la vista comunicando con il modello ogni volta che sarà necessario. Normalmente, le applicazioni monolitiche seguono questo metodo di ridimensionamento. Il ridimensionamento dell'asse X è di natura molto semplice e richiede molto meno tempo. In questa metodologia, un software verrà ridimensionato a seconda del diverso compito di cui è responsabile l'unità. Ad esempio, il controller è responsabile del controllo della richiesta in entrata e in uscita, la vista è responsabile della rappresentazione della funzionalità aziendale per gli utenti nel browser, mentre il modello è responsabile dell'archiviazione dei nostri dati e funziona come database.
Ridimensionamento dell'asse Y.
Il ridimensionamento dell'asse Y viene anche chiamato ridimensionamento verticale che include qualsiasi ridimensionamento a livello di risorsa. Qualsiasi sistema DBaaS o Hadoop può essere considerato scalato sull'asse Y. In questo tipo di ridimensionamento, la richiesta degli utenti viene reindirizzata e limitata implementando una logica.
Consideriamo Facebook come un esempio. Facebook deve gestire 1,79 milioni di utenti ogni secondo; quindi, il controllo del traffico è un'enorme responsabilità degli ingegneri di rete di Facebook. Per superare qualsiasi rischio, seguono il ridimensionamento dell'asse Y che include l'esecuzione di più server con la stessa applicazione contemporaneamente. Ora, per controllare questo enorme livello di traffico, Facebook reindirizza tutto il traffico da una regione a un server specifico, come illustrato nell'immagine. Questo trasferimento di traffico basato sulla regione è chiamato bilanciamento del carico nel linguaggio architettonico.
Questo metodo per suddividere le risorse in piccole unità aziendali indipendenti è noto come ridimensionamento dell'asse Y.
Ridimensionamento dell'asse Z.
Il ridimensionamento degli assi X e Y è molto più facile da capire. Tuttavia, un'applicazione può essere ridimensionata anche a livello aziendale, denominata ridimensionamento dell'asse Z. Di seguito è riportato un esempio di ridimensionamento di un'applicazione di servizio taxi nei diversi verticali delle unità aziendali.
Vantaggi del ridimensionamento
Cost - Il corretto ridimensionamento di un software ridurrà i costi di manutenzione.
Performance - A causa dell'accoppiamento lento, le prestazioni di un software adeguatamente ridimensionato sono sempre migliori di un software non ridimensionato.
Load distribution - Utilizzando diverse tecnologie, possiamo facilmente mantenere il carico del nostro server.
Reuse - La scalabilità di un software aumenta anche l'usabilità del software.