verdades que não querem te contar sobre docker
TRANSCRIPT
C l o u d C o m p u t i n g
VERDADES QUE NÃO QUEREM TE CONTAR SOBRE DOCKER
Luis Armando e Bruno Tavares
2
Luis Armando - @labianchin
Bruno Tavares - @bltavares
AGENDA
• O que é o Docker?
• Como ele tem facilitado a entrega na nuvem
• As verdades que não querem te contar...
• Perguntas
3
O QUE É DOCKER?
4
O QUE É DOCKER?
5
• Tecnologia recente (2013)
• Baseada em namespaces (isolamento de processos)
• Plataforma com ferramentas de suporte de armazenamento, rede
• Comunidade grande e crescendo sempre
• Esta em Trial no Tech Radar da ThoughtWorks
E NO QUE O DOCKER FACILITA?
6
POR QUE DOCKER?
7
• Todas dependências de uma aplicação dentro de um pacote (imagem)
• Várias aplicações em um mesmo servidor
• Mesma imagem em diferentes servidores e ambientes
• Imagem torna-se um artefato de deployment
• Facilita escalar horizontalmente
• Isolamento de aplicação e dependências de forma barata
VAMOS COMEÇAR A FALAR UMAS VERDADES?
8
COMO "DOCKERIZAR" UMA APLICAÇÃO?Sua aplicação provavelmente vai precisar de mudanças. Sera que ela esta preparada?
9
COMO "DOCKERIZAR"?
10
• A aplicação pode iniciar e parar a qualquer momento?
• Como a aplicação sabe localizar os serviços que ela usa?
• Assume serviços rodando no mesmo servidor?
• Como as dependências são gerenciadas?
• Como arquivos gerados pela aplicação são persistidos?
COMO UTILIZAR DOCKER NO PIPELINE?Gerar artefatos reproduzíveis é muito importante para um bom processo de entrega. Como eu integro com o Docker?
11
DOCKER NO PIPELINE
12
• Seu CI já possui artefatos gerados?
• Como publicar imagens do Docker?
• Posso utilizar um registro publico?
• Como manter o próprio registro?
• Como se integra com outros gerenciadores de artefatos?
COMO INTEGRAR PROCESSOS DEPENDENTES?Cada processo roda em um container. Como eu coloco processos para rodar em conjunto?
13
COMPOSIÇÃO DE CONTAINERS
14
• Como os seus processos interagem?
• Eles se comunicam por rede?
• Eles se comunicam por arquivos intermediarios?
• Como orquestrar containers para desenvolvimento?
• Como orquestrar containers em produção?
COMO LIDAR COM PERSISTÊNCIA DE ARQUIVOS?Containers são descartáveis. Como lidar com arquivos de forma persistente?
15
PERSISTÊNCIA DE ARQUIVOS
16
• Os arquivos do containers podem ser descartados?
• Como gerencio arquivos permanentes?
• Onde persistir esses arquivos?
COMO DEPLOYAR UMA IMAGEM?Agora que temos uma imagem, precisamos executa-las.
17
DEPLOYMENT
18
• Como configurar o servidor do Docker?
• Posso continuar usando o meu Configuration Manager?
• Qual distro recomendada?
• Como implementar meu próprio PaaS?
COMO DEPLOYAR EM VÁRIOS SERVIDORES?Se estivermos escalando horizontalmente, quais são os desafios?
19
MÚLTIPLOS SERVIDORES
20
• Como abstraio a rede entre múltiplos servidores?
• Como faço para containers serem executados no mesmo
servidor?
• Como o sistema escolhe qual servidor executará o
container?
E É SEGURO?Aplicações podem ser comprometidas por diversos motivos. Como containers mitigam os problemas?
21
SEGURANÇA
22
• Quão isolados são os processos?
• Quão difícil é escalar privilégios?
• Como aplicar patches de segurança?
• Como auditar containers?
ESTA MADURO?A comunidade é forte e tem resolvido vários problemas que estamos discutindo. Será que devo começar a usar?
23
MATURIDADE
24
• Tenho um processo que consegue acompanhar as
mudanças do ecosistema?
• As mudanças tem sido retro-compatíveis?
"Pode usar que é massa" - Tavares, Bruno
25
Perguntas?
MUITO OBRIGADO
Luis Bianchin @labianchin
Bruno Tavares @bltavares
FUTURO
27
FUTURO
28
• Acompanhar o que outras empresas tem feito
• New Relic, Spotify, Google, Joyent, Phusion, Iron.io...
• Acompanhe outras tecnologias de containers
• rkt (CoreOs), Snappy (Canonical), systemd-nspawn
• Kubernets, Mesos, Marathon, Flyn, Deis...
• Acompanhe a evolução da plataforma
• Powerstrip, Weave, Flannel, Swarm, Registrator.