I servizi di Google Cloud Platform, spiegati bene
Lanciato nel 2011, Google Cloud Platform (GCP) è arrivato un po’ in ritardo rispetto al leader di mercato Amazon Web Services (AWS), il suo concorrente più diretto nella dura sfida alle piattaforme cloud aziendali. Ma Google non ha mai avuto una grande esperienza nei servizi IT per le grandi aziende ed ecco perché ha trascorso diversi anni a “studiare” la materia prima di offrire al mercato la propria proposta.
Piuttosto che essere un clone di AWS, GCP è diventata una piattaforma che fornisce servizi su vasta scala, tra cui intelligenza artificiale e machine learning. I vantaggi di GCP includono oggi prezzi interessanti grazie a uno sconto sull’utilizzo prolungato, una rete molto più veloce che collega i suoi datacenter, la migrazione in tempo reale di macchine virtuali e una varietà di backup ridondanti per assicurare un’archiviazione sempre disponibile. Dove GCP deve invece migliorare è nella ricchezza di strumenti e componenti aggiuntivi di cui fa invece uso AWS nell’affrontare ogni singolo caso d’uso.
GCP ha tre servizi principali: Google App Engine, Google Compute Engine e Google Kubernetes Engine:
- App Engine è una piattaforma platform-as-a-service (PaaS) con la quale potete distribuire il vostro codice e lasciate che la piattaforma faccia tutto il resto. App Engine crea automaticamente più istanze per gestire il volume maggiore di un’app a elevato utilizzo.
- Compute Engine è una piattaforma IaaS (Infrastructure-as-a-service) che fornisce macchine virtuali altamente personalizzabili con la possibilità di distribuire il codice direttamente o tramite container. Sebbene richieda un maggior grado di configurazione e personalizzazione, Compute Engine offre maggiore flessibilità e costi inferiori ad App Engine.
- Kubernetes Engine consente di utilizzare cluster Kubernetes completamente gestiti per distribuire, gestire e orchestrare container su larga scala.
Di seguito riportiamo un elenco degli usi più comuni del cloud e dei componenti di Google Cloud Platform necessari per essi.
I servizi di GCP per devops, sviluppo software e test
Lo sviluppo e la distribuzione delle applicazioni sono i casi di utilizzo più importanti per Google Cloud Platform. Si inizia con Google App Engine (GAE), una piattaforma gestita che gestisce tutte le integrazioni della piattaforma in modo che gli sviluppatori debbano preoccuparsi solo del loro codice. GAE supporta Node.js, Java, Ruby, C #, Go, Python e PHP. Strumenti di devops molto popolari come Chef, Puppet, Ansible, Salt, Docker, Consul e Swarm sono completamente integrati con GCP e consentono lo sviluppo sia per il cloud, sia per ambienti on-premises.
La tecnologia dei container ha preso il via da Docker, che AWS supporta, ma Google è il creatore di Kubernetes, una piattaforma di orchestrazione dei container che ha “travolto” offerte simili come Docker Swarm diventando una realtà di riferimento in questo ambito, al punto che anche Microsoft e Amazon la supportano rispettivamente su Azure e AWS. È raro che l’industria si trovi d’accordo su uno standard, un servizio o una piattaforma, ma di fatto dietro a Kubernetes, oltre ad Amazon e Microsoft, ci sono tutti i big del settore come Oracle, Pivotal e VMware.
Al centro di tutto ciò c’è il Google Kubernetes Engine (GKE), un ambiente Kubernetes gestito che offre funzionalità aggiuntive come autoscale, autorepair e aggiornamento automatico. A differenza del suo concorrente AWS, Amazon EC2 Container Service (ECS), GKE esegue certificati open source Kubernetes in modo che le competenze necessarie siano utilizzabili in qualsiasi scenario di Kubernetes, mentre Amazon ECS è “chiuso” all’interno della piattaforma AWS.
Si può comunque scegliere di utilizzare l’engine per container Docker, soprattutto se si ha già un investimento considerevole nel codice Docker. Per coloro che scelgono Docker al posto di Kubernetes, è disponibile Google Container Builder (GCB). Oltre al pieno supporto per Docker, GCB offre agli sviluppatori anche la possibilità di creare e testare il loro codice localmente.
I servizi di GCP per gli analytics
Gli analytics sono stati aspetti fondamentali per Google Cloud Platform sin dall’inizio. In ambito big data si inizia ad esempio con BigQuery, un data warehouse che può essere utilizzato gratuitamente fino a 10 GB di storage e fino e 1 TB di dati analizzati al mese. Può essere sfruttato da Google Apps Script, Google Sheets o qualsiasi linguaggio di programmazione che possa funzionare con la sua API REST o le sue librerie client.
Cloud Dataflow viene invece utilizzato per creare pipeline di dati con l’elaborazione dei dati in tempo reale (streaming) o storica (batch) insieme all’elaborazione ETL. Cloud Dataflow gestisce inoltre enormi set di dati (anche nell’ordine di multi-Petabyte) e sostanzialmente ha sostituito MapReduce non più supportato da Google, che ne incoraggia gli utenti a passare a Cloud Dataflow fornendo assistenza per il processo di migrazione.
Cloud Dataproc è il servizio cloud di Google per l’esecuzione di cluster Hadoop e Spark, che possono essere integrati con GCP ed essere ridimensionati in tempo reale. Dataproc consente anche l’utilizzo di macchine virtuali personalizzate. Per preparare i dati ai fini dell’elaborazione, Google offre Cloud Dataprep, servizio serverless che rileva schemi e ripristina dati errati o segnala i dati mancanti in una tabella strutturata.
Infine, se è necessario spostare una grande quantità di dati nel cloud e i il processo di upload sarebbe proibitivo a livello di tempo e costi, Google offre Google Transfer Appliance, che si inserisce in un rack di datacenter standard da 19 pollici proprio come un server. Il dispositivo 2U ha una capacità di 100 TB e il dispositivo 4U ha una capacità di 480 TB.
I servizi di GCP per l’intelligenza artificiale e il machine learning
Google Cloud AI è la base per i servizi di machine learning, con modelli pre-formati (API di apprendimento automatico) e un servizio gestito per sviluppatori e clienti più avanzati per creare i propri modelli su misura tramite Google Cloud Machine Learning Engine. Il Machine Learning Engine è integrato con altri prodotti della piattaforma Google Cloud Data come Google Cloud Storage, Google Cloud Dataflow e Google Cloud Datalab per i modelli di formazione.
Inoltre, Google ha recentemente annunciato Cloud AutoML, un nuovo set di servizi per aiutare i clienti con esperienza limitata in ambito machine learning a formare i propri modelli personalizzati. Il servizio di apprendimento automatico basato sulla rete neurale si basa sulla libreria TensorFlow di Google. Dialogflow si occupa invece dello sviluppo di applicazioni interattive end-to-end per interfacce utente utilizzate su siti web, applicazioni mobile, piattaforme di messaggistica e dispositivi Internet of Things (IoT). Consente agli sviluppatori di creare chatbot e altre interfacce in grado di conversare in linguaggio naturale con gli utenti.
I servizi di GCP per l’infrastruttura di calcolo
Google ha creato una massiccia infrastruttura di data center progettati per scalabilità e tempi di risposta minimi. Ciò si è tradotto in un’offerta cloud altamente scalabile e in grado di elaborare oltre 100.000 eventi al secondo o gestire operazioni con una dimensione del carico utile dell’evento aggregato totale superiore a 100 MB/sec.
GCP può contare su oltre 100 punti di presenza in 15 regioni globali connessi da reti in fibra ottica dedicate. Con Virtual Private Cloud (VPC) è possibile connettere le proprie risorse GCP o isolarle l’una dall’altra. Attraverso Cloud Delivery Network (CDN) il contenuto viene distribuito attraverso punti di presenza a livello edge e il servizio di Cloud Load Balancing può impedire il sovraccarico di una posizione bilanciando il traffico HTTP(S), TCP/SSL e UDP.
Il Cloud Load Balancing di Google è lo stesso utilizzato dal motore di ricerca che gestisce fino a 1 milione di query al secondo. C’è infine Google Cloud Dedicated Interconnect per il collegamento di cloud privati con GCP; questo servizio fornisce connessioni di livello aziendale a GCP con una capacità di trasmissione da 10 a 80 Gbps.