Per avere successo, uno sviluppatore deve impacchettare e trasportare in modo efficiente diversi tipi di applicazioni. I container as a service (CaaS) possono essere un modo per semplificare la distribuzione, le operazioni e la manutenzione dell'infrastruttura e dei container.
Containers as a service (CaaS) è un modello di servizio cloud che fornisce una piattaforma gestita e automatizzata per l'orchestrazione dei container. È un modo per organizzare e semplificare le operazioni del cluster.
Immagina che tutti i tuoi programmi vivano in uno spazio di lavoro virtuale, poi un manager che si prende cura dell'ufficio e impedisce che venga distrutto o sopraffatto: questo è ciò che è la containerizzazione. Non devi occuparti dei problemi. Invece, puoi concentrarti su come viene eseguito il codice.
Il CaaS colma efficacemente il divario tra il container finito dello sviluppatore e un runtime di livello di produzione, astraendo l'infrastruttura sottostante e consentendo ai team di concentrarsi sulla logica dell'applicazione anziché sulla gestione del cluster.
Il CaaS funziona fornendo un ambiente gestito basato su un motore di orchestrazione dei container, con Kubernetes che è lo standard di settore per un motore di orchestrazione dei container. Il processo crea una separazione delle responsabilità tra gli sviluppatori e l'infrastruttura di base:
I compiti di uno sviluppatore: innanzitutto, deve essere in grado di prendere tutte le dipendenze e la sua applicazione e di inserirle in un'immagine container. Questa immagine è un progetto portatile dell'applicazione.
Una volta completata, subentra una soluzione CaaS: dopo la creazione e l'archiviazione, non resta che applicare la gestione tramite un'API o un'interfaccia. Un prodotto CaaS come Google Kubernetes Engine può aiutarti a gestire tutto il resto. Ora è il momento di definire lo stato del programma. Hai bisogno di tre server che eseguano lo stesso programma? Questo servizio può aiutarti.
Dopodiché, il nuovo deployment viene gestito automaticamente. Queste informazioni potrebbero comprendere:
CaaS è una piattaforma versatile che può fungere da base per architetture e pratiche di sviluppo.
Può essere una piattaforma ideale per i deployment di applicazioni e microservizi.
Può essere un ottimo modo per pacchettizzare applicazioni meno recenti con la modernizzazione delle app legacy.
Per le strutture di sviluppo, una piattaforma CaaS può essere ottima. Un sistema automatizzato può creare una nuova immagine container, eseguire test ed eseguirne il deployment sulla piattaforma CaaS senza tempi di inattività.
CaaS automatizza le esigenze di traffico. La piattaforma può aggiungere o rimuovere automaticamente le istanze del container per soddisfare la domanda degli utenti.
Le piattaforme CaaS basate su standard aperti come Kubernetes possono fornire un ambiente operativo coerente tra data center on-premise e più cloud pubblici. Ciò aiuta le aziende a eseguire le proprie applicazioni containerizzate ovunque senza doverle riprogettare.
Il panorama "as a service" include diversi modelli, ognuno dei quali offre un diverso livello di astrazione e gestione. CaaS si colloca in modo univoco tra Infrastructure as a Service (IaaS) e Platform as a Service (PaaS).
Modello cloud | Cosa gestisci | Livello di astrazione | Caso tipico di utilizzo |
Infrastructure as a Service (IaaS) | Sistema operativo, middleware, runtime, applicazione, dati. | Basso: fornisce accesso a risorse di computing non elaborate come macchine virtuali e archiviazione. | Creazione di un'infrastruttura personalizzata da zero. |
Container as a Service (CaaS) | Applicazione e configurazione. | Medio: gestisce il cluster e il sistema operativo, ma ti dà il controllo sull'ambiente container. | Orchestrazione di applicazioni containerizzate su larga scala. |
Platform as a service (PaaS) | Applicazione e dati. | Alto: gestisce quasi tutto; tu fornisci il codice sorgente e la piattaforma lo esegue. | Eseguire rapidamente il deployment di semplici applicazioni web e API. |
Function as a Service (FaaS, serverless) | Solo la funzione del codice. | Molto alta: esegue funzioni individuali e senza stato in risposta agli eventi. | Attività di elaborazione dati leggere e basate su eventi. |
Software as a Service (SaaS) | Niente (sei l'utente finale). | Completo: fornisce un prodotto software finito tramite il web. | Utilizzo di software pronti all'uso come email o CRM. |
Modello cloud
Cosa gestisci
Livello di astrazione
Caso tipico di utilizzo
Infrastructure as a Service (IaaS)
Sistema operativo, middleware, runtime, applicazione, dati.
Basso: fornisce accesso a risorse di computing non elaborate come macchine virtuali e archiviazione.
Creazione di un'infrastruttura personalizzata da zero.
Container as a Service (CaaS)
Applicazione e configurazione.
Medio: gestisce il cluster e il sistema operativo, ma ti dà il controllo sull'ambiente container.
Orchestrazione di applicazioni containerizzate su larga scala.
Platform as a service (PaaS)
Applicazione e dati.
Alto: gestisce quasi tutto; tu fornisci il codice sorgente e la piattaforma lo esegue.
Eseguire rapidamente il deployment di semplici applicazioni web e API.
Function as a Service (FaaS, serverless)
Solo la funzione del codice.
Molto alta: esegue funzioni individuali e senza stato in risposta agli eventi.
Attività di elaborazione dati leggere e basate su eventi.
Software as a Service (SaaS)
Niente (sei l'utente finale).
Completo: fornisce un prodotto software finito tramite il web.
Utilizzo di software pronti all'uso come email o CRM.
I container sono pensati per distribuire il tuo software ovunque. Ulteriori informazioni sui container.
Sì. Infatti, ti danno accesso a molti altri vantaggi, come la separazione delle responsabilità, l'isolamento delle applicazioni, l'elaborazione batch e i deployment di cloud ibrido.
Google Kubernetes Engine (GKE) semplifica l'individuazione dei servizi grazie alla sua perfetta integrazione con i meccanismi nativi di Kubernetes, come gli oggetti Service e il DNS. In quanto offerta di servizi gestiti, GKE migliora queste funzionalità con caratteristiche come i servizi multi-cluster (MCS) e l'integrazione diretta con Service Directory.
È possibile creare ed eseguire il deployment di nuovo codice più rapidamente, ma le risorse non vengono gestite o ideate più e più volte.
L'adozione di una piattaforma CaaS può fornire diversi vantaggi strategici per i team di sviluppo e operazioni aziendali.
Portabilità
CaaS aiuta i carichi di lavoro. Se un'applicazione basata su container è in esecuzione sul tuo framework CaaS standard, può essere modificata facilmente.
Scalabilità
Puoi adattare le risorse a ciò che è necessario.
Programmazione rapida
Questo aiuta a migliorare le pratiche di automazione.
Manutenzione migliorata
Se un componente non funziona, la piattaforma se ne occupa e lo ripara rapidamente per mantenere la funzionalità dell'utente.
Il fornitore si occupa del lavoro di base, il che ti fa affidare al codice dell'app, all'accesso all'account, al firewall e alle regole di accesso. La sicurezza in un ambiente CaaS opera secondo un modello di responsabilità condivisa. Il provider CaaS è responsabile della protezione dell'infrastruttura di base. Ciò include la protezione del piano di controllo dell'orchestrazione dei container, la messa in sicurezza dei data center fisici e della rete e la garanzia dell'integrità del servizio gestito stesso.
Il cliente è responsabile della sicurezza dei componenti che controlla. Ciò comporta la protezione del codice dell'applicazione, la gestione dell'accesso al cluster utilizzando Identity and Access Management (IAM), la configurazione di policy di rete per controllare il traffico tra i container e, soprattutto, la protezione della catena di fornitura del software. Ciò significa utilizzare un registro container sicuro ed eseguire la scansione delle immagini container per individuare le vulnerabilità note prima del deployment.
Responsabilità del team IT:
Google Kubernetes Engine (GKE) è la principale offerta CaaS di Google Cloud. La configurazione di un deployment di base segue un workflow logico e container-native.
Passaggio 1: crea il container per l'applicazione.
Per prima cosa, scrivi un file di testo per la tua applicazione. Questo semplice file di testo contiene le istruzioni per creare un'immagine container statica per l'applicazione, le sue dipendenze e il suo ambiente di runtime.
Passaggio 2: archivia l'immagine in un registro.
Crea l'immagine container dal file di testo ed eseguine il push in un registro privato sicuro. Artifact Registry è il servizio gestito di Google Cloud per l'archiviazione e il controllo delle versioni delle immagini container.
Passaggio 3: crea un cluster GKE.
Esegui il provisioning di un cluster Kubernetes utilizzando la console Google Cloud o lo strumento a riga di comando gcloud. Per un'esperienza completamente gestita che automatizza la gestione e la scalabilità dei nodi, puoi scegliere un cluster GKE Autopilot.
Passaggio 4: definisci il deployment.
Crea un file manifest Kubernetes (ad esempio, deployment.yaml). In questo file, definisci in modo dichiarativo lo stato desiderato della tua applicazione, specificando l'immagine container da utilizzare, il numero di repliche che vuoi e le risorse CPU e di memoria richieste.
Passaggio 5: esegui il deployment dell'applicazione nel cluster.
Utilizza lo strumento a riga di comando Kubernetes, kubectl, per applicare il file manifest al cluster. Il control plane di GKE riceve la richiesta e pianifica l'esecuzione dei container dell'applicazione sui nodi worker del cluster.
Passaggio 6: esponi la tua applicazione.
Per rendere la tua applicazione accessibile agli utenti su internet, crea un manifest del servizio Kubernetes di tipo LoadBalancer. Quando applichi questo manifest, GKE esegue automaticamente il provisioning di un bilanciatore del carico cloud e gli assegna un indirizzo IP pubblico, instradando il traffico esterno ai container in esecuzione.
Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.