GCP: Analisi del stack computazionale di Google Cloud Platform

La traduzione dell'articolo è stata preparata appositamente per gli studenti del corso «Servizi Cloud».

Sei interessato a svilupparti in questo ambito? Guarda la registrazione di un masterclass professionale «Servizio AWS EC2», tenuto da Egor Zuev — TeamLead presso InBit e autore del programma educativo in OTUS.

GCP: Analisi del stack computazionale di Google Cloud Platform

Google Cloud Platform (GCP) offre numerosi servizi, e in particolare uno stack computazionale che include Google Compute Engine (GCE), Google Kubernetes Engine (ex Container Engine) (GKE), Google App Engine (GAE) e Google Cloud Functions (GCF). Tutti questi servizi hanno nomi accattivanti, ma le loro funzioni e le differenze tra di loro potrebbero non essere del tutto evidenti. Questo articolo è destinato a coloro che si avvicinano per la prima volta ai concetti di cloud, in particolare ai servizi cloud e a GCP.

GCP: Analisi del stack computazionale di Google Cloud Platform

1. Stack computazionale

Lo stack computazionale può essere visto come un'astrazione multilivello di ciò che un sistema informatico può fornire. Questo stack si eleva (moves up) dall'«hardware nudo» (bare metal), relativo ai componenti hardware fisici del computer, fino alle funzioni (functions), che rappresentano l'unità di calcolo più piccola. È importante notare riguardo allo stack che i servizi si aggregano mentre si sale nello stack, quindi la sezione «applicazioni» (app), mostrata nella figura 1 qui sotto, deve contenere tutti i componenti di base dei contenitori (contenitori), macchine virtuali (macchine virtuali) e hardware. Allo stesso modo, il componente delle macchine virtuali deve contenere hardware interno per funzionare.

GCP: Analisi del stack computazionale di Google Cloud Platform

Figura 1: Stack di calcolo | Immagine tratta da Google Cloud

Questo modello, mostrato nella figura 1, è alla base della descrizione delle offerte da parte dei fornitori di servizi cloud. Pertanto, alcuni fornitori possono offrire solo, ad esempio, contenitori e servizi inferiori nella qualità dello stack, mentre altri possono coprire tutto ciò che è mostrato nella figura 1.

— Se sei familiare con i servizi cloud, vai al sezione 3, per conoscere l'equivalente di GCP
— Se hai bisogno solo di un riepilogo sui servizi cloud, vai al sezione 2.4

2. Servizi cloud

Il mondo del cloud computing è molto vario. I fornitori di servizi cloud offrono una vasta gamma di servizi, adattati a diverse esigenze dei clienti. Potreste aver sentito termini come IaaS, PaaS, SaaS, FaaS, KaaS, ecc., seguiti da «aaS». Nonostante questa strana convenzione di denominazione, formano un insieme di servizi dei fornitori di cloud. Ci sono 3 offerte principali «come servizio» (as a Service) che i fornitori di cloud forniscono quasi sempre.

Queste sono IaaS, PaaS e SaaS, che significano rispettivamente infrastruttura come servizio (Infrastructure as a Service), piattaforma come servizio (Platform as a Service) e software come servizio (Software as a Service). È importante visualizzare i servizi cloud come livelli di servizi offerti. Questo significa che quando salite o scendete da un livello all'altro, voi, come clienti, attraversate diverse opzioni di assistenza che vengono aggiunte o rimosse dall'offerta base. È meglio considerarlo come una piramide, come mostrato nella figura 2.
GCP: Analisi del stack computazionale di Google Cloud Platform

Figura 2: Piramide «aaS» | Immagine tratta da Ruby Garage

2.1 Infrastruttura come servizio (IaaS)

Questo è il livello più basso che può offrire un fornitore di servizi cloud e include il fornitore di cloud computing che fornisce un'infrastruttura 'nuda', comprensiva di software intermedio, cavi di rete, processori, grafica processori, memoria RAM, archiviazione esterna, server e immagini dei sistemi operativi di base, ad esempio, Debian Linux, CentOS, Windows, ecc.

Se ordini un'offerta da un fornitore di servizi cloud IaaS, questo è ciò che puoi aspettarti di ricevere. Spetterà a te, come cliente, assemblare questi componenti per gestire la tua attività. Il grado di cosa dovrai gestire può variare da fornitore a fornitore, ma in linea generale ricevi semplicemente l'hardware e il sistema operativo, mentre il resto è tua responsabilità. Esempi di IaaS includono AWS Elastic Compute, Microsoft Azure e GCE.

A qualcuno potrebbe non piacere il fatto di dover installare le immagini del sistema operativo, gestire la rete, il bilanciamento del carico o preoccuparsi di quale tipo di processore sia più adatto per il loro carico di lavoro. Ed è qui che ci spostiamo verso l'alto nella piramide verso il PaaS.

2.2 Piattaforma come Servizio (PaaS)

Il PaaS include solo un fornitore di servizi cloud che offre una piattaforma specifica su cui gli utenti possono costruire applicazioni. Si tratta di un'astrazione rispetto all'IaaS, il che significa che il fornitore di cloud si occupa di tutti i dettagli relativi a CPU, memoria, RAM, archiviazione, reti, ecc. Come mostrato in figura 2, tu, in qualità di cliente, hai un controllo limitato sulla piattaforma reale, poiché il provider cloud gestisce tutti i dettagli dell'infrastruttura per te. Richiedi la piattaforma scelta e costruisci il tuo progetto su di essa. Esempi di PaaS includono Heroku.

Per qualcuno, questo potrebbe essere un livello troppo elevato, poiché non vuole necessariamente costruire un progetto sulla piattaforma indicata, ma ha più bisogno di un insieme di servizi direttamente dal fornitore di servizi cloud. È qui che entra in gioco il SaaS.

2.3 Software come Servizio (SaaS)

Il SaaS rappresenta i servizi più comuni offerti dai fornitori di servizi cloud. Sono rivolti agli utenti finali e sono accessibili principalmente tramite siti web, come Gmail, Google Docs, Dropbox, ecc. Per quanto riguarda Google Cloud, ci sono diverse offerte al di fuori del loro stack di calcolo che sono SaaS. Tra queste ci sono Data Studio, Big Query, ecc.

2.4 Riepilogo dei servizi cloud

Componenti
IaaS
PaaS
SaaS

Cosa ottieni
Ottieni l'infrastruttura e paghi di conseguenza. Libertà di utilizzare o installare qualsiasi software, sistema operativo o la loro composizione.
Qui ottieni ciò che richiedi. Software, hardware, sistema operativo, ambiente web. Ricevi una piattaforma pronta all'uso e paghi di conseguenza.
Qui non devi preoccuparti di nulla. Ti viene fornito un pacchetto preconfigurato in base alle tue esigenze e devi semplicemente pagare di conseguenza.

Significato
Livello base di elaborazione
Vertice dell'IaaS
È essenzialmente un pacchetto completo di servizi

Complicazioni tecniche
Sono necessarie conoscenze tecniche
Ti è stata fornita una configurazione di base, ma hai comunque bisogno di conoscenze specifiche.
Non devi preoccuparti dei dettagli tecnici. Il fornitore SaaS si occupa di tutto.

Con cosa lavora
Macchine virtuali, archiviazione, server, rete, bilanciatori di carico, ecc.
Ambienti di esecuzione (come il runtime Java), database (come MySQL, Oracle), server web (come Tomcat, ecc.)
Applicazioni come servizi di posta elettronica (Gmail, Yahoo Mail, ecc.), siti di social networking (Facebook, ecc.)

Grafico di popolarità
Popolare tra sviluppatori altamente qualificati e ricercatori che necessitano di personalizzazioni secondo le loro esigenze o aree di studio.
Più popolare tra gli sviluppatori, poiché possono concentrarsi sulla creazione delle loro applicazioni o script. Non devono preoccuparsi del traffico o della gestione del server, ecc.
Più popolare tra i consumatori comuni o le aziende che utilizzano software come email, file sharing, social media, poiché non devono preoccuparsi dei dettagli tecnici.

Figura 3: Riepilogo delle principali offerte cloud | Immagine fornita Amir di Blog Specia

3. Pacchetto di calcolo Google Cloud Platform

Dopo aver esaminato le offerte tipiche dei fornitori di cloud nella Sezione 2, possiamo confrontarle con le offerte di Google Cloud.

3.1 Google Compute Engine (GCE) — IaaS

GCP: Analisi del stack computazionale di Google Cloud Platform

Figura 4: Icona di Google Compute Engine (GCE)

GCE è un'offerta IaaS di Google. Con GCE puoi creare liberamente macchine virtuali, distribuire risorse di CPU e memoria, scegliere il tipo di storage, come SSD o HDD, e anche la quantità di memoria. È quasi come creare il proprio computer/stazione di lavoro e gestire ogni dettaglio del suo funzionamento.

In GCE puoi scegliere da istanze micro con processori a 0,3 core e 1 GB di RAM a mostri con 96 core e oltre 300 GB di RAM. Puoi anche creare macchine virtuali di dimensioni personalizzate per i tuoi carichi di lavoro. Per chi è interessato, queste sono macchine virtuali che puoi assemblare.

Tipi di macchine | Documentazione Compute Engine | Google Cloud

3.2. Google Kubernetes Engine (GKE) — (Caas / Kaas)

GCP: Analisi del stack computazionale di Google Cloud Platform

Figura 5: Icona di Google Kubernetes Engine (GKE)

GKE è una soluzione computazionale unica di GCP che rappresenta un'astrazione sopra Compute Engine. In un senso più ampio, GKE può essere categoricamente classificato come "Container as a Service" (CaaS), talvolta indicato come "Kubernetes as a Service" (KaaS), che consente ai clienti di eseguire facilmente i propri container Docker in un ambiente Kubernetes completamente gestito. Per chi non è familiare con i container, i container aiutano a formare in modo modulare servizi/applicazioni, quindi diversi container possono contenere servizi differenti; ad esempio, un container può ospitare l'interfaccia della tua web app, mentre un altro può contenere la sua parte server. Kubernetes gestisce l'automazione, il coordinamento, la gestione e il deployment dei tuoi container. Maggiori informazioni qui.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) — (PaaS)

GCP: Analisi del stack computazionale di Google Cloud Platform

Figura 6: Icona di Google App Engine (GAE)

Come menzionato nella sezione 2.2, il PaaS si trova sopra l'IaaS, e nel caso di GCP può essere considerato anche come un'offerta sopra GKE. GAE è un PaaS specializzato di Google e come meglio loro stessi si descrivono — "porta il tuo codice e noi ci occupiamo del resto".

Questo garantisce che i clienti che utilizzano GAE non debbano preoccuparsi dell'hardware sottostante o del software intermedio, potendo già contare su una piattaforma preconfigurata pronta all'uso; tutto ciò che devono fare è fornire il codice necessario per l'esecuzione.

GAE gestisce automaticamente la scalabilità per soddisfare il carico e la domanda degli utenti, il che significa che se il tuo sito di fiori raggiunge un picco improvviso in prossimità di San Valentino, GAE si occuperà della scalabilità dell'infrastruttura sottostante per soddisfare la domanda e garantire che il tuo sito web non si blocchi a causa dell'aumento della richiesta. Ciò significa che paghi esattamente per le risorse necessarie alla tua applicazione in quel momento.

GAE utilizza Kubernetes o la sua versione integrata per gestire tutto questo, così non devi preoccuparti. GAE è ideale per le aziende che non sono interessate all'infrastruttura sottostante e si concentrano solo sul garantire che la loro applicazione sia disponibile nel modo migliore.

Secondo me, GAE è il miglior punto di partenza se sei uno sviluppatore con un'ottima idea, ma non vuoi occuparti del lavoro routinario di configurazione dei server, bilanciamento del carico e di tutto il resto del lavoro laborioso di devops/SRE. Col tempo potresti provare GKE e GCE, ma questa è solo la mia opinione.

Disclaimer: AppEngine è utilizzato per applicazioni web, non per applicazioni mobili.

Per informazione: App Engine — Crea backend web e mobile scalabili in qualsiasi linguaggio | Google Cloud

3.4 Google Cloud Functions — (FaaS)

GCP: Analisi del stack computazionale di Google Cloud Platform

Figura 7: Icona di Google Cloud Functions (GCF)

Spero che tu abbia notato la tendenza analizzando le proposte precedenti. Più sali nella scala delle soluzioni di calcolo GCP, meno devi preoccuparti delle tecnologie di base. Questa piramide si conclude con l'unità di calcolo minima possibile, la funzione, come mostrato nella sezione 1.

GCF è un'offerta relativamente nuova di GCP che è ancora in fase di beta testing (al momento della scrittura di questo articolo). Le funzioni cloud consentono a determinate funzioni scritte dagli sviluppatori di attivarsi in seguito a un evento.

Sono gestite da eventi e sono alla base della parola di moda "serverless", il che significa che non conoscono i server. Le funzioni cloud sono molto semplici e hanno molte applicazioni diverse che richiedono un pensiero orientato agli eventi. Ad esempio, ogni volta che un nuovo utente si registra, può essere attivata una funzione cloud per avvisare gli sviluppatori.

In una fabbrica, quando un determinato sensore raggiunge un certo valore, può attivare una funzione cloud che esegue un'elaborazione delle informazioni o notifica il personale di servizio, ecc.

Funzioni cloud: calcoli serverless gestiti da eventi | Google Cloud

Conclusione

In questo articolo abbiamo parlato delle varie offerte cloud, come IaaS, PaaS, ecc., e di come lo stack di calcolo di Google implementa questi diversi livelli. Abbiamo visto che i livelli di astrazione nel passaggio da una categoria di servizi a un'altra, ad esempio da IaaS a PaaS, richiedono meno conoscenze sull'infrastruttura sottostante.

Per le aziende, ciò offre una flessibilità cruciale che non solo risponde ai loro obiettivi operativi, ma soddisfa anche altre aree chiave come la sicurezza e il costo. In sintesi:

Compute Engine — consente di creare la propria macchina virtuale, assegnando risorse hardware specifiche, come RAM, processore e memoria. È molto pratico e a basso livello.

Kubernetes Engine — è un passo avanti rispetto a Compute Engine, che consente di utilizzare Kubernetes e i contenitori per gestire la propria applicazione, scalando se necessario.

App Engine — è un ulteriore upgrade rispetto a Kubernetes Engine, permettendoti di concentrarti solo sul tuo codice, mentre Google gestisce tutte le esigenze della piattaforma di base.

Cloud-Functions — rappresenta la vetta della piramide di calcolo, consentendo di scrivere una semplice funzione che, una volta attivata, usa tutta l'infrastruttura sottostante per calcolare e restituire il risultato.

Grazie per l'attenzione!

Twitter: @martinomburajr

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster