July 2018

My day at Google Cloud OnBoard

On the 12th of March 2018, I had the pleasure of participating in the Cloud OnBoard event, which is a free and introductory training for Google Cloud Platform (GCP), in London. The event was created for IT Managers, System Engineers and Operations professionals, Developers, Solution Architects and business leaders searching for Cloud solutions.

Why Google Cloud?

There are a few reasons to consider Google:

  • Google has been contributing significantly to the open source world throughout the years, namely:
    • Google Container Engine, Kubernetes, which is now open source.
    • TensorFlow, an open source framework for machine learning.
    • Apache Beam, which works as a model of portable, unifying and extensible ETL, that allows batch processing and streaming.
    • Some strong contributions on Node.js.
    • More than 2000 contributions in open source projects.
  • Currently, most of my tasks as a consultant are undertaken in a well-known bank, and it is public knowledge that this institution is linked to Google.
  • Other big companies and start-ups use GCP, such as Snapchat, Revolut, Philips, Ocado, BNP, etc.

During this training, I discovered a few more reasons to consider Google:

  • Google cares about the environment:
    • It has the first data centres certified to ISO 14001
    • It is 100% carbon neutral and has used renewable energy since 2017.
  • Payments are processed by the second, not by the minute.
  • Huge discounts exist for bigger commitments or 24/7 use of Google.
  • You can customise machines if the standard ones do not meet your needs.
  • It is possible to escalate up and down right to zero (this is automatically managed, based on requests or the amount of data).
  • Multiple safety layers from HTTPS to storage (not even Google can access data: the client has a master key through their password).
  • Google also creates hardware. As of right now, it has TPUs (supposedly, more hardware development is expected in the roadmap).
  • The long-term goal is to change the virtualization to a No-Ops (no server)

About the Cloud OnBoard event: The event discusses the main technologies available in GCP, from development to analysis.

Computing

App Engine

I remember that when GCP was launched, App Engine was one of the main products, even though most people did not really understand the concept. Essentially, I see it as a PaaS to develop apps in which Node.js, Java, Ruby, C#, Python and PHP are supported by the product from scratch. Some interesting functionalities are:

  • It is possible to get the app and deploy on-premise, for example, by using a Docker container or Kubernetes.
  • A control version of the app is available. For example, it is possible to use load balancing with a version for requests from Europe and another version for requests from the USA.
  • GCP automatically manages priorities based on requests (which may be defined by region). This functionality was shown in the training, by using Apache Benchmark. However, in my opinion, response was a little slow, maybe because it was such a small panel. Nevertheless, it proved its “scalability” both up and down to zero in a multi-region context, by using load balancing to alternate between versions of the app.
  • It is easy to integrate an app developed in App Engine with other GCP products, such as databases, dataflows, monitoring, etc.
  • In addition, Google provides a mobile app that allows you to manage GCP if, at some point, you cannot access your computer.

Computer Engine

This is part of what the GCP offers on virtual machines and is similar to Amazon EC2.

In this event, it was revealed that the acquisition of Al start-up DeepMind in 2014, for $500m, helped reduce the operation costs of Google Data Centres, to the point where they broke even.

Kubernetes Engine

Previously known as Google Container Engine, the name changed to Kubernetes when Google decided to make it open source. For those familiar with Docker, it is a well-known engine that allows deployment, management and scalability. Since it is a Google product, GCP is probably the best place to use Kubernetes on the Cloud.

Networking

Load Balancing

This is a normal functionality for any Cloud provider. The only reason I listed it here is because this product is used by Google services (Google Search, Gmail, Google Maps, Youtube…). If your website or app has times where it receives large numbers of requests, GCP does not need prior notice to be able to escalate automatically. Obviously, this also depends on the internally chosen architecture for the app.

Storage and Databases

Cloud Storage

It has a storage model similar to Google Drive, Dropbox, Box, but it is easier to integrate with other GCP apps. In this product, an item (PDF, DOC, MP3…) is unchangeable and easily scalable. This offer is very similar to Amazon’s S3.

Cloud SQL

Basically, this is MySQL prepared by Google to be scalable and with high performance. At the time of the event, PostgreSQL was only available in a beta version, but now it is widely available.

Cloud Spanner

Essentially, this is a database that escalates horizontally and is strongly consistent with relatable data (it would be interesting if Cloud Spanner were open source, but it still would not be guaranteed to have access to its full content, since it is necessary to have an exquisite infrastructure and to use the True Time API – see below). It is probably the dream database to support:

  • Transactions (globally consistent)
  • Automatic replications
  • SQL (Standard ANSI 2011 with add-ons)
  • Scalable
  • High availability.

This database puts into perspective one of the most well-known theorems in computer science: Brewer’s theorem or the CAP theorem. This theorem says that any distribution system is not free from network failures, therefore it is theoretically impossible to ensure, simultaneously, three requirements in a database: consistency, availability and partition tolerance.

How did Google manage something theoretically impossible? Google data centres use a special API, called TrueTime, which is Google’s global synchronization watch. However, a big part comes from the exquisite infrastructure Google has. For those who would like to know more, you can read the papers here and here.

Big Table

A widely known NoSQL database, since it is used by Google Services such as Google Search, Gmail, Google Maps, Google Analytics… Even though the NoSQL database is not open source, there is a very similar one, HBase.

Big Data

DataFlow

A service used to transform and enrich data in stream and batch modes that works as an ETL tool. The main functionality of DataFlow is Apache Beam support, which gives the ability to develop pipelines (by using SDKs in Java and/or Python) on-premise and easily change to GCP with DataFlow. 

Dataproc

Google’s take on Apache Spark and Apache Hadoop and provides other tools from the Hadoop ecosystem, such as Hive. GCP uses open source code as its base, but performs a few alterations to be able to connect to some of its other products, such as Cloud Storage.

Pub/Sub

The GCP service for streaming focused on events. Its equivalent would be Apache Kafka, if you are searching for an on-premise solution.

Artificial Intelligence

TensorFlow

GCP has several machine learning services, and the majority use an open source framework, TensorFlow.

Similarly to Kubenetes and Apache Beam, you can use TensorFlow on-premise and, when you feel comfortable, you can migrate to a CGP. Furthermore, it is possible to use GCP’s APIs, which already have models trained for detecting items in an image, translating text, speech, extracting video metadata, etc.

Lastly, there follows a comparison of Services in GCP, AWS and 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 LatinoMy day at Google Cloud OnBoard
read more

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
read more

Inteligência Artificial: o Futuro é Agora

De há alguns anos para cá, a Inteligência Artificial tem estado a ganhar tração. Uma nova onda de plataformas que obtêm a máxima performance usando a última geração de processadores estão a obter resultados muito positivos. Mas em que consiste esta disciplina e que usos concretos advêm daqui?

Ana PaneiroInteligência Artificial: o Futuro é Agora
read more

Artificial Intelligence: The Future is now

It’s not exactly breaking news that the concept of Artificial Intelligence (AI) has been gaining some ground. A new wave of platforms that achieve maximum performance using the last generation of processors are obtaining really positive results. However, the question still stands: what defines this subject and what practical uses does it offer?

Ana PaneiroArtificial Intelligence: The Future is now
read more

Xpand IT opens new office in the USA

Lisbon, Viana do Castelo, Porto, Braga, London … and now, San Francisco. This is Xpand IT’s sixth office, a move that represents an investment in a city outside Europe, looking to respond to the quick growth that the product area has been experiencing all over the world, but particularly in the USA.

Ana PaneiroXpand IT opens new office in the USA
read more

Xpand IT abre novo escritório nos EUA

Lisboa, Viana do Castelo, Porto, Braga, Londres e, agora, São Francisco. Este é o sexto escritório da Xpand IT, que decidiu apostar numa cidade fora do espaço europeu, e que pretende dar resposta ao rápido crescimento que a área de produto tem registado um pouco por todo o mundo, mas em particular nos Estados Unidos.

Ana PaneiroXpand IT abre novo escritório nos EUA
read more

Welcome to Tableau Prep!

According to a Harvard Business Review article from 2017, people spend 80% of their time prepping data and only 20% analysing it. Tableau acknowledged that problem and came up with a simple solution: Tableau Prep.

Ana PaneiroWelcome to Tableau Prep!
read more

Bem vindos ao Tableau Prep!

Segundo um estudo da Harvard Business Review, de 2017, cerca de 80% do tempo dos data analysts é passado a tentar preparar os dados e apenas cerca de 20% é passado a analisá-los, efetivamente. A Tableau compreendeu que esse era um problema real e acabou por desenvolver uma solução simples: o Tableau Prep.

Ana PaneiroBem vindos ao Tableau Prep!
read more

Big Data: the state of the art

Xpand IT cannot define the state of the art of Big Data without reflecting upon the huge annual increase in the adoption of Big Data technologies, from which we highlight the Confluent and Cloudera platforms.

Nuno BarretoBig Data: the state of the art
read more

Big Data: O estado da arte

Para a Xpand IT não é possível definir o estado da arte de Big Data sem antes refletir sobre a enorme evolução que, anualmente, verificamos na adoção de tecnologias Big Data, das quais destacamos as plataformas Confluent e Cloudera.

Nuno BarretoBig Data: O estado da arte
read more