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.

Verdades que não querem te contar sobre Docker

  • 1.
    C l ou 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.
    2 Luis Armando -@labianchin Bruno Tavares - @bltavares
  • 3.
    AGENDA • O queé o Docker? • Como ele tem facilitado a entrega na nuvem • As verdades que não querem te contar... • Perguntas 3
  • 4.
    O QUE ÉDOCKER? 4
  • 5.
    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
  • 6.
    E NO QUEO DOCKER FACILITA? 6
  • 7.
    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
  • 8.
    VAMOS COMEÇAR A FALARUMAS VERDADES? 8
  • 9.
    COMO "DOCKERIZAR" UMA APLICAÇÃO? Sua aplicaçãoprovavelmente vai precisar de mudanças. Sera que ela esta preparada? 9
  • 10.
    COMO "DOCKERIZAR"? 10 • Aaplicaçã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?
  • 11.
    COMO UTILIZAR DOCKER NO PIPELINE? Gerarartefatos reproduzíveis é muito importante para um bom processo de entrega. Como eu integro com o Docker? 11
  • 12.
    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?
  • 13.
    COMO INTEGRAR PROCESSOS DEPENDENTES? Cada processoroda em um container. Como eu coloco processos para rodar em conjunto? 13
  • 14.
    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?
  • 15.
    COMO LIDAR COM PERSISTÊNCIADE ARQUIVOS? Containers são descartáveis. Como lidar com arquivos de forma persistente? 15
  • 16.
    PERSISTÊNCIA DE ARQUIVOS 16 •Os arquivos do containers podem ser descartados? • Como gerencio arquivos permanentes? • Onde persistir esses arquivos?
  • 17.
    COMO DEPLOYAR UMA IMAGEM? Agoraque temos uma imagem, precisamos executa-las. 17
  • 18.
    DEPLOYMENT 18 • Como configuraro servidor do Docker? • Posso continuar usando o meu Configuration Manager? • Qual distro recomendada? • Como implementar meu próprio PaaS?
  • 19.
    COMO DEPLOYAR EM VÁRIOS SERVIDORES? Seestivermos escalando horizontalmente, quais são os desafios? 19
  • 20.
    MÚLTIPLOS SERVIDORES 20 • Comoabstraio 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?
  • 21.
    E É SEGURO? Aplicaçõespodem ser comprometidas por diversos motivos. Como containers mitigam os problemas? 21
  • 22.
    SEGURANÇA 22 • Quão isoladossão os processos? • Quão difícil é escalar privilégios? • Como aplicar patches de segurança? • Como auditar containers?
  • 23.
    ESTA MADURO? A comunidadeé forte e tem resolvido vários problemas que estamos discutindo. Será que devo começar a usar? 23
  • 24.
    MATURIDADE 24 • Tenho umprocesso que consegue acompanhar as mudanças do ecosistema? • As mudanças tem sido retro-compatíveis?
  • 25.
    "Pode usar queé massa" - Tavares, Bruno 25
  • 26.
  • 27.
  • 28.
    FUTURO 28 • Acompanhar oque 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.