Microservices e Entrega Contínua numa taxa de 500 Deploys diários
Entrega Contínua com Microservices e 500 Deploys diários
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.
Na palestra "(ARC318) Continuous Delivery at a Rate of 500 Deployments a Day!" realizada no AWS Re:invent em Las Vegas, Elias 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.
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).
Ignazio, Roger (Author)
272 Pages - 05/23/2016 (Publication Date) - Manning Publications (Publisher)
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
(ARC318) Continuous Delivery at a Rate of 500 Deployments a Day! | AWS re:Invent 2014 from Amazon Web Services