Negli anni 2010 si è verificata una grande trasformazione per i team IT delle aziende, che hanno abbandonato l’architettura monolitica a favore di un’architettura serverless o basata su microservizi. Con l’aumentare delle dimensioni delle piattaforme, è diventato sempre più difficile mantenere l’equilibrio. Le architetture monolitiche erano notoriamente complesse da scalare e presentavano tutti i problemi derivanti da una rete informatica molto estesa. Apportare modifiche all’applicazione significava rielaborare l’intero stack, rallentando gli aggiornamenti a un ritmo molto lento.
Nel 2009, Netflix divenne un pioniere nell’adozione dell’architettura a microservizi a causa delle sfide in rapida crescita che dovevano affrontare. La loro infrastruttura tradizionale per lo streaming video non riusciva più a gestire la crescente domanda. Per risolvere il problema, l’azienda decise di migrare le proprie operazioni IT dai data center privati a un cloud pubblico, e contemporaneamente sostituì l’architettura monolitica con quella basata su microservizi.
All’epoca, non si conosceva ancora il vero significato dei microservizi, ma il cambiamento fu accolto positivamente poiché distribuiva tutti i servizi in modo indipendente. Ogni servizio eseguiva la propria logica e il proprio database, ed era in grado di aggiornarsi, testarsi, distribuirsi e scalarsi autonomamente. Questo non semplificò immediatamente le cose, ma rese le complessità più evidenti poiché i compiti erano nettamente separati.
I microservizi si adattavano anche meglio alle startup che stavano emergendo ovunque, poiché queste di solito avevano team tecnici più piccoli. I monoliti richiedevano di solito meno lavoro rispetto ai sistemi distribuiti, ma mancavano della flessibilità necessaria. Nonostante questi fatti consolidati, il dibattito sull’architettura monolitica rispetto ai microservizi è ripreso di recente quando Amazon Prime Video ha spostato il suo servizio di monitoraggio video in diretta dai microservizi a un’architettura monolitica all’inizio di questo mese. Ironia della sorte, Amazon era stata una delle prime aziende a seguire la tendenza dei microservizi.
Il team di Prime Video ha pubblicato un post sul loro blog a marzo, intitolato “Aumentare il servizio di monitoraggio audio/video di Prime Video e ridurre i costi del 90%”. In questo post, hanno spiegato come il passaggio da un’architettura distribuita di microservizi a un’architettura monolitica li abbia aiutati a migliorare la scalabilità riducendo i costi in modo significativo. Hanno dichiarato: “Il trasferimento del nostro servizio in un monolite ha ridotto i costi infrastrutturali di oltre il 90%. Abbiamo anche aumentato la capacità di scalabilità. Oggi siamo in grado di gestire migliaia di flussi e abbiamo ancora la possibilità di ulteriori scalature. La migrazione della soluzione su Amazon EC2 e Amazon ECS ci ha inoltre consentito di sfruttare i piani di risparmio di calcolo di Amazon EC2, contribuendo a ridurre ulteriormente i costi. Alcune decisioni che abbiamo preso potrebbero non essere ovvie, ma hanno portato a miglioramenti significativi”.
Ma c’è il rischio che Amazon stia sacrificando la flessibilità a favore dei costi? Da allora, i dirigenti di Amazon hanno cercato di spiegare questa scelta. Il dottor Werner Vogels, CTO del gigante del commercio al dettaglio, ha scritto un post sul suo blog “All Things Distributed”, affermando: “Costruire sistemi software scalabili è una strategia, non una religione. E revisionare la tua architettura con una mente aperta è fondamentale”.
Vogels ha spiegato che considerare le architetture come una soluzione universale è un’idea falsa basata su una tendenza. “Non esiste un unico modello architettonico che funzioni per tutti. La scelta di come sviluppare, implementare e gestire i servizi sarà sempre guidata dal prodotto che stai costruendo, dalle competenze del team che lo sviluppa e dall’esperienza che vuoi offrire ai clienti (oltre che dai costi, dalla velocità e dalla resilienza)”, ha affermato.
Anche un ex dirigente di AWS, Adrian Cockcroft, ha espresso la sua opinione sulla questione. “Contrariamente a quanto affermano coloro che sostengono che Amazon abbia commesso un errore, il team ha seguito ciò che io considero la best practice”, ha detto Cockcroft. “Il risultato non è un vero e proprio monolite, ma sembra che attualmente ci sia un ritorno di popolarità verso l’uso dei monoliti, mentre i microservizi sono diventati oggetto di un marketing eccessivo”, ha aggiunto.
Cockcroft ritiene che ci sia una certa verità in questo punto di vista. “Penso che ciò sia dovuto ai fornitori che volevano vendere Kubernetes con un semplice messaggio di marketing: le aziende dovevano modernizzarsi utilizzando Kubernetes per sviluppare microservizi cloud nativi”, ha osservato.
Marcin Kolny, Senior Software Development Engineer di Amazon Prime, ha discusso ironicamente di come i costi elevati di AWS abbiano colpito anche loro. Ha anche ammesso che le decisioni prese “potrebbero non funzionare in tutti i casi”.
Si dice che l’anno scorso Amazon abbia investito 7 miliardi di dollari in Amazon Originals, sport in diretta e contenuti video di terze parti con licenza inclusi in Prime. Come qualsiasi altra azienda tecnologica che cerca di superare i minimi attuali, le recenti chiamate sugli utili di Amazon hanno evidenziato una forte pressione sulla crescita mentre i clienti cercano di ridurre i costi del cloud.
Ma forse tutto questo dimostra semplicemente che il mondo dell’IT è ciclico e ciò che viene accantonato può improvvisamente diventare la tendenza da seguire l’anno successivo.