O documento introduz o Habitat, um framework para automatizar o ciclo de vida de aplicações. Ele descreve como o Habitat empacota, implanta e gerencia aplicações de forma segura e automatizada em diferentes ambientes, desde data centers tradicionais até microserviços em containers. Também explica como o supervisor do Habitat orquestra atualizações de aplicações e coordena serviços distribuídos.
7. Globalcode – Open4education
Coisas que o Docker não responde sozinho…
Minha aplicação está rodando?
Como eu monitoro minha aplicação?
Como eu faço deploy?
Como eu atualizo minha aplicação?
De preferência, sem downtime!
Como eu configure minha aplicação?
Como eu resolvo dependências?
Como sei se a aplicação está pronta para receber
tráfego?
Onde eu posso rodar minha aplicação?
Como eu escalono minha aplicação?
8. Globalcode – Open4education
Piece of cake! (ou não…)
Orquestração
Mesos
Docker Swarm
Kubernetes
Configuração & descoberta em run-time
Etcd
Consul
Zookeeper
Gestão de mudança
Chef
Puppet
Ansible
9. Globalcode – Open4education
Habitat
Definição “oficial”
Application automation that
enables modern application
teams to build, deploy, and
manage any application in
any environment - from
traditional data-centers to
containerized microservices.
www.habitat.sh
10. Globalcode – Open4education
Docker vs. Habitat
Docker
# Build an Image
$ docker build -t foo/helloworld .
# Run an Image
$ docker run foo/helloworld
Habitat
# Build an Image
$ hab build helloworld
# Run an Image
$ hab start foo/helloworld
11. Globalcode – Open4education
O que o Habitat faz
● Descreve como
construir o
software
● Resolução de
dependências
● Relaciona o que é
“configurável” na
aplicação
● Descoberta de
serviços
● Auto-organizado em
topologias
● Descoberta inter-
serviços via binding
(“DI para serviços”)
● Sem ponto único de
falha
BUILD DEPLOY MANAGE
● Configuração em run-
time criptografada e
autenticada
● Atualização
automática, segura e
atômica
● Atualizações
dinâmicas de
topologia
14. Globalcode – Open4education
Como funciona o Habitat
LEADER /
FOLLOWERS
STAND ALONE
Topologias Estratégias de
Atualização
Aplicações em Execução
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
“ALL AT
ONCE”
ARTIFACT DEPOT
SERVICE
SUPERVISOR
18. Globalcode – Open4education
Habitat supervisor
Permite que você execute uma aplicação…
Nativamente, no
hardware
(bare metal)
Em uma VM ou
em uma instância
na nuvem
Em um container
(Docker, Mesos,
etc.)
19. Globalcode – Open4education
Habitat supervisor
Gerenciador de processo
Carrega e monitora pacotes (aplicações)
Recebe e implementa mudanças na configuração
Executa os serviços
20. Globalcode – Open4education
Habitat supervisor
Serviço
Pacote Habitat rodando sob um supervisor
O mais simples – 1 supervisor rodando 1 serviço
SERVICE
SUPERVISOR
VM
22. Globalcode – Open4education
Habitat supervisor
Serviço
Pacote Habitat rodando sob um supervisor
O mais simples – 1 supervisor rodando 1 serviço
Acima de um serviço, precisa de um anel (“ring”) de
supervisores
35. Globalcode – Open4education
Habitat supervisor
Supervisor trata as atualizações de pacotes
Detecta quando uma nova versão está disponível no depósito
Faz deploy de acordo com estratégia de atualização
36. Globalcode – Open4education
Habitat supervisor
Estratégias de atualização do Supervisor
All at once
Atualiza todos os nós ao mesmo tempo
Rollout
Atualiza um nó por vez
38. Globalcode – Open4education
Habitat + Containers
● Os formatos de container recriam o
modelo tradicional de Infraestrutura e
aplicações.
● Limitado ao abstrair os aspectos de Build +
Run aspects das aplicações
● Habitat cria os containers partindo dos
aplicativos para baixo
● SO leve, pequeno incluso
● Supervisor embutido para gerenciamento
da aplicação
Libraries
Operating System
Application
Application &
Libraries
Application Libraries
OS
39. Globalcode – Open4education
Application Centric Containers
● Provê uma “DSL” para definer o ciclo
de vida de build da aplicação
● Ciclo de vida de execução definido
junto com o de build
● Containers são criados com base em
artefatos, dependências declaradas e
ciclo de vida de execução
● Containers recebem um supervisor
embutido para cuidar das
preocupações da aplicação:
o Configuration
o Service Discovery
o Clustering Topologies
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
CONTAINE
R
EXPORTS
CONTAINER
FORMATS
40. Globalcode – Open4education
Habitat + Container Orchestrators
● Desenvolva pacotes
reutilizáveis de
aplicação
● Exponha
configurações
ajustáveis
● Exporte para sua
plataforma predileta
de container
● Implante sua
aplicação num
formato escalável e
ciente da topologia
BUILD DEPLOY MANAGE
● Orquestre e
automatize suas
mudanças de
configuração