Cosa sono i microservizi?

 

I microservizi fanno riferimento alla molteplicità di standard web indipendenti, linguaggi di programmazione, piattaforme di database e componenti dei server web che si utilizzano nel ciclo di vita di sviluppo del software in forma di strumenti per sviluppatori. Per tradizione, le aziende un tempo erano orientate a un approccio di tipo SOA (Service-Oriented Architecture) che rappresentava la tecnologia hardware e software integrata da un'unica azienda IT. Con i microservizi, migliaia di diversi componenti sono supportati nelle applicazioni software per il cloud e nei server web offerti dalle aziende di sviluppo indipendenti o dalle community Open Source. I reparti IT hanno dovuto implementare una nuova filosofia per gestire i microservizi nel processo di produzione in ambienti multi-tenant isolati in data center public cloud iperscalabili e, per ovviare a questo problema, hanno adottato le soluzioni di virtualizzazione su larga scala con standard SDDC basati su tecnologia service mesh. I microservizi sono gli elementi essenziali o componenti, piattaforme e framework fondamentali in cui il codice viene creato e utilizzato su server web in un data center su cloud.

Architettura monolitica e architettura dei microservizi a confronto

  • Architettura monolitica: è la diretta conseguenza dell'era dei mainframe IBM e del periodo di monopolio del sistema operativo Microsoft Windows, tradizionalmente adottata negli ambienti IT aziendali. 
  • Microservizi: inizialmente originati da community Open Source, sviluppatori di terze parti e start-up, dove programmatori indipendenti hanno messo a disposizione codici destinati ad estendere la funzionalità di base delle piattaforme di server web più diffuse. Ora, la maggior parte delle aziende IT più importanti rilascia i propri microservizi e i propri contributi ai progetti Open Source dove l'adozione degli standard è estesa a una varietà di mercati verticali e team di diversi settori sulla base di elementi fondamentali univoci. I microservizi si basano sullo stesso principio di innovazione degli sviluppatori tramite soluzioni di codice Open Source per applicazioni cloud, sebbene attualmente siano comuni anche i microservizi con licenza proprietaria.

 

Vantaggi dei microservizi

  • Innovazione rapida: aziende e start-up possono immettere sul mercato soluzioni innovative più rapidamente rispetto a quanto sia possibile fare con un'architettura monolitica quando occorre creare nuove funzionalità per le applicazioni software. I clienti che utilizzano applicazioni web e mobili richiedono nuove caratteristiche. Le tecnologie innovative ricevono fondi attraverso l'utilizzo diffuso da parte degli utenti e l'adozione da parte delle aziende. Rimanere all'avanguardia sul fronte programmazione e sviluppo mediante l'integrazione di microservizi comporta vantaggi sia per le aziende IT che per le start-up.
  • Livelli superiori di automazione del data center: gli sviluppatori preferiscono usare determinate piattaforme o determinati standard per il loro lavoro, incluso il supporto dei linguaggi di programmazione e dei database nelle applicazioni web/mobili con i microservizi. La connessione dei microservizi avviene mediante processi di scripting, ad esempio le API, che possono incrementare i livelli di automazione del data center.

 

In che modo funzionano i microservizi?

La funzione principale dei microservizi è quella di incrementare la funzionalità disponibile su un server in tutte le operation relative a sistema operativo predefinito, rete o piattaforma di gestione del data center. Alcuni microservizi sono estensioni dello stack del server web, come le piattaforme dei linguaggi di programmazione e i framework di database. Al fine di sviluppare applicazioni PHP e MySQL, è necessario che l'ambiente di server web sia configurato con il supporto della piattaforma LAMP. Le soluzioni basate su microservizi devono fare fronte alla concorrenza delle soluzioni SOA (Service-Oriented Architecture) offerte da Microsoft, Oracle, IBM e altri colossi dell'IT che forniscono distribuzioni closed-source. Le aziende del settore Enterprise ora devono garantire il supporto simultaneo di due o più applicazioni scritte nei linguaggi PHP, Python, Ruby-on-Rails, Java, C++, ASP.net e così via, negli ambienti di produzione. In altre situazioni, un data center può avere in esecuzione più framework di database tramite VM su hardware multi-tenant. È necessario che un server web sia configurato per il supporto di estensioni personalizzate per l'esecuzione dello streaming, le integrazioni API oppure mediante l'aggiunta di utility proprietarie per le funzionalità di analisi. L'aggiunta contestuale di tutti questi servizi di terze parti e Open Source equivale a migliaia di microservizi su un tipico server web in ambienti di produzione, moltiplicati per milioni di VM su larga scala in un ambiente di servizi di public cloud.

 

Storia dei microservizi

L'uso dei microservizi ha preso piede dopo l'era Web 2.0, in quanto le multinazionali dell'IT necessitavano di un nuovo modo per concettualizzare l'ambiente di sviluppo del software in modo che riflettesse l'ecosistema e le best practice correnti. L'uso di microservizi per lo sviluppo di applicazioni web e mobili ha determinato maggiori complessità in termini di supporto delle operation aziendali da parte degli amministratori dei data center. Ora le aziende non devono solo prendere accordi con Oracle, IBM o Microsoft per tutte le soluzioni software e per data center necessarie, ma devono anche destreggiarsi in un panorama che pullula di milioni di progetti di codici Open Source che offrono soluzioni di classe Enterprise per uso aziendale. Diversi standard web sono disponibili in diverse versioni della concorrenza sviluppate da aziende differenti. Diversi linguaggi di programmazione e database coprono la stessa funzionalità d'uso. Ogni team di sviluppo ha le proprie preferenze circa gli strumenti e i metodi di programmazione. La gestione di tutte queste complessità nell'era del cloud nell'ambito di un unico reparto IT aziendale ha comportato, per diverse aziende complesse di tutto il mondo, la necessità di supportare i microservizi nello sviluppo di software professionale.

 

Cos'è l'architettura dei microservizi

Il modo migliore per comprendere l'architettura dei microservizi è quello di immaginare i layer del software in uno stack del server web. Il sistema operativo può essere Windows, Linux o BSD per il server web. Ci sono strumenti per il bilanciamento del carico e la gestione del data center sulla rete. Per il server web, la scelta spazia da Apache a IIS, da NGINX a Caddy, a Tomcat e così via. Poi c'è il layer per il supporto del linguaggio di programmazione installato, ad esempio PHP, ASP.net, Python, Ruby, Perl, Java e Go. Successivamente c'è il layer per i framework di database, come MySQL, MSSQL, PostgreSQL e MongoDB. Quindi un altro layer per le utility di caching come Varnish, Redis, CDN e le utility per l'ottimizzazione. Altri layer dedicati al supporto includono i server edge, le piattaforme serverless e l'integrazione AI/ML. Nell'ambito di un ecosistema di public cloud, migliaia di microservizi attivi simultaneamente devono essere gestiti nel service mesh per poter supportare interoperabilità, routing e comunicazioni.

 

SOA (Service-Oriented Architecture) e microservizi a confronto

Il modello SOA (Service-Oriented Architecture) prevede generalmente l'offerta di un unico vendor e include un pacchetto di soluzioni hardware e software che possono essere distribuite per rispondere alle necessità di uno specifico settore. Il modello SOA supporta il data center, il server web e il layer dello stack tramite diverse distribuzioni o diversi modelli di prodotto. L'approccio SOA è offerto da soluzioni proprietarie e da soluzioni Open Source in base al vendor. Le apparecchiature di rete e le connessioni in fibra sono gestite diversamente in data center su cloud e in data center privati interni. Allo stato attuale del panorama di sviluppo di software, i microservizi si rendono necessari ai fini di un'innovazione. Anche le grandi aziende multinazionali hanno la necessità di adottare i microservizi a supporto dei team di programmazione Agile che si occupano di introdurre sul mercato nuove applicazioni web/mobili, dove il supporto del prodotto può includere migliaia di marchi o domini. I microservizi spesso sono necessari per la modernizzazione e per la containerizzazione di software aziendale legacy. 

Risorse, soluzioni e prodotti VMware per i microservizi

Cos'è il Software-Defined Storage?

Il Software-Defined Storage di VMware è un'architettura di storage per il data center semplice ma intelligente che consente di allineare le richieste dell'azienda con quelle delle applicazioni. Ottieni subito ulteriori informazioni.

Definizione dei servizi cloud

Getta le basi di un modello operativo orientato ai servizi e basato sull'azienda mediante best practice per la definizione dei servizi cloud.

Cos'è la virtualizzazione?

La virtualizzazione è il modo più efficace per ridurre le spese IT, aumentando al tempo stesso l'efficienza e l'agilità per le aziende di qualsiasi dimensione.

Qual è la differenza tra orientamento ai progetti e orientamento ai servizi?

Le organizzazioni IT oggi usano "progetti" come costrutto per la gestione del lavoro. Adottare un approccio orientato ai servizi può garantire un provisioning più rapido e ridurre i costi.

Enterprise Cloud Suite

Una Enterprise Cloud Suite è un insieme integrato di prodotti dedicati alla gestione degli hybrid cloud e all'abilitazione del provisioning self-service.

Crea la definizione dei servizi e un corrispondente endpoint virtuale

Per creare la definizione di un servizio e un endpoint virtuale per l'appliance di servizio nel public cloud, devi usare le API di NSX Manager.