GCP: suddivisione dello stack di elaborazione di Google Cloud Platform

La traduzione dell'articolo è stata preparata appositamente per gli studenti del corso "Servizi cloud".

Sei interessato a svilupparti in questa direzione? Guarda la registrazione di una master class professionale "Servizio AWS EC2", tenuto da Egor Zuev - TeamLead di InBit e autore del programma educativo di OTUS.

GCP: suddivisione dello stack di elaborazione di Google Cloud Platform

La Google Cloud Platform (GCP) offre molti servizi, e in particolare lo stack di calcolo che contiene 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 interessanti, ma potrebbero non essere del tutto ovvi sulle loro caratteristiche e su ciò che li rende unici l'uno rispetto all'altro. Questo articolo è destinato a coloro che non conoscono i concetti di cloud, in particolare i servizi cloud e GCP.

GCP: suddivisione dello stack di elaborazione di Google Cloud Platform

1. Pila di calcolo

Lo stack di calcolo può essere pensato come un'astrazione stratificata su ciò che può fornire un sistema informatico. Questa pila sale (si sposta su) da "ferro nudo" (solo metallo) riferito ai componenti hardware effettivi del computer, fino alle funzioni (funzioni), che è la più piccola unità di calcolo. Ciò che è importante notare sullo stack è che i servizi vengono aggregati man mano che salgono nello stack, ad esempio la sezione "app" (applicazioni) mostrato nella Figura 1 di seguito dovrebbe contenere tutti i componenti di base del contenitore (contenitori), macchine virtuali (macchine virtuali) e ferro. Allo stesso modo, il componente della macchina virtuale deve contenere l'hardware al suo interno per funzionare.

GCP: suddivisione dello stack di elaborazione di Google Cloud Platform

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

Questo modello, mostrato nella Figura 1, è la base per descrivere le offerte dei fornitori di servizi cloud. Pertanto, alcuni provider possono fornire, ad esempio, solo container e servizi al di sotto della qualità dello stack, mentre altri possono fornire tutto ciò che è mostrato nella Figura 1.

- Se hai familiarità con i servizi cloud, vai a sezione 3per visualizzare l'equivalente GCP
- Se desideri solo un riepilogo dei servizi cloud, vai a sezione 2.4

2. Servizi cloud

Il mondo del cloud computing è molto vario. I fornitori di servizi cloud offrono molti servizi su misura per le diverse esigenze dei clienti. Potresti aver sentito parlare di termini come IaaS, PaaS, SaaS, FaaS, KaaS, ecc. con tutte le lettere dell'alfabeto seguite da "aaS". Nonostante la strana convenzione di denominazione, formano un insieme di servizi di provider di servizi cloud. Premetto che ci sono 3 principali offerte "as a service" (as a Service) che quasi sempre i fornitori di servizi cloud forniscono.

Questi sono IaaS, PaaS e SaaS, che stanno rispettivamente per Infrastructure as a Service, Platform as a Service e Software as a Service. È importante visualizzare i servizi cloud come livelli di servizio. Ciò significa che mentre sali o scendi da un livello all'altro, tu, come cliente, stai attraversando varie opzioni di servizio che vengono aggiunte o rimosse dall'offerta principale. È meglio pensare a questo come a una piramide, come mostrato nella Figura 2.
GCP: suddivisione dello stack di elaborazione di Google Cloud Platform

Figura 2: Piramide AaS | Immagine tratta da Officina Rubino

2.1 Infrastruttura come servizio (IaaS)

Questo è il livello più basso che un provider di servizi cloud può offrire e include un provider cloud che fornisce l'infrastruttura nuda, inclusi middleware, cavi di rete, processori, GPU, RAM, storage esterno, server e immagini del sistema operativo di base, ad esempio Debian Linux, CentOS, Windows, ecc.

Se ordini un'offerta da un fornitore di servizi cloud IaaS, questo è ciò che dovresti aspettarti di ottenere. Spetta a te, come cliente, assemblare queste parti per gestire la tua attività. L'entità di ciò con cui dovrai lavorare può variare da fornitore a fornitore, ma in genere ottieni solo l'hardware e il sistema operativo e il resto dipende da te. Esempi di IaaS sono AWS Elastic Compute, Microsoft Azure e GCE.

Ad alcune persone potrebbe non piacere il fatto di dover installare le immagini del sistema operativo e gestire la rete, il bilanciamento del carico o preoccuparsi del tipo di processore ideale per il proprio carico di lavoro. È qui che saliamo sulla piramide verso PaaS.

2.2 Piattaforma distribuita come servizio (PaaS)

PaaS include solo un fornitore di servizi cloud che offre una piattaforma specifica su cui gli utenti possono creare applicazioni. È un'astrazione su IaaS, il che significa che il fornitore di servizi cloud si prende cura di tutti i dettagli dei tipi di CPU, memoria, RAM, archiviazione, rete, ecc. Come mostrato nella Figura 2, tu come cliente hai poco controllo sull'effettivo piattaforma perché il provider gestisce tutti i dettagli dell'infrastruttura per te. Richiedi la piattaforma scelta e costruisci il progetto su di essa. Un esempio di PaaS è Heroku.

Per alcuni, questo potrebbe essere un livello troppo alto, dal momento che non vuole necessariamente costruire il progetto sulla piattaforma specificata, ma necessita piuttosto di un insieme di servizi direttamente dal fornitore di servizi cloud. È qui che entra in gioco SaaS.

2.3 Software come servizio (SaaS)

SaaS è il servizio più comune fornito dai fornitori di servizi cloud. Sono destinati agli utenti finali e sono disponibili principalmente tramite siti Web come Gmail, Google Docs, Dropbox, ecc. Per quanto riguarda Google Cloud, esistono diverse offerte al di fuori del loro stack di elaborazione che sono SaaS. Questi includono Data Studio, Big Query, ecc.

2.4 Sintesi dei servizi cloud

costituenti di
IaaS
PaaS
SaaS

Cosa stai ricevendo
Ottieni l'infrastruttura e paghi di conseguenza. La libertà di utilizzare o installare qualsiasi software, sistema operativo o loro combinazione.
Qui ottieni ciò che chiedi. Software, hardware, sistema operativo, ambiente web. Ottieni una piattaforma pronta per l'uso e paghi di conseguenza.
Qui non devi preoccuparti di nulla. Ti viene fornito un pacchetto preinstallato personalizzato in base alle tue esigenze e devi solo pagare di conseguenza.

Valore
Livello base di informatica
Il migliore IaaS
Si tratta essenzialmente di un pacchetto completo di servizi.

Difficoltà tecniche
Conoscenze tecniche richieste
Viene fornita una configurazione di base, ma è comunque richiesta la conoscenza del dominio.
Non c'è bisogno di preoccuparsi dei dettagli tecnici. Il provider SaaS fornisce tutto.

Con cosa funziona
Macchine virtuali, archiviazione, server, rete, bilanciamento del carico, ecc.
Runtime (come java runtime), database (come mySQL, Oracle), server web (come Tomcat, ecc.)
Applicazioni come servizi di posta elettronica (Gmail, Yahoo mail, ecc.), siti di interazione sociale (Facebook, ecc.)

Grafico di popolarità
Popolare tra sviluppatori altamente qualificati, ricercatori che richiedono personalizzazioni per soddisfare le loro esigenze o aree di ricerca
Più popolare tra gli sviluppatori in quanto possono concentrarsi sullo sviluppo delle loro applicazioni o script. Non devono preoccuparsi di caricare il traffico o gestire il server, ecc.
Più popolare tra i consumatori generici o le aziende che utilizzano software come e-mail, file sharing, social network, in quanto non devono preoccuparsi dei dettagli tecnici.

Figura 3: riepilogo delle principali offerte cloud | Cortesia dell'immagine Amir al Blog Speciale

3. Pacchetto informatico Google Cloud Platform

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

3.1 Google Compute Engine (GCE) - IaaS

GCP: suddivisione dello stack di elaborazione 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, allocare risorse di CPU e memoria, scegliere il tipo di archiviazione come SSD o HDD e la quantità di memoria. È quasi come costruire il proprio computer/workstation e prendersi cura di tutti i dettagli di come funziona.

In GCE, puoi scegliere tra micro istanze con processori a 0,3 core e 1 GB di RAM fino a mostri a 96 core con oltre 300 GB di RAM. Puoi anche creare macchine virtuali di dimensioni personalizzate per i tuoi carichi di lavoro. Per coloro che sono interessati, queste sono macchine virtuali che puoi costruire.

Tipi di macchine | Documentazione di Compute Engine | Google Cloud

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

GCP: suddivisione dello stack di elaborazione di Google Cloud Platform

Figura 5: icona di Google Kubernetes Engine (GKE).

GKE è un'offerta di elaborazione unica di GCP che è un'astrazione rispetto a Compute Engine. Più in generale, GKE può essere classificato come Container as a Service (CaaS), a volte 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 ha familiarità con i contenitori, i contenitori aiutano a modularizzare servizi/applicazioni, quindi contenitori diversi possono contenere servizi diversi, ad esempio un contenitore può ospitare l'interfaccia dell'applicazione Web e un altro può contenere il suo back-end. Kubernetes automatizza, coordina, gestisce e distribuisce i tuoi container. Maggiori informazioni qui.

Motore Google Kubernetes | GoogleNuvola

3.3 Google App Engine (GAE) - (PaaS)

GCP: suddivisione dello stack di elaborazione di Google Cloud Platform

Figura 6: icona di Google App Engine (GAE).

Come accennato nella sezione 2.2, PaaS si colloca al di sopra di IaaS e, nel caso di GCP, può anche essere visto come una proposta al di sopra di GKE. GAE è un Google PaaS specializzato e, come meglio si descrivono, "porta il tuo codice, al resto pensiamo noi".

Ciò garantisce che i clienti che utilizzano GAE non debbano occuparsi di hardware/middleware sottostante e possano già disporre di una piattaforma preconfigurata pronta per l'uso; tutto ciò che devono fare è fornire il codice necessario per eseguirlo.

GAE gestisce automaticamente il ridimensionamento per soddisfare il carico e la domanda degli utenti, il che significa che se il tuo sito di fiori raggiunge improvvisamente un picco perché si avvicina il giorno di San Valentino, GAE gestirà il ridimensionamento dell'infrastruttura sottostante per soddisfare la domanda e garantire che il tuo sito Web non diminuisca a causa dell'aumento della domanda . Ciò significa che paghi esattamente per le risorse di cui la tua applicazione ha bisogno al momento.

GAE utilizza Kubernetes o la sua versione integrata per gestire tutto questo, quindi non devi preoccuparti. GAE è più adatto per le aziende che non sono interessate all'infrastruttura sottostante e si preoccupano solo di rendere la loro applicazione accessibile nel miglior modo possibile.

A mio parere, GAE è il miglior punto di partenza se sei uno sviluppatore con una grande idea ma non vuoi occuparti del lavoro di configurazione dei server, bilanciamento del carico e tutti gli altri lavori che richiedono tempo devops/SRE. Nel tempo, potresti provare GKE e GCE, ma questa è solo la mia opinione.

Disclaimer: AppEngine viene utilizzato per le app Web, non per le app mobili.

Per la revisione: App Engine: crea backend web e mobile scalabili in qualsiasi lingua | Google Cloud

3.4 Funzioni Google Cloud - (FaaS)

GCP: suddivisione dello stack di elaborazione di Google Cloud Platform

Figura 7: Icona Google Cloud Functions (GCF).

Spero che tu abbia notato una tendenza analizzando le proposte precedenti. Più in alto sali nella scala GCP Computing, meno devi preoccuparti della tecnologia sottostante. Questa piramide culmina nella più piccola unità di calcolo possibile, la funzione, come mostrato nella Sezione 1.

GCF è un'offerta GCP relativamente nuova che è ancora in versione beta (al momento della stesura di questo documento). Le funzioni cloud consentono a determinate funzioni scritte da uno sviluppatore di essere attivate da un evento.

Sono guidati dagli eventi e sono al centro della parola d'ordine "serverless", che significa che non conoscono i server. Le funzioni cloud sono molto semplici e hanno molti usi diversi che richiedono un pensiero basato sugli eventi. Ad esempio, ogni volta che un nuovo utente si registra, è possibile attivare una funzione cloud per avvisare gli sviluppatori.

In una fabbrica, quando un determinato sensore raggiunge un determinato valore, può attivare una funzione cloud che elabora alcune informazioni o avvisa il personale di manutenzione, ecc.

Funzioni cloud - Elaborazione server basata su eventi | Google Cloud

conclusione

In questo articolo, abbiamo parlato delle diverse offerte cloud come IaaS, PaaS, ecc. e di come lo stack di Google Compute implementa questi diversi livelli. Abbiamo visto che i livelli di astrazione quando si passa da una categoria di servizi a un'altra, come da IaaS a Paas, richiedono una minore conoscenza del sottostante.

Per l'azienda, ciò fornisce una flessibilità critica che non solo soddisfa i suoi obiettivi operativi, ma soddisfa anche altre aree chiave come sicurezza e costi. Riassumendo:

Calcola motore - consente di creare la propria macchina virtuale allocando determinate risorse hardware, come RAM, processore, memoria. È anche abbastanza pratico e di basso livello.

Motore Kubernetes è un passo avanti rispetto a Compute Engine, che ti consente di utilizzare Kubernetes e container per gestire la tua applicazione, permettendoti di ridimensionarla secondo necessità.

Motore dell'app è un passo avanti rispetto a Kubernetes Engine, che ti consente di concentrarti solo sul tuo codice, mentre Google fornisce tutti i requisiti della piattaforma sottostante.

Funzioni cloud è l'apice della piramide computazionale, che consente di scrivere una semplice funzione che, una volta eseguita, utilizza l'intera infrastruttura sottostante per calcolare e restituire un risultato.

Grazie!

Twitter: @martinomburajr

Fonte: habr.com

Aggiungi un commento