O App Engine é categorizado como um PaaS (Platform as a Service) que faz com que o deploy de suas aplicações sejam executados de forma simples. Já o Cloud Datastore é um banco NoSQL e NoOps totalmente administrado que pode ser utilizado com o App Engine.

Google App Engine

O Google App Engine é uma das opções de recursos de máquinas para rodar suas aplicações e uma plataforma para construir aplicações web de forma escalável, assim como seus serviços.

Com o Google App Engine você faz o deploy da aplicação com um simples comando e ele toma conta de todos os detalhes que envolvem este deploy. Imagine um bug fix: o App Engine inicia uma nova versão do programa e para as antigas quando você subir uma nova versão.

Pico de acesso? O Google App Engine vai automaticamente criar aplicações para você assim como desligá-las quando você tiver poucos acessos.

Não existem Load Balancers para ser configurados, patches instalados. Aqui o objetivo é focar no seu código e respectiva aplicação, e a plataforma vai criar do resto (NoOps lembra?). Ela vai cuidar do hardware, rede, load balancer, monitoramento e escalabilidade necessárias para manter seu projeto rodando. Atualmente você pode utilizar modelos em Java, Python, PHP e Go ou criar os seus runtimes.

Existem grandes empresas que rodam utilizando o App Engine, como por exemplo o Snapchat. “O App Engine nos possibilita focar no desenvolvimento da aplicação. Nós não teríamos chegado até aqui sem o suporte que o App Engine nos deu”, disse Bobby Murphy

Imaginem a complexidade para tratar a infraestutura e o custo de equipe para um software como utilizando o IaaS. Este é só um exemplo de como o NoOps pode transformar a realidade de empresas e de uma startup.

Atualmente existem duas formas de se trabalhar com o App Engine chamadas de Standard e Flexible. Vamos estudá-las a seguir.

App Engine Standard Environment

Estes containers estarão rodando na infraestrutura do Google, fora do Compute Engine. Neste formato existem runtimes pré definidas já disponibilizadas para utilização com Java , Python, PHP e Go.

Uma das vantagens de utilizar este modelo é a sua habilidade em escalar rapidamente. O próprio Google App Engine monitora sua app e o seu tráfego e vai ligar e desligar instâncias conforme a necessidade.

O Google App Engine inicia runtimes em millisegundos, o que torna possível que a aplicação seja “desligada” quando você não tem usuários, entrando no free-tier de custo zero. Existem SDKs para cada uma das linguagens suportadas e é possível rodar este SDK localmente, assim como existem ferramentas de deploy para novas versões de aplicação.

Como este modelo faz com que o Google App Engine rode em ambientes em sandboxes, existem certas premissas que sua aplicação deve respeitar. Algumas delas são limitações de softwares que você pode instalar, versionamento de idiomas e o fato de não poder escrever no file system. A autenticação com os sandboxes pode ser feita utilizando-se Google Accounts ou contas em seus domínios.

Cada projeto tem um ambiente de Google App Engine e as aplicações neste ambiente podem ser divididas em serviços, onde cada serviço pode ser atualizado de forma separada e cada serviço pode rodar em um ou mais containers.

Podemos versionar serviços e rodar versões diferentes simultaneamente especificando a porcentegem de distribuição de requisições (A/B testing).

Dentro do Google App Engine podemos integrar facilmente com outros serviços como o Memcache, Chron ou de busca com o Cloud Data Store.

App Engine Flexible Environment

Como o próprio nome diz, aqui temos a flexibilidade. O Google entrega esta flexibilidade através de containers Docker onde você pode configurar exatamente o que precisa para sua aplicação.

Existem alguns containers já pré-configurados que o Google disponibiliza como Java 8 e Python. Vamos dizer que você queira desenvolver o software usando C# é possível configurar um container que utilize as bibliotecas necessárias. Lembrando que suas aplicações ainda serão publicadas em um modelo NoOps que toma conta de toda a escalabilidade, monitoramento e por aí vai.

O deploy é feito de forma ligeiramente diferente do standart. Os containers Docker rodam no Compute Engine, ou seja, são criadas máquinas virtuais e estas serão cobradas no modelo do CE. Os containers distribuídos pelo Google tem a mesma configuração dos serviços do standart, incluindo também as mesmas SKDs.

Caso sua aplicação utilize padrões orientados a serviço, é possível rodar os dois modos simultaneamente de acordo com a necessidade de seus serviços.

Google Cloud Endpoints

Um assunto que também vamos falar rapidamente aqui é o GCE. Com este serviço você pode criar APIs seguindo o padrão REST e assim serão documentados exatamente como são os do Google. Através de anotações no código você possibilita algo como o Swagger.

Estes endpoints também simplificam a integração com autenticação OAuth 2 em seus próprios serviços. Atualmente eles podem ser consumidos por serviços que foram desenvolvidos em Java e Python, assim como em aplicações iOS, Android e Web.

Google Cloud Datastore

No SQL altamente escalável para suas aplicações, administrado pelo Google e que é ideal para salvar dados de suas aplicações que rodam no Google App Engine. Ele é schemaless e utiliza o conceito de entidades e propriedades com seus respectivos valores.

Você pode salvar estas entidades da forma que desejar, sem se preocupar com o schema do banco de dados. Existe a possibilidade de conectar ferramentas de desenvolvimento para simular este db localmente.

Como todo serviço NoOps, você não precisa se preocupar com configuração pois ele vai escalar automaticamente e salvar os dados em zonas múltiplas. Transações ACID, garantindo o estado dos dados entre os containers e free-tier que para os pequenos que não gera custo e integra nativamente com App Engine. Existem ainda APIs para você integrar em suas aplicações.

LAB

Este vai ser bem legal! Vamos usar o AppEngine para rodar uma aplicação chamada Bookshelf. Esta aplicação usa o Google Cloud Datastore para armazenar dados e pode ser inserida no modelo standard do App Engine. Vamos clonar um repositório e fazer o deploy da aplicação, como em um caso real. Ele está disponível neste link.

Já conhece o NOC 24/7? Saiba como a primeira operação cloud com I.A. pode ajudar a sua empresa!

 


Conteúdos que você pode gostar também:

Não haverá software sem o uso da nuvem

Não haverá software sem o uso da nuvem: Até 2020, empresas que não utilizam computação em Nuvem serão tão raras quanto…

2021 deve marcar grande momento da computação em nuvem

2021 deve marcar grande momento da computação em nuvem: O conceito de computação em nuvem é discutido no mercado de…

Como DevOps vai revolucionar o mercado de Softwares!

Como DevOps vai revolucionar o mercado de Softwares: A palavra DevOps é um amálgama das palavras desenvolvedor e…