Desenvolvendo aplicações web com o Google App Engine
Fone: 8h - 17PM

Dextra

Desenvolvendo aplicações web com o Google App Engine – GAE

Por: 24/10/2016

A computação em nuvem é um novo modelo de desenvolvimento e distribuição de aplicações, que vai de encontro com o desejo dos usuários de ter seus dados e informações disponíveis em qualquer lugar. A facilidade de acesso à Internet e a diversificação dos equipamentos conectados à rede, trouxe aos usuários a necessidade de ter seus dados e aplicativos disponíveis em todo lugar, a qualquer momento. A computação em nuvem, ou Cloud Computing, estabelece um modelo de desenvolvimento de aplicações que atendam a estas necessidades.

Esse novo modelo de desenvolvimento tem sido muito explorado devido a sua capacidade de prover recursos baseados em serviços, que trazem mais facilidade e agilidade para o desenvolvimento. Dentro deste modelo, se encaixam diversos tipos de serviços, como armazenamento de dados, fornecimento de conteúdo, mídia, ferramentas de colaboração e comunicação, entre outros. A forma de acesso a estes recursos geralmente é feita por meio do navegador, mas também pode envolver o uso de uma aplicação cliente criada para esta finalidade. Os softwares e os dados são armazenados em servidores remotos, dando ao usuário a sensação de estar consumindo estes recursos localmente, sem ter necessariamente que conhecer detalhes sobre a localização e forma de acesso a eles.

Existem basicamente três modelos de utilização de computação em nuvem, são eles:

  • SaaS (Software as a Service): ou software como um serviço. Neste modelo, os fornecedores do recurso em nuvem disponibilizam o acesso a aplicações completas aos clientes, geralmente cobrando uma taxa de assinatura.
  • IaaS (Infrastructure as a Service): ou infraestrutura como serviço. Neste caso, as empresas fornecedoras disponibilizam infraestrutura física para o serviço em nuvem, como servidores dedicados ou virtuais, segurança por meio de firewalls e até mesmo redes de acesso completas.
  • PaaS (Platform as a Service): ou plataforma como serviço. Aqui, é fornecida uma plataforma para criação de aplicações em nuvem, que fica a disposição do desenvolvedor para criar seu aplicativo. Isso geralmente envolve um conjunto de tecnologias a serem utilizadas para o desenvolvimento, APIs, acesso a banco de dados e um servidor Web. Este é o modelo adotado pelo Google App Engine, um serviço de aplicações em nuvem disponibilizado pelo Google.

 

O Google App Engine (GAE) é uma plataforma de desenvolvimento de aplicações em nuvem criada e disponibilizada pelo Google. Além de muito completa, ela oferece suporte as principais linguagens de programação, dentre elas Python, Java e PHP. Os dados podem ser armazenados na própria plataforma, através do serviço datastore, um repositório de dados NoSQL rápido e escalável. Uma das principais vantagens em desenvolver no GAE e a escalabilidade automática, que permite a alocação e desalocação automática de recursos computacionais, a medida que o número de acessos varia. Um grande benefício trazido por isso é o consumo de recursos bastante otimizado, cujos serviços serão tarifados de acordo com o uso.

A principal vantagem trazida pela escalabilidade automática é não ter que monitorar sua aplicação 100% do tempo, uma vez que mais recursos computacionais serão alocados quando necessário. Este recurso é extremamente útil, pois na maioria dos casos é impossível prever quando teremos um pico de utilização na aplicação, que demanda performance e estabilidade. Outra vantagem trazida por esse modelo é o baixo custo inicial, uma vez que não será preciso investir muito dinheiro enquanto seu portal ou aplicação não tiver muitos acessos.

Uma desvantagem da escalabilidade automática é que sua aplicação pode não estar otimizada, fazendo mais acessos ao repositório de dados do que o necessário, ou até mesmo com rotinas redundantes. Isso significa que, todas as vezes que seu servidor escalar para suprir esta requisição por recurso, você será cobrado por um recurso adicional. Por isso, o GAE permite configurar um limite de escalabilidade, de modo a aumentar seus recursos até um limite máximo previamente estabelecido.

Para começar a desenvolver no Google App Engine, basta criar uma conta e publicar a aplicação, a partir daí qualquer pessoa poderá acessar de qualquer lugar sem nenhum custo.

Existem limites para a utilização gratuita da plataforma:

  • Registrar até 10 aplicações por usuário
  • Cada aplicação pode utilizar até 1GB de armazenamento de dados no Datastore, com limite de 50 mil operações de leitura e escrita por dia
  • 1 GB de tráfego de entrada e saída por dia

 

Existem outros limites, que podem ser consultados na página do Google App Engine, porém estes são os mais significativos. O Google costuma mudar seus limites seguindo tendências de mercado, geralmente aumentando algumas das opções gratuitas.

Quanto a administração, o GAE oferece um console web onde várias operações de gerenciamento das aplicações podem ser realizadas, dentre elas o controle de versões e instâncias, visualização e gerenciamento das tarefas agendadas, entre outros. Através do console também podemos visualizar os dados no Datastore e executar consultas, além de examinar logs de erros das aplicações.

A gestão de log e registro de erros é fundamental para medir a qualidade e a estabilidade de uma aplicação. Neste sentido, o GAE disponibiliza uma ferramenta para monitoramento e registro de operações, cujos logs podem ser registrados e consultados pelo nível de severidade (info, warning, error, critical) e tipo (crash, activity). O Log Viewer também permite criar métricas específicas para cada tipo de log, através das quais podemos criar alertas automáticos para acompanhar e monitorar as operações da aplicação.

Conclusões

A crescente demanda pelo desenvolvimento de software tem exigido entregas cada vez mais ágeis e com alta qualidade, mas muitas vezes nos deparamos com situações que dificultam a entrega efetiva do software – entrada em produção. Dentre estas situações, é comum os casos onde não conseguimos fazer o dimensionamento correto dos servidores de hospedagem e do consumo de banda, que são fundamentais para a performance da maioria das aplicações. Em outros casos, a entrega dos servidores pode levar muito tempo, principalmente em empresas onde o processo de governança de TI é mais rígido e burocrático.

Frente a esse cenário, o GAE surge como uma alternativa para desenvolvimento ágil, onde não precisamos nos preocupar com as características dos servidores, configurações específicas ou com o tempo de entrega da infraestrutura. Isso faz com que o ramp-up do projeto seja muito curto, permitindo realizar vários experimentos em pouco tempo. Essa é uma situação ideal para startups, que precisam validar rapidamente seus produtos e não dispõe de muito capital. Como o GAE escala automaticamente, você tem garantias que sua aplicação estará em pé, mesmo que demande muitas requisições.

Outra facilidade trazida pela plataforma Google App Engine, é a disponibilização de diferentes versões da aplicação. Com isso, resolvemos o problema dos chamados ambientes de desenvolvimento, homologação e produção. Nesse cenário, cada ambiente passa a ser uma versão diferente da aplicação, com endereço de acesso e repositório de dados específico. Também é importante destacar, que em muitos casos os ambientes de homologação e desenvolvimento tem um uso mais controlado e não excede os limites de cota do GAE, de modo que nem serão tarifados.

O console de administração também traz recursos interessantes e de fácil manuseio, permitindo configurar os limites máximos e mínimos de escala, além do monitoramento instantâneo da aplicação, como logs e número de requisições. Os logs de erros podem ser visualizados pelo Log Viewer, que permite filtrar os erros por tipo, criticidade e data, além de permitir a criação de alertas automáticos para situações específicas.

Entre em Contato

Mensagem enviada com sucesso!

Tags

Comentários