Il modo in cui Google

Da Gmail a YouTube per cercare, tutto su Google viene eseguito in contenitori. La containerizzazione consente ai nostri team di sviluppo di muoversi velocemente, distribuire il software in modo efficiente e operare su una scala senza precedenti. Ogni settimana, iniziamo diversi miliardi di contenitori., Abbiamo imparato molto sull’esecuzione di carichi di lavoro containerizzati in produzione negli ultimi dieci anni, e abbiamo condiviso questa conoscenza con la comunità lungo la strada: dai primi giorni di contribuire cgroups al kernel Linux, a prendere i progetti dai nostri strumenti interni e open sourcing come il progetto Kubernetes. Abbiamo confezionato questa esperienza in Google Cloud Platform in modo che gli sviluppatori e le aziende di qualsiasi dimensione possono facilmente toccare l’ultima innovazione contenitore.

Contenitori 101: Cosa sono i contenitori?,

I contenitori offrono un meccanismo di imballaggio logico in cui le applicazioni possono essere astratte dall’ambiente in cui vengono effettivamente eseguite. Questo disaccoppiamento consente alle applicazioni basate su container di essere distribuite in modo semplice e coerente, indipendentemente dal fatto che l’ambiente di destinazione sia un data center privato, il cloud pubblico o persino il laptop personale di uno sviluppatore., La containerizzazione fornisce una netta separazione delle preoccupazioni, poiché gli sviluppatori si concentrano sulla logica e le dipendenze delle applicazioni, mentre i team delle operazioni IT possono concentrarsi sulla distribuzione e sulla gestione senza preoccuparsi dei dettagli dell’applicazione, come versioni software specifiche e configurazioni specifiche dell’app.

Per quelli provenienti da ambienti virtualizzati, i contenitori sono spesso confrontati con macchine virtuali (VM)., Potresti già avere familiarità con le macchine virtuali: un sistema operativo guest come Linux o Windows viene eseguito su un sistema operativo host con accesso virtualizzato all’hardware sottostante. Come le macchine virtuali, i contenitori consentono di impacchettare l’applicazione insieme a librerie e altre dipendenze, fornendo ambienti isolati per l’esecuzione dei servizi software. Come vedrai di seguito, tuttavia, le somiglianze finiscono qui poiché i contenitori offrono un’unità molto più leggera per gli sviluppatori e i team IT Ops con cui lavorare, portando una miriade di vantaggi.,

Le macchine virtuali contengono le seguenti unità, impilate l’una sull’altra per la visualizzazione: App, Bin/Libs, sistema operativo guest, Hypervisor, Sistema operativo host, Infrastruttura. I contenitori contengono le seguenti unità, impilate una sopra l’altra per la visualizzazione: App, Bin/Libs, Runtime contenitore, sistema operativo host, Infrastruttura.

Perché i contenitori?,

Invece di virtualizzare lo stack hardware come con l’approccio delle macchine virtuali, i contenitori virtualizzano a livello di sistema operativo, con più contenitori in esecuzione direttamente in cima al kernel del sistema operativo. Ciò significa che i contenitori sono molto più leggeri: condividono il kernel del sistema operativo, si avviano molto più velocemente e utilizzano una frazione della memoria rispetto all’avvio di un intero sistema operativo.

Sono disponibili molti formati contenitore. Docker è un popolare formato contenitore open source supportato su Google Cloud Platform e dal motore Google Kubernetes.

Perché Sandbox comunque?,

Contenitori silo applicazioni l’uno dall’altro a meno che non li si collega esplicitamente. Ciò significa che non devi preoccuparti di dipendenze in conflitto o contesa di risorse: imposti limiti di risorse espliciti per ciascun servizio. È importante sottolineare che si tratta di un ulteriore livello di sicurezza poiché le applicazioni non sono in esecuzione direttamente sul sistema operativo host.

Ambiente coerente

I contenitori offrono agli sviluppatori la possibilità di creare ambienti prevedibili isolati da altre applicazioni., I contenitori possono anche includere dipendenze software necessarie all’applicazione, come versioni specifiche di runtime del linguaggio di programmazione e altre librerie software. Dal punto di vista dello sviluppatore, tutto questo è garantito per essere coerente, non importa dove l’applicazione è in ultima analisi, distribuito. Tutto ciò si traduce in produttività: gli sviluppatori e i team IT Ops dedicano meno tempo al debug e alla diagnosi delle differenze negli ambienti e più tempo alla spedizione di nuove funzionalità per gli utenti., E significa meno bug dal momento che gli sviluppatori possono ora fare ipotesi in ambienti di sviluppo e test che possono essere sicuri che rimarranno validi in produzione.

Esegui ovunque

I contenitori sono in grado di funzionare praticamente ovunque, facilitando notevolmente lo sviluppo e la distribuzione: su sistemi operativi Linux, Windows e Mac; su macchine virtuali o bare metal; sulla macchina di uno sviluppatore o nei data center on-premise; e, naturalmente, nel cloud pubblico. La popolarità diffusa del formato immagine Docker per i contenitori aiuta ulteriormente con la portabilità., Ovunque si desidera eseguire il software, è possibile utilizzare i contenitori.

Isolamento

I contenitori virtualizzano CPU, memoria, storage e risorse di rete a livello di sistema operativo, fornendo agli sviluppatori una vista sandbox del sistema operativo logicamente isolata da altre applicazioni.,onment

di controllo di controllo Applicazione Sandboxing di controllo di controllo Piccole Dimensioni su Disco di controllo Basso Overhead di controllo
Dal Codice per le Applicazioni

Contenitori consentono di pacchetto di applicazione e delle sue dipendenze insieme in un succinto manifesto che può essere sotto controllo di versione, questo consente una facile replica di applicazione tra gli sviluppatori del team e macchine in cluster.,

Proprio come le librerie software raggruppano i bit di codice, consentendo agli sviluppatori di astrarre la logica come l’autenticazione degli utenti e la gestione delle sessioni, i contenitori consentono di impacchettare l’applicazione nel suo complesso, astraendo il sistema operativo, la macchina e persino il codice stesso. In combinazione con un’architettura basata su servizi, l’intera unità su cui gli sviluppatori devono ragionare diventa molto più piccola, portando a una maggiore agilità e produttività. Tutto ciò facilita lo sviluppo, il test, la distribuzione e la gestione complessiva delle applicazioni.,

Architettura monolitica basata su servizi

I contenitori funzionano meglio per architetture basate su servizi. Contrariamente alle architetture monolitiche, in cui ogni parte dell’applicazione è intrecciata, dall’IO all’elaborazione dei dati al rendering, le architetture basate sui servizi le separano in componenti separati. La separazione e la divisione del lavoro consentono ai servizi di continuare a funzionare anche se altri non riescono, mantenendo l’applicazione nel suo complesso più affidabile.,

La componentizzazione consente anche di sviluppare più velocemente e in modo più affidabile; le basi di codice più piccole sono più facili da mantenere e poiché i servizi sono separati, è facile testare input specifici per gli output.

I contenitori sono perfetti per le applicazioni basate sul servizio poiché è possibile controllare lo stato di ogni contenitore, limitare ogni servizio a risorse specifiche e avviarli e interromperli indipendentemente l’uno dall’altro.

E poiché i contenitori astraggono il codice, i contenitori consentono di trattare servizi separati come scatole nere, riducendo ulteriormente lo spazio di cui uno sviluppatore deve occuparsi., Quando gli sviluppatori lavorano su servizi che dipendono da un altro, possono facilmente avviare un contenitore per quel servizio specifico senza dover perdere tempo a configurare l’ambiente corretto e la risoluzione dei problemi in anticipo.

Scopri i primi tre modi per eseguire i contenitori su Google Cloud!

Google Kubernetes Engine per una soluzione di orchestrazione container, Cloud Run per un approccio completamente serverless e Compute Engine per utilizzare semplicemente macchine virtuali.,

Kubernetes: Production-Grade Container Orchestration

Abbiamo avuto così tanto successo con il nostro sistema di gestione cluster interno Borg che abbiamo preso quello che abbiamo imparato e metterlo nel progetto open source Kubernetes. Ora tu e altre aziende potete beneficiare della nostra decennale esperienza., Conosciuto anche come “k8s”, Kubernetes fornisce l’orchestrazione automatizzata dei container-gestione delle macchine e dei servizi per te-migliorando l’affidabilità e riducendo il tempo e le risorse necessarie per spendere su DevOps, per non parlare del sollievo dallo stress associato a queste attività.

Kubernetes semplifica tutto ciò che è associato alla distribuzione e alla gestione dell’applicazione. Kubernetes automatizza i rollout e i rollback, monitorando lo stato dei tuoi servizi per prevenire i rollout errati prima che le cose vadano male., Inoltre, esegue continuamente controlli sullo stato dei servizi, riavviando i contenitori che non riescono o si sono bloccati e solo i servizi pubblicitari ai clienti quando ha confermato che sono stati avviati con successo. Inoltre, Kubernetes scalerà automaticamente i tuoi servizi verso l’alto o verso il basso in base all’utilizzo, assicurandoti di eseguire solo ciò di cui hai bisogno, quando ne hai bisogno. Come i contenitori, Kubernetes ti consente di gestire in modo dichiarativo il tuo cluster, consentendo al tuo setup di essere controllato dalla versione e facilmente replicato.,

Kubernetes Caratteristiche
  • controllo Automatizzato implementazioni e ripristina il backup
  • controllare il Servizio di monitoraggio della salute
  • controllo Automatico ridimensionamento dei servizi
  • controllare Dichiarativa di gestione
  • controllare Distribuire ovunque, tra le distribuzioni ibride

Forse il più importante, Kubernetes, è costruito per essere utilizzato ovunque, che consente di orchestrare il tutto sul sito implementazioni cloud pubblici per le distribuzioni ibride tra., Ciò consente alla tua infrastruttura di raggiungere gli utenti dove si trovano, alle tue applicazioni di avere una maggiore disponibilità e alla tua azienda di bilanciare i tuoi problemi di sicurezza e di costo, il tutto su misura per le tue esigenze specifiche.

Il tuo cluster su Google

Naturalmente, Kubernetes funziona meglio su Google Cloud Platform. Google Kubernetes Engine è la soluzione Kubernetes gestita da Premier che ti consente di configurare e preparare rapidamente la produzione.,

Kubernetes Engine è completamente gestito dagli ingegneri di affidabilità di Google, quelli che conoscono meglio i contenitori, garantendo che il tuo cluster sia altamente disponibile e aggiornato. Si integra perfettamente con tutti i servizi GCP, come il monitoraggio, la diagnostica e la registrazione di Stackdriver, la gestione delle identità e degli accessi e l’infrastruttura di rete best-in-class di Google.

Caratteristiche del motore Kubernetes
  • controlla Kubernetes open source gestito
  • controlla 99.,SLA al 5% e alta disponibilità con implementazioni multizona integrate
  • verifica la perfetta integrazione di altri servizi GCP
  • verifica il prezzo per prestazioni leader del settore
  • verifica flessibile& interoperabile con i cluster locali o altri fornitori di cloud
  • controlla l’infrastruttura gestita di livello Google

Ma amiamo darti opzioni. Google Cloud Platform ti offre uno spettro completo per l’esecuzione dei tuoi contenitori., Dall’ambiente completamente gestito con Google Cloud Run alla gestione dei cluster con Kubernetes Engine all’infrastruttura roll-it-yourself su Google Compute Engine dal prezzo alle prestazioni di livello mondiale, puoi trovare la soluzione ideale per l’esecuzione di contenitori su Google Cloud Platform.

La soluzione completa del contenitore

Non si ferma qui. Google Cloud Platform fornisce gli strumenti necessari per utilizzare i contenitori dallo sviluppo alla produzione., Cloud Build e Container Registry forniscono l’archiviazione e la gestione delle immagini Docker, supportate dagli elevati standard di sicurezza di Google e dalla rete di livello mondiale. Il sistema operativo ottimizzato per i container di Google fornisce un sistema operativo leggero e altamente sicuro fornito con i runtime Docker e Kubernetes preinstallati. Tutta la gestione dei container può avvenire su GCP.

Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *