Já faz algum tempo que a comunidade ágil e a comunidade de desenvolvimento de software em geral vem falando sobre Entrega Contínua, mais recentemente um novo hype vem surgindo sobre Micro-serviços (ou micro-services) e sobre Containers, especialmente Docker.

Na palestra “(ARC318) Continuous Delivery at a Rate of 500 Deployments a Day!” realizada no AWS Re:invent 2014 em Las VegasElias Torres, fala sobre como um time de 100 desenvolvedores do HubSpot que fazem deploy 500 vezes por dia com esforço quase zero utilizando todas essas tecnologias. 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 itens “sistemas” que são entregues em produção com essa tecnologia.

Leva de 10 a 25 minutos para do commit até a produção.

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.

Como eles usam o Apache Mesos com o Singularity,  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 núvem).

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 Micro-services, utilize bibliotecas e API comuns para simplificar a codificação.

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

Para finalizar, lembre-se de automatize tudo o que puder, não faça nada manualmente.

Acompanhe os Slides e o Vídeo

Conteúdo Relacionado

Share This