Agilidade no desenvolvimento de Software com o Google Appengine na Arquitetura do Citywatch.com.br | Morettic

Agilidade no desenvolvimento de Software com o Google Appengine na Arquitetura do Citywatch.com.br

porLuis Augusto Moretto

Agilidade no desenvolvimento de Software com o Google Appengine na Arquitetura do Citywatch.com.br

Visão geral do Google Appengine

O Google Appengine é uma plataforma para criação de aplicações nas nuvens adotada na Arquitetura de Software do Citywatch APP. Tal decisão foi embasada na produtividade, qualidade e agilidade que a plataforma propicia ao desenvolvimento de um projeto inovador como o Citywatch.

Permite a hospedagem de sistemas codificados nas linguagens Java, Phyton e PHP.  Tem alta escalabilidade sem a necessidade de gerenciar infraestruturas de alto tráfego. A plataforma oferece rapidez, confiabilidade, escalabilidade, controle de versão e a robustez da infraestrutura do Google no seu projeto!

Ambiente de Desenvolvimento, Homologação e Produção

A ITIL – Information Tecnology Infrastructure Library recomenda como boa prática em projetos de Tecnologia da Informação e Comunicação que a organização disponha de um ambiente de desenvolvimento, homologação e produção.  Os três ambientes devem ter a mesma configuração para que o processo de desenvolvimento, testes e implantação sejam realizados de forma consistente.

appengine escalonamento

Um cenário comum é a necessidade de se ter máquinas distintas (ou virtualizações) para cada um dos ambientes. Em cada estágio, a equipe de projeto implanta a versão correspondente no ambiente destino.

Isso é extremamente complexo, porque requer o conhecimento específico de cada ambiente e sua infraestrutura. Além disso requer um checklist de todas as alterações realizadas no código fonte do projeto para realizar a implantação.

Eu mesmo já cometi erros porque na hora de colocar em produção esqueci um campo do banco de dados… ou faltou um arquivo… sobrescreveu o arquivo errado…. parecia um dia sem fim.. sentimento de angustia começando a bater, gerente com a pergunta clássica: tá pronto?? 😛 Affz :X !#%%EDITORCONTENT%%amp;

Com a plataforma do Google Appengine é extremamente simples para criar estes três ambientes. Basta alterar as configurações do descritor xml dentro do projeto chamado de appengine-web.xml. A propriedade application é o nome do microserviço que vai rodar na plataforma.

Quando não é possível utilizar a mesma base de dados para realizar os testes e o ambiente de produção, deve-se criar um microserviço para cada ambiente. Caso contrário cada ambiente pode ser administrado como múltiplas versões rodando em paralelo na plataforma.

Escalonando e Clusterizando o Serviço

O escalonamento do microserviço dentro da plataforma do Google Appengine é feita no mesmo arquivo descritor da aplicação e da instância. Existem três opções possíveis para o escalonamento:

  1. Escalonamento automático;
  2. Escalonamento básico e;
  3. Escalonamento manual;

Para cada projeto deve ser avaliado os recursos necessários e configurar a infraestrutura de acordo com os requisitos e atributos da qualidade esperados.Na figura acima especifica-se que a instância do microserviço roda em uma infraestrutura b8, com o número máximo de instâncias concorrentes igual a 100 e o tempo de idle é de 10 minutos.

Para ver como funciona a clusterização e balanceamento de carga veja o exemplo do microserviço do Citywatch, assistindo ao video abaixo:

Faturamento

Para utilizar todos os recursos do Google AppEngine é necessário informar o cartão de crédito vinculado a sua conta.  Em estágio de encubação, as Startups não dispões de muitos recursos financeiros para investir em uma infraestrutura robusta, então o Appengine é uma excelente escolha. Você só paga quando começar a ter escala no seu projeto. E pode escalar sob demanda conforme seu público cresce!

Uma funcionalidade bem interessante do sistema de faturamento da infra é a possibilidade de estabelecer um orçamento máximo diário do serviço na nuvem.  Como exemplo abaixo configurei o projeto para um faturamento máximo diário de $0,25 dólares.

faturamento appengine

Gostou? deixe seu like, cadastre seu email e receba novidades. Até a próxima! Namastê!