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:
Inteligência Artificial e os benefícios do deep learning
Inteligência Artificial e os benefícios do deep learning: Junto com diversas pesquisas e descobertas relacionadas ao…
Infrastructure as a Code: Gerencie nuvens com eficiência
Saiba mais sobre o termo Infrastructure as a Code O termo Infrastructure as a Code (Infraestrutura como Código) tem se…
Como migrar pra cloud computing de forma segura?
Dicas de como migrar para cloud computing com segurança O fato de migrar pra cloud computing nada mais é do que uma…