Wellington Silva, DevOps da Global Fashion Group, palestrou sobre "Vantagens e resultados de containers e VMs para o e-commerce", no DevCommerce Conference 2016.
O DevCommerce Conference 2016 aconteceu nos dias 06 e 07 de junho de 2016, no Hotel Tivoli em São Paulo-SP http://devcommerce2016.imasters.com.br/
10. ▫ Escolher datacenter
▫ Contratar link de internet
▫ Contratar links de voz
▫ Comprar e configurar roteadores
Máquinas Físicas
11. ▫ Escolher datacenter
▫ Contratar link de internet
▫ Contratar links de voz
▫ Comprar e configurar roteadores
▫ Comprar e configurar servidores
Máquinas Físicas
12. ▫ Escolher datacenter
▫ Contratar link de internet
▫ Contratar links de voz
▫ Comprar e configurar roteadores
▫ Comprar e configurar servidores
▫ Aguardar terceiros provisionar e
fazer as instalações.
Máquinas Físicas
13. Máquinas Físicas
▫ Escolher datacenter
▫ Contratar link de internet
▫ Contratar links de voz
▫ Comprar e configurar roteadores
▫ Comprar e configurar servidores
▫ Aguardar terceiros provisionar e
fazer as instalações.
▫ Botar para rodar
19. Máquinas Físicas
▫ Monitorar custos
▫ Monitorar funcionamento
▫ Monitorar utilização
▫ Escalabilidade lenta
▫ Aplicações monolíticas
▫ Caso de falhas tinha que ir no
datacenter
24. ▫ Escolher tipo de cloud
(IAAS/PAAS)
▫ Escolher provedor de Cloud
Máquinas
Virtuais
25. ▫ Escolher tipo de cloud
(IAAS/PAAS)
▫ Escolher provedor de Cloud
▫ Contratar os serviços do provedor
Máquinas
Virtuais
26. ▫ Escolher tipo de cloud
(IAAS/PAAS)
▫ Escolher provedor de Cloud
▫ Contratar os serviços do provedor
▫ Provisionar e configurar via painel
de controle ou API
Máquinas
Virtuais
27. ▫ Escolher tipo de cloud
(IAAS/PAAS)
▫ Escolher provedor de Cloud
▫ Contratar os serviços do provedor
▫ Provisionar e configurar via painel
de controle ou API
▫ Faz o deploy da aplicação
Máquinas
Virtuais
28. Máquinas
Virtuais
▫ Escolher tipo de cloud
(IAAS/PAAS)
▫ Escolher provedor de Cloud
▫ Contratar os serviços do provedor
▫ Provisionar e configurar via painel
de controle ou API
▫ Faz o deploy da aplicação
▫ Bota pra rodar
29. IAAS - Infrastructure As A Service
Aplicação
Dados
Runtime
Middleware
Sistema Operacional
Virtualização
Servidor
Armazenamento
Rede
● Cliente
● Fornecedor
Legenda
30. PAAS - Platform As A Service
Aplicação
Dados
Runtime
Middleware
Sistema Operacional
Virtualização
Servidor
Armazenamento
Rede
● Cliente
● Fornecedor
Legenda
45. ● Isolamento no nível de
sistema operacional
● Isolamento no nível de
máquina
Máquinas Virtuais Contêineres
46. ● Isolamento no nível de
sistema operacional
● Aplicações são
processos no Host
● Isolamento no nível de
máquina
● Aplicações usam o
kernel do guest
Máquinas Virtuais Contêineres
47. ● Isolamento no nível de
sistema operacional
● Aplicações são
processos no Host
● Provisionamento rápido
● Isolamento no nível de
máquina
● Aplicações usam o
kernel do guest
● Provisionamento lento
Máquinas Virtuais Contêineres
48. Máquinas Virtuais Contêineres
● Isolamento no nível de
máquina
● Aplicações usam o
kernel do guest
● Provisionamento lento
● KVM, Xen, OracleVM,
VMware, VirtualBox
● Isolamento no nível de
sistema operacional
● Aplicações são
processos no Host
● Provisionamento rápido
● LXC, Docker, rkt,
kubernetes
49. Máquinas Virtuais Contêineres
● Isolamento no nível de
máquina
● Aplicações usam o
kernel do guest
● Provisionamento lento
● KVM, Xen, OracleVM,
VMware, VirtualBox
● Rodam outros SOs guest
● Isolamento no nível de
sistema operacional
● Aplicações são
processos no Host
● Provisionamento rápido
● LXC, Docker, rkt,
kubernetes
● Somente Linux*
62. Quais os focos em montar ambientes
para a esteira de entrega?
▫ Que o código seja integrado de
maneira contínua (CI)
Esteira de
entrega
63. Quais os focos em montar ambientes
para a esteira de entrega?
▫ Que o código seja integrado de
maneira contínua (CI)
▫ Testes sejam feitos
Esteira de
entrega
64. Esteira de
entrega
Quais os focos em montar ambientes
para a esteira de entrega?
▫ Que o código seja integrado de
maneira contínua (CI)
▫ Testes sejam feitos
▫ Um artefato "deployável" seja
gerado
65. Esteira de
entrega
Quais os focos em montar ambientes
para a esteira de entrega?
▫ Que o código seja integrado de
maneira contínua (CI)
▫ Testes sejam feitos
▫ Um artefato "deployável" seja
gerado
67. Esteira de
entrega
▫ Com contêineres não é necessário
instalar todas as dependências
para que suas aplicações sejam
testadas e empacotadas.
68. Esteira de
entrega
▫ Com contêineres não é necessário
instalar todas as dependências
para que suas aplicações sejam
testadas e empacotadas.
▫ Contêinerize comandos:
docker run --rm --volume
"$PWD":/app composer/composer
install
69. E o ambiente de produção? Uso
Contêineres ou VMs?
70. Quais os focos em montar um
ambiente de produção?
Em produção
71. Quais os focos em montar um
ambiente de produção?
▫ Alta Disponibilidade
Em produção
72. Quais os focos em montar um
ambiente de produção?
▫ Alta Disponibilidade
▫ Escalabilidade
Em produção
73. Quais os focos em montar um
ambiente de produção?
▫ Alta Disponibilidade
▫ Escalabilidade
▫ Redundâncias
Em produção
74. ▫ VMs ainda são mais maduras out-
of the-box
Em produção
75. ▫ VMs ainda são mais maduras out-
of the-box
▫ Contêineres sobre VMs overhead
de 5-8% (bit.ly/research-ibm)
Em produção
76. ▫ VMs ainda são mais maduras out-
of the-box
▫ Contêineres sobre VMs overhead
de 5-8% (bit.ly/research-ibm)
▫ Contêineres exigem muitos
cuidados.
Em produção
77. Em produção
▫ VMs ainda são mais maduras out-
of the-box
▫ Contêineres sobre VMs overhead
de 5-8% (bit.ly/research-ibm)
▫ Contêineres exigem muitos
cuidados.
▫ Em bare metal temos uma
otimização de recursos usando
contêineres
82. ▫ Migre apenas um serviço por vez
▫ Começe por serviços pequenos.
Ex. APIs, load balancers.
▫ Sistema de Deploy diferenciado
Contêineres em
produção
83. ▫ Migre apenas um serviço por vez
▫ Começe por serviços pequenos.
Ex. APIs, load balancers.
▫ Sistema de Deploy diferenciado
▫ Construção de nova imagem
Contêineres em
produção
84. Contêineres em
produção
▫ Migre apenas um serviço por vez
▫ Começe por serviços pequenos.
Ex. APIs, load balancers.
▫ Sistema de Deploy diferenciado
▫ Construção de nova imagem
▫ Push da imagem para
repositório
85. Contêineres em
produção
▫ Migre apenas um serviço por vez
▫ Começe por serviços pequenos.
Ex. APIs, load balancers.
▫ Sistema de Deploy diferenciado
▫ Construção de nova imagem
▫ Push da imagem para
repositório
▫ Imagem é testada no CI server
89. Contêineres em
produção
▫ Serviço de registry rodando
▫ Registry de Alta disponibilidade
▫ Na mesma network do CI
▫ Storage de alta performance
90. Contêineres em
produção
▫ Serviço de registry rodando
▫ Registry de Alta disponibilidade
▫ Na mesma network do CI
▫ Storage de alta performance
▫ Gerencia de hosts
91. Contêineres em
produção
▫ Serviço de registry rodando
▫ Registry de Alta disponibilidade
▫ Na mesma network do CI
▫ Storage de alta performance
▫ Gerencia de hosts
▫ Gerencia de configurações
92. Contêineres em
produção
▫ Serviço de registry rodando
▫ Registry de Alta disponibilidade
▫ Na mesma network do CI
▫ Storage de alta performance
▫ Gerencia de hosts
▫ Gerencia de configurações
▫ Cluster e Envs
93. Contêineres em
produção
▫ Serviço de registry rodando
▫ Registry de Alta disponibilidade
▫ Na mesma network do CI
▫ Storage de alta performance
▫ Gerencia de hosts
▫ Gerencia de configurações
▫ Cluster e Envs
▫ Chaves e senhas
97. Contêineres em
produção
▫ Health checks melhores que em
VMs
▫ Possibilidade de RollBack
▫ Logs centralizados e indexados
▫ Métricas diferentes,
monitoramento diferenciado
104. ▫ Gerencia de Orquestração
▫ Como organizar o cluster
Contêineres em
produção
105. ▫ Gerencia de Orquestração
▫ Como organizar o cluster
▫ Organizar contêineres nos
clusters
Contêineres em
produção
106. ▫ Gerencia de Orquestração
▫ Como organizar o cluster
▫ Organizar contêineres nos
clusters
▫ Definir estratégia de schedule
Contêineres em
produção
107. ▫ Gerencia de Orquestração
▫ Como organizar o cluster
▫ Organizar contêineres nos
clusters
▫ Definir estratégia de schedule
▫ Definir como balancear o
tráfego entre os contêineres
Contêineres em
produção
108. ▫ Gerencia de Orquestração
▫ Como organizar o cluster
▫ Organizar contêineres nos
clusters
▫ Definir estratégia de schedule
▫ Definir como balancear o
tráfego entre os contêineres
▫ Configurar service discovery
Contêineres em
produção