Cos'è CaaS (Containers as a Service)?

Di IBM Services

Il CaaS (Containers as a Service) è un modello di servizio cloud che consente agli utenti di caricare, organizzare, avviare, arrestare, ridimensionare e gestire contenitori, applicazioni e cluster. Abilita questi processi utilizzando una virtualizzazione basata su contenitori, un'API o un'interfaccia di portale web. CaaS aiuta gli utenti a creare applicazioni in contenitori sicure e scalabili attraverso data center on-premise o il cloud. I contenitori e i cluster vengono utilizzati come servizio con questo modello e vengono distribuiti nel cloud o nei data center locali. 

Perché CaaS è importante?

CaaS è un modello con ampia applicazione che aiuta gli sviluppatori a snellire il processo di creazione di un contenitore completamente scalabile e distribuzione di applicazioni. Il modello è una manna per i dipartimenti IT, fornendo un servizio di distribuzione di contenitori che ha il controllo della governance in un ambiente sicuro. Il modello CaaS aiuta le aziende a semplificare la gestione dei contenitori all'interno delle loro infrastrutture software-defined.

Analogamente ad altri servizi di cloud computing, gli utenti possono scegliere e pagare solo le risorse CaaS che desiderano. Alcuni esempi di risorse CaaS sono istanze di calcolo, funzionalità di pianificazione e bilanciamento del carico.

Nel panorama dei servizi di cloud computing, CaaS è considerato un sottogruppo di IaaS (infrastructure as a service) e si trova tra IaaS e PaaS (platform as a service). CaaS include i contenitori come risorsa di base, contatori per le macchine virtuali (VM) e sistemi host hardware bare metal utilizzati comunemente per gli ambienti IaaS.

Una qualità fondamentale della tecnologia CaaS è l'orchestrazione che automatizza le funzioni IT chiave. Google Kubernetes e Docker Swarm sono due esempi di piattaforme di orchestrazione CaaS. IBM, Amazon Web Services (AWS) e Google sono alcuni esempi di provider CaaS cloud pubblico.

Perché sono importanti i contenitori?

I clienti aziendali di tutti i settori d'industria stanno vedendo i vantaggi della tecnologia dei contenitori e CaaS. L'utilizzo dei contenitori garantisce una maggiore efficienza e conferisce a questi clienti la possibilità di distribuire rapidamente soluzioni innovative per la modernizzazione delle applicazioni e lo sviluppo nativo del cloud con i microservizi. La containerizzazione aiuta questi client a rilasciare il software più velocemente e favorisce la portabilità tra ambienti ibridi e multicloud, oltre a ridurre i costi operativi, per le infrastrutture e le licenze software.  

Ecco diversi vantaggi che l'utilizzo dei contenitori può portare ai clienti:

  • Portabilità: Quando un'applicazione viene creata in un contenitore, quella app completata ha tutto ciò che serve per funzionare, incluse le dipendenze e i file di configurazione. La portabilità consente agli utenti finali di avviare in modo affidabile applicazioni in ambienti diversi e cloud pubblici o privati. Questa portabilità garantisce anche alle aziende una grande flessibilità, accelerando il processo di sviluppo e semplificando il passaggio a un provider o ambiente cloud differente.
  • Altamente efficiente ed economico: Poiché i contenitori non hanno bisogno di un sistema operativo separato, richiedono meno risorse di una VM. Un contenitore spesso richiede solo poche decine di megabyte per funzionare, consentendo l'uso di diversi contenitori su un singolo server che verrebbe altrimenti utilizzato per eseguire una VM. Questa efficienza ti aiuta a tagliare i costi del data center. I contenitori possono anche tagliare i costi del bare metal, dato che hanno un livello di utilizzo più elevato relativamente all'hardware sottostante e richiedono meno hardware.

I contenitori non interagiscono e sono alquanto isolati da altri contenitori sugli stessi server, pur condividendo le stesse risorse. Se un'applicazione si blocca per un contenitore, altri contenitori possono continuare ad utilizzarla senza avere alcun problema tecnico.

  • Sicurezza: L'isolamento tra i contenitori funge da funzione di sicurezza che minimizza i rischi. Se un'applicazione è compromessa, i suoi effetti negativi non si diffondono agli altri contenitori.

Inoltre, poiché i contenitori eseguono i processi applicativi in modo isolato dal sistema operativo e non necessitano di software specifico per eseguire applicazioni, è più semplice gestire il sistema host. Questo vantaggio consente di lanciare rapidamente aggiornamenti e patch di sicurezza.    

  • Velocità: Ci vogliono solo pochi secondi per avviare un contenitore, e per creare, replicare o distruggere un contenitore, perché non serve il manuale del sistema operativo. Questo vantaggio consente anche un rapido processo di sviluppo, velocizza il time to market e accelera le operazioni, e semplifica il rilascio di nuove versioni o software, più di prima. La velocità aiuta anche con l'esperienza del cliente, consentendo alle aziende e agli sviluppatori di rispondere rapidamente ai bug e incorporare nuove funzioni non appena i clienti le richiedono.
  • Scalabilità: I contenitori forniscono la funzionalità per la scalabilità orizzontale, consentendo agli utenti finali di incorporare più contenitori identici all'interno dello stesso cluster da ridimensionare. Utilizzando una scalabilità intelligente e eseguendo solo i contenitori di cui hai bisogno quando ne hai bisogno, puoi tagliare drasticamente i costi e potenziare il ROI.  
  • Sviluppo semplificato: Avere una pipeline di sviluppo efficace ed efficiente è un vantaggio delle infrastrutture basate su contenitori. Poiché i contenitori consentono alle applicazioni di funzionare come se fossero create localmente, le incongruenze ambientali vengono eliminate. Ciò potenzia i test e il debug, riducendone la complessità e il dispendio di tempo. Questa funzione funge anche da aggiornamento delle applicazioni, poiché richiede allo sviluppatore di modificare semplicemente il file di configurazione, generare nuovi contenitori ed eliminare i precedenti; un processo che richiede pochi minuti.  

Servizi contenitore gestiti e stack di contenitori cloud

I clienti aziendali che cercano di potenziare il business utilizzando i contenitori devono scegliere tra due opzioni:

  1. Una piattaforma CaaS e la distribuzione in un cloud pubblico o in una piattaforma di infrastruttura locale

  2. Un servizio contenitore gestito fornito da Google, Amazon o Microsoft Azure, i tre principali provider di cloud pubblici adottati

Nessuna delle due opzioni blocca necessariamente un'azienda. Da quando è stata costituita la Cloud Native Computing Foundation (CNCF), da una partnership con Google e Linux Foundation, e ha lanciato il programma di certificazione Kubernetes, CNCF ha assicurato che tutti i fornitori mantengano lo standard per la portabilità del contenitore e la conformità tra le piattaforme.   

Prima che un cliente aziendale scelga tra una piattaforma di contenitore gestito o la distribuzione locale, dovrebbe porsi le seguenti domande:

  • Il contenitore richiede una distribuzione locale o può essere distribuito nel cloud pubblico?
  • Il dipartimento IT ha le competenze necessarie per progettare, distribuire e amministrare un ambiente Kubernetes? Cosa è richiesto per addestrarli o conservarli?
  • Qual è la piattaforma di cloud pubblico in cui è necessario distribuire i contenitori? Esempi sono Google, AWS o Azure.
  • L'utilizzo di un piano di controllo di Kubernetes multitenant e condiviso ha delle implicazioni?

Se l'azienda è ancora in fase sperimentale con i contenitori, i servizi contenitore gestito possono essere la scelta migliore. I servizi contenitore gestito sono un buon punto di partenza poiché non richiedono un gestore cluster, il provisioning di risorse o una piattaforma minima distribuita. Un grande vantaggio dei servizi contenitore gestito è che sono fantastici per i test iniziali di distribuzione dei contenitori, e poi per personalizzare lo sviluppo e i processi operativi.

Se l'azienda è già in una fase più definita della distribuzione dei contenitori su Kubernetes o AWS, o una piattaforma locale, si potrà optare per una propria soluzione CaaS. Creando il proprio CaaS si fornirà all'azienda una piattaforma più performante, con i framework e i servizi necessari per un sistema di produzione.

L'ascesa di Kubernetes

Non diversamente dalla guerra tra Betamax e VHS, la guerra per il predominio sull'orchestrazione dei contenitori era stata prevista nel 4° trimestre del 2017 e si è conclusa nel 2° trimestre del 2018. Google Kubernetes Engine, ora conosciuto semplicemente come Kubernetes, è risultato vincitore. Con un netto vincitore, i provider e gli adottanti hanno raddoppiato i loro sforzi e si sono concentrati sulla produzione e il miglioramento delle loro distribuzioni per Kubernetes.

Il rilascio di un servizio Kubernetes gestito e degli stack di contenitori ibridi ha contribuito a facilitare l'adozione di Kubernetes. Poiché GKE ha aiutato a promuovere il concetto dei servizi di contenitori gestiti, Kubernetes ha sempre gestito una domanda maggiore rispetto ai servizi contenitore dei suoi concorrenti, AWS e Azure. I rilasci della metà del 2018 di Amazon Elastic Container Service per Kubernetes (Amazon EKS) e Azure Kubernetes Service (AKS) hanno cementato la predominanza di GKE.

Guarda il video

Kubernetes e orchestrazione dei contenitori

Kubernetes (K8s) è un sistema di orchestrazione dei contenitori per l'automazione della distribuzione, della gestione e della scalabilità delle applicazioni. Originariamente progettato da Google e diventato open source nel 2014, Kubernetes è gestito da CNCF. Il sito web di Kubernetes descrive Kubernetes come una piattaforma "portabile, estendibile open-source per la gestione di carichi di lavoro e servizi containerizzati che facilita sia la configurazione dichiarativa che l'automazione".

Le tre piattaforme principali in base alle quali funziona Kubernetes sono:

  • Contenitori
  • Microservizi
  • Cloud portabile

In quanto ambiente di gestione incentrato sui contenitori, Kubernetes coordina le infrastrutture di calcolo, rete e storage per i carichi di lavoro degli utenti. Kubernetes ha la stessa facilità d'uso di un PaaS e la malleabilità di IaaS e la portabilità tra i provider di infrastrutture. 

Kubernetes, il percorso open source di IBM e Red Hat

Grazie a una collaborazione ventennale, IBM e Red Hat hanno fatto insieme un percorso di esplorazione. Come uno dei primi sostenitori di Linux, IBM ha lavorato insieme a Red Hat e ha contribuito a sviluppare e supportare Linux come sistema operativo di livello aziendale. Più recentemente, questa collaborazione ha contribuito a portare Kubernetes e le soluzioni cloud ibride ad un ampio numero di clienti. Kubernetes è anche uno dei fondamenti della strategia cloud ibrida combinata di IBM e Red Hat.

Queste innovazioni sono diventate le tecnologie di base per un business cloud ibrido da 19 miliardi di dollari di IBM. Alla conclusione dell'acquisizione prevista per la fine del 2019, Red Hat sarà l'ultimo membro e unità distinta per il team cloud ibrido IBM.  

Kubernetes, IBM e Hertz

Hertz Corporation, conosciuta semplicemente come Hertz, ha festeggiato il suo centesimo compleanno nel 2018. Intrappolata da problematiche legate alla tecnologia legacy, l'azienda aveva bisogno di un aiuto per snellirne l'architettura e la tecnologia aziendale. Hertz ha collaborato con IBM Cloud Garage™ e ha sviluppato un'architettura Kubernetes che ha aiutato l'azienda a creare e distribuire applicazioni basate su microservizi a IBM Cloud™ Private e IBM Cloud Container Service.

Collaborando con IBM, Hertz ha modernizzato i propri sistemi core attraverso canali digitali, prenotazioni, tariffe e altro, utilizzando architetture di contenitori e microservizi flessibili. Con la sua portata mondiale, Hertz garantisce che le applicazioni siano altamente disponibili, su scala aziendale, e prevede di ricevere 1,5 miliardi di riscontri e 30 milioni di aggiornamenti giornalmente una volta che le applicazioni sono in produzione.

Kubernetes e software open source

Il software open source sta continuando ad espandere la sua influenza, stabilendo ulteriormente l'importanza del software open source nel mondo dell'informatica. Le soluzioni di supporto del white paper IBM Services™ per l'ambiente software open source rileva che "il 96% delle applicazioni commerciali ha qualche tipo di componente open source" (PDF, 3,9 MB).1

Nel mondo del software open source, Arturo Suarez suscita molto clamore. Suarez ha creato la prima distribuzione commerciale di una piattaforma software open source gratuita per il cloud computing, OpenStack. In un'intervista IT Biz Advisor del 2019, Suarez descrive la sua esperienza con Kubernetes dicendo "Kubernetes [sta] vincendo la gara nell'orchestrazione dei contenitori" e "Kubernetes si evolve ancora più velocemente di OpenStack, con rilasci ogni tre mesi, e ha un modello di governance e una curva di adozione migliore."2  

IBM Cloud Kubernetes Service

A metà maggio 2018 e in seguito agli investimenti strategici di IBM in Kubernetes, IBM Cloud Container Service è stato rinominato come IBM Cloud Kubernetes Service, un servizio disponibile da maggio 2017.

In qualità di servizio contenitore gestito per la consegna rapida delle applicazioni, IBM Cloud Kubernetes Service può integrarsi con IBM Watson®, blockchain e altri servizi avanzati. Le varie funzioni di IBM Cloud Kubernetes Service includono:

  • Pianificazione intelligente
  • Auto-riparazione
  • Scalabilità orizzontale
  • Rilevamento del servizio
  • Bilanciamento del carico
  • Rollout e rollback automatici
  • Gestione dei segreti e della configurazione

Grazie alle funzionalità avanzate per la gestione user-friendly dei cluster e alla possibilità di progettare il proprio cluster, IBM Cloud Kubernetes Service offre anche politiche di sicurezza e isolamento dei contenitori, e strumenti operativi integrati per la congruenza delle distribuzioni.

IBM Cloud Kubernetes Service ha attualmente più di 10 mila cluster di produzione gestiti a pagamento e viene utilizzato da clienti come Think Research, Eurobits Technologies e The Weather Company, una società del gruppo IBM. Le aziende utilizzano IBM Cloud Kubernetes Service per eseguire le seguenti attività:

  • Creare cluster.
  • Distribuire un'app web scalabile su Kubernetes.
  • Analizzare i log e monitorare lo stato delle app Kubernetes.
  • Fornire distribuzione continua a Kubernetes.

Per ulteriori informazioni su come i servizi contenitore, i servizi cloud e Kubernetes possono aiutare il tuo business, pianifica un colloquio diretto con un esperto IBM gratuitamente. Puoi anche registrarti a IBM Cloud Kubernetes Service per creare e sviluppare gratuitamente nell'ambiente di IBM Cloud. IBM è qui per aiutarti a far progredire il tuo business con fiducia.

Approfondimenti su contenitori e Kubernetes

Fonti

  1. IBM Services. “Support solutions for your open source software environment,”IBM, 2019. https://www.ibm.com/downloads/cas/BWJWOJRD (PDF, 3,9 MB)
  2. Camilla Sharpe. “Q&A: How open source technology is shaking up the IT landscape,”IBM, 16 maggio 2019. https://itbizadvisor.com/2019/05/qa-how-open-source-technology-is-shaking-up-the-it-landscape