O meu dia no Google Cloud OnBoard

A 12 de Março de 2018 tive o prazer de participar no evento Cloud OnBoard que é uma formação gratuita introdutória à Google Cloud Platform (GCP) em Londres. Trata-se de um evento criado para IT Managers, System Engineers e Operations professionals, Developers, Solution Architects e líderes de negócio que procurem soluções de cloud.

Porquê a Google Cloud?

Existem algumas razões para considerar o Google:

  • O Google participou com grandes contribuições no mundo open source ao longo dos anos, nomeadamente:
    • O Google Container Engine, Kubernetes, que agora é open-source.
    • TensorFlow uma framework opensource para machine learning.
    • Apache Beam que serve como um modelo de ETL portável, unificador e extensível, que permite fazer batch pocessing e streaming
    • Algumas fortes contribuições no Node.js
    • Mais de 2000 contribuições em projetos opensource.
  • Atualmente a maioria das minhas funções de consultor são exercidas num grande banco a nível mundial e é do conhecimento público que esta instituição está ligada ao Google
  • Outras grandes empresas e startups usam GCP, como o Snapchat, Revolut, Philips, Ocado, BNP, etc.

Ao finalizar este curso, descobri mais razões para considerar o Google:

  • O Google importa-se com o ambiente:
    • São os primeiros data centres a receber a certificação ISO 14001
    • São 100% carbon neutral e usam energia renovável desde 2017
  • O pagamento é feito ao segundo e não ao minuto;
  • Há grandes descontos para compromissos maiores ou uso do Google 24/7;
  • É possível customizar as máquinas se as máquinas standard não satisfizerem as necessidades;
  • É possível escalar para cima e para baixo até ao zero (é gerido automaticamente baseado em pedidos ou quantidade de dados);
  • Camadas de multi-segurança desde HTTPS até ao armazenamento (nem a Google pode aceder aos dados, o cliente tem a master key através da password);
  • Google cria hardware também. Neste momento já possui TPUs (supostamente existe mais desenvolvimento de hardware previsto no roadmap);
  • A ideia a longo prazo é mudar de virtualização para uma infraestrutura No-Ops (sem servidor).

Sobre o evento Cloud On-board: O evento aborda todas as principais tecnologias disponíveis no GCP, desde o desenvolvimento à análise.

Computing

App Engine

Recordo-me que quando o GCP foi lançado, a App Engine era um dos principais produtos, embora a maioria das pessoas não entendesse o conceito. Essencialmente, vejo como um PaaS para desenvolver aplicações em que Node.js, Java, Ruby, C#, Python e PHP são suportadas de raiz pelo produto. Algumas funcionalidades interessantes são:

  • Obtenção da aplicação e fazer deploy on-premises, por exemplo, usando o Docker container ou Kubernetes.
  • Possuir uma versão de controlo da aplicação. Por exemplo, é possível usar o load balancing para os pedidos com origem na Europa para uma versão e para os pedidos com origem nos EUA, para outra versão da aplicação.
  • A automatização de prioridade feita pelo GCP, baseada nos pedidos (que pode ser delineada por regiões). Esta funcionalidade foi demonstrada no curso, utilizando o Apache Benchmark mas para mim, a resposta foi um pouco lenta na altura, talvez por ter sido uma instância pequena. Porém, provou a “scalability” para cima e para baixo até ao zero em contexto multi-regional, usando o load balancing para alternar entre versões da aplicação.
  • A facilidade na integração de uma aplicação desenvolvida no App Engine com outros produtos do GCP, como bases de dados, dataflows, monitorização, etc.
  • Para alem destas funcionalidades, a Google disponibiliza uma app móvel que permite gerir o GCP no caso de o user não conseguir aceder ao computador num determinado momento.

Computer Engine

Consiste na oferta da GCP em maquina virtuais semelhante á Amazon EC2. Neste evento foi revelado que a aquisição em 2014 da startup de AI, DeepMind, por 500M$ ajudou a reduzir os custos de operações dos Data Centres da Google ao ponto de fazer vale o custo da aquisição.

Kubernetes Engine

Previamente era conhecido como Google Container Engine mas o nome alterou para Kubernetes a quando a Google decidiu disponibilizá-lo opensource. Para quem está familiarizado com o Docker, é um engine famoso que permite o deploy, gestão e escalabilidade. Como é um produto Google, GCP é provavelmente o melhor lugar para usar Kubernetes na cloud.

Networking

Load Balancing

Esta é uma funcionalidade banal por qualquer fornecedor de cloud. A única razão pela qual listei aqui é porque este produto supostamente é o mesmo que o que é usado pelos serviços da Google (Google Search, Gmail, Google Maps, Youtube…). Se o seu site ou aplicação tiver momentos onde recebe grandes quantidades de pedidos, o GCP não precisa de pré-aviso por ser capaz de escalar automaticamente, claro que também depende da arquitetura escolhida internamente para a aplicação.

Armazenamento e Bases de Dados

Cloud Storage

É um armazenamento que funciona de forma semelhante ao Google Drive, Dropbox, Box, porém é mais fácil integrar com outras aplicações de GCP. Neste produto, um objeto (PDF, DOC, MP3, …) é imutável e é facilmente escalável. Esta oferta é muito semelhante a oferta da Amazon com o S3.

Cloud SQL

É basicamente o MySQL preparado pelo Google para ser escalável e com alta-performance. Na altura do evento PostgreSQL estava disponível numa versão beta mas atualmente já se encontra completamente disponível.

Cloud Spanner

Essencialmente, é uma base de dados que escala horizontalmente e fortemente consistente com os dados relacionais (era interessante se o Cloud Spanner fosse disponibilizado open-source mas ainda assim não era a garantia de conseguir usufruir no seu todo. Por ser necessário uma excelente  infraestrutura e utilizar a API TrueTime). É provavelmente a base de dados de sonho por suportar:

  • Transações (consistência global);
  • Replicações automáticas
  • SQL (Standard ANSI 2011 com extensões)
  • Escalável
  • Alta Disponibilidade

Esta base de dados coloca em questão um dos teoremas mais famosos da ciência computacional. O teorema de Brewer ou teorema CAP. Este teorema refere que qualquer sistema de distribuição não está isento de fracassos da rede, pelo que é teoricamente impossível garantir simultaneamente três requisitos numa base de dados: consistência, disponibilidade e tolerância de partição.

Como é que o Google atingiu algo que é teoricamente impossível? Os data centres do Google fazem uso de uma API especial, chamada TrueTime que é o relógio da Google de sincronização global mas grande parte deve-se também á excelente infraestrutura que a Google possui.  Para quem pretende saber mais, pode consultar os papers aqui e aqui.

Big Table

É uma base de dados NoSQL  muito conhecida porque é utilizada pelos Google Services, como o Google Search, Gmail, Google Maps, Google Analytics… Mesmo que a base de dados NoSQL não seja opensource existe o HBase que é muito equivalente .

Big Data

DataFlow

É um serviço usado para transformar e enriquecer dados no modo steam e batch, funcionando como uma ferramenta de ETL. A funcionalidade principal do DataFlow é o suporte da Apache Beam em que significa a possibilidade de desenvolver as pipelines (usando SDK’s em Java e/ou Python) on-premises e mudar para GCP com DataFlow facilmente.

Dataproc

É a oferta Google para Apache Spark e Apache Hadoop, e que fornece outras ferramentas do Hadoop ecosystem como por exemplo Hive. GCP usa como base o código opensource mas faz algumas alterações para se conectar com alguns dos seus produtos como por exemplo o Cloud Storage.

Pub/Sub

É um serviço GCP de stream focado em eventos. O seu equivalente seria o Apache Kafka se desejar uma solução on-premises.

Inteligência Artificial

TensorFlow

GCP tem alguns serviços de machine learning e a maioria deles, senão todos, estão a usar a framework opensource de machine learning, TensorFLow. Semelhante ao Kubenetes e Apache Beam, pode usar o TensorFlow on-premises e quando se sentir confortável pode migrar para GCP. Além disso, é possível usufruir de APIs do GCP que já possui modelos treinados para  deteção de objetos numa imagem,  tradução de texto, discurso, extração de metadata de vídeos, etc.

Por último, fica aqui a comparação de Serviços em GCP, AWS e Azure

Google Cloud Platform Amazon Web Services Microsoft Azure
Google Compute Engine Amazon EC2 Azure Virtual Machines
Google App Engine AWS Elastic Beanstalk Azure Cloud Services
Google Kubernetes Engine   . Amazon EC2 Container Service   . Azure Container Service
Google Cloud Bigtable Amazon DynamoDB Azure Cosmos DB
Google BigQuery Amazon Redshift Azure SQL Data Warehouse
Google Cloud Functions AWS Lambda Azure Functions
Google Cloud Datastore Amazon DynamoDB Cosmos DB
Google Storage Amazon S3 Azure Blob Storage
Google Cloud Dataflow AWS Glue / Kinesis / EMR Azure Data Factory / Stream Analytics Data Lake Analytics
Google Cloud Dataproc Amazon EMR Azure HDInsight

Joel Latino

Senior BI & Big Data Consultant, Xpand IT

Joel LatinoO meu dia no Google Cloud OnBoard

Leia mais em

Xpand IT Visionaries

Recomendados

Conheça as novidades, eventos e opinião dos mais reconhecidos experts
do universo de TI, nas áreas de Big Data, Business Intelligence,
Middleware e Mobile.