Já faz algum tempo que a comunidade ágil e a comunidade de desenvolvimento de software em geral vem falando sobre Entrega Contínua. No entanto, mais recentemente, um novo hype vem surgindo sobre Microserviços (ou microservices) e sobre Containers, Kubernetes, e especialmente Docker.

Microserviços na vida Real

Na palestra “(ARC318) Continuous Delivery at a Rate of 500 Deployments a Day!” realizada no AWS Re:invent em Las VegasElias Torres, fala sobre como um time de 100 desenvolvedores da empresa HubSpot faz deploy 500 vezes por dia com esforço quase zero utilizando arquitetura de microserviços e containers.

Nada melhor do que ver um case real na prática para dar credibilidade e acreditar que essas tendências realmente estão vindo para ficar.

Acompanhe abaixo minhas notas sobre a palestra, e depois veja o vídeo e acompanhe os slides da palestra.

Singularity, é um projeto open-source que a HubSpot criou do zero, que funciona com o Apache Mesos para gerenciar um cluster na AWS que suporta web services, cron jobs, tarefas map/reduce, etc. Eles possuem 843 “sistemas” em produção com essa tecnologia. Leva de 10 a 25 minutos para do commit até a produção.

Além disso, 99% dos deploys não requerem coordenação entre times, o próprio time que desenvolve consegue realizar o deploy.

O sistema de autenticação deles é um micro-service, a página de login é outro, a edição de blog é outro, a rendenização do blog é outro, a barra de navegação é outro, o sistema de contatos é outro, o sistema de relatórios é outro, e o serviço de enviar e-mails é outro.

Apache Mesos

Além do Singularity, a HubSpot usa o Apache Mesos. O Apache Mesos, é um framework open source para gerenciar recursos distribuidos.

Com essas duas tecnologias combinadas, os desenvolvedores não precisam de preocupar em criar máquinas na AWS manualmente nem mesmo via API, o framework abstrai de forma a parecer que tudo roda numa mesma máquina (mesmo que o serviços na realidade estejam distribuídos em diversas máquinas na nuvem).

Desse modo, você configura os serviços que você precisa rodar, e o Mesos toma conta para você para que eles permaneçam no ar, se algo ocorreu ele cuida para que o serviço seja criado e fique disponível novamente, cada serviço tem seu próprio endereço IP e porta.

Ao trabalhar com Microservices, utilize bibliotecas e APIs comuns em todos eles para simplificar a codificação.

Para criar aplicações a HubSpot utiliza a Plataforma e linguagem Java, e para facilitar a criação dos microservices, eles utilizam o DropWizard, que é um outro framework open source para criação de serviços REST leves.

Finalmente, lembre-se de automatizar tudo o que puder, e não faça nada manualmente.

Confira abaixo a palestra da Hubspot no evento AWS re:Invent.

500 Deploys por dia Com Microserviços

Gostou desse case? Conhece mais algum outro legal?

Deixe nos comentários.