Orquestrando Docker Containers: Machine, Swarm e Compose

795 visualizações

Publicada em

Orquestrando Docker containers com Machine, Swarm e Compose
----------------------------------
Orchestrating Docker Containers with Machine, Swarm and Compose
----------------------------------
Apresentação: #5 Docker Sao Paulo Meetup

Publicada em: Tecnologia
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
795
No SlideShare
0
A partir de incorporações
0
Número de incorporações
8
Ações
Compartilhamentos
0
Downloads
40
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Orquestrando Docker Containers: Machine, Swarm e Compose

  1. 1. Orquestrando Docker Containers Machine, Swarm e Compose Roberto G. Hashioka - @rhashioka – 2015-06-10 – São Paulo/SP!
  2. 2. Informações Pessoais •  Roberto Gandolfo Hashioka •  @rogaha (Github) e @rhashioka (Twitter)! •  No Docker em Maio 2013 (Dotcloud)! •  Finanças -> Software Engineer! •  Projeto Atual: Docker Hub/Metrics!
  3. 3. Objetivo da Apresentação •  Explicar o que é o Docker e como usá-lo •  Explicar o paradigma entre dev e ops! •  Explicar como rodar aplicações distribuidas em qualquer ambiente! •  Compartilhar experiências (Silicon Valley)!
  4. 4. Informações dos Projetos •  Projetos no Github •  Docker – (github.com/docker/docker)! •  Docker Machine – (github.com/docker/machine)! •  Docker Swarm – (github.com/docker/swarm)! •  Docker Compose – (github.com/docker/compose)! Aplicações distribuidas com Docker são modularizadas, portáveis e dinâmicas
  5. 5. O que é o Docker Engine? •  Ferramenta que facilita a construção, distribuição e execução de qualquer a plicação em qualquer ambiente (VM, nuvem, servidor fisico, laptop) •  Sua aplicação roda de forma isolada com seus próprios processos, IP e file system, independente do host. Ou seja, dentro de um container •  Construção: empacota sua aplicação numa imagem (docker build)! •  Distribuição: Move a imagem entre diferentes maquinas (docker push/pull)! •  Execução: Execute sua aplicação (docker run)!
  6. 6. Contrução: docker build – Dockerfile •  Receita para criar uma imagem (container) •  Começa de uma base: FROM ubuntu:14.04, fedora:20, debian:jessie! •  Rode comandos: RUN apt-get install –y firefox ssh ! •  Copie seus dados: ADD /app/code /code/! •  Crie scripts de inicialização ou execute arquivos binários: CMD start_firefox .sh, /usr/sbin/sshd –D!
  7. 7. Exemplo de Dockerfile -----------------------------------------------------------------------------------------------------------! FROM ubuntu:14.04! MAINTAINER Roberto Hashioka (roberto@docker.com)! RUN apt-get update && apt-get install -y nginx! RUN echo ’Hello Developers from Sao Paulo' > /usr/share/nginx/html/index.html! EXPOSE 80! ------------------------------------------------------------------------------------------------------------! $ docker build –t rogaha/web .! $ docker run –d –p 80:80 –-name container_web_demo_sp rogaha/web!
  8. 8. Distribuição: docker pull / push •  Transfere sua aplicação dockerzizada de um servidor para outro •  Registry Hub: Repositório central de imagens criadas pela comunidade! •  O objetivo principal do Registry Hub é facilitar a criação de aplicações ! •  Milhares de images foram criadas e são mantidas pela comunidade. Por exemplo: nginx, ubuntu, postgres, redis, node, centos, wordpress, java (htt ps://registry.hub.docker.com/repos/library/)!
  9. 9. Execução: docker run •  Roda as aplicações de forma consistente e confiável •  Elimina os problemas de diferenças entre versionamento das dependências! •  Os containers rodam de forma isolada. Você pode rodar aplicações em De bian, Ubuntu, CentOS na mesmo servidor/laptop! •  Se funciona no seu laptop, irá funcionar no servidor! •  RESOLVE grande parte dos problemas entre DEV e OPS!
  10. 10. Estatíticas da comunidade Docker •  > 950 Contribuidores no Github •  > 80.000 Projetos dockerized no Github •  > 140.000 Repositórios no Docker Hub! •  > 48.000 membros no Meetup.com, > 150 cidades, > 50 países! •  > 400.000.000 images do docker baixadas (docker pull)!
  11. 11. Docker Machine: Zero to Docker em minutos Antes • Várias etapas de setup! • Conecta a apenas um host! • Instalação e configuração para aquele host específico! Depois • Um comando de setup! • Provisiona o Docker Engine em qualquer host! • Integrações para criar hosts com o docker nas nuvens !
  12. 12. Docker Machine
  13. 13. Docker Machine $ machine create
  14. 14. Docker Swarm: Otimize recursos, Tolerância a falhas e alta disponibilidade Antes • Sem solução nativa! • Cada Docker Engine é independente entre si! ! Depois • Cluster de Docker Engines como se fosse um só! • Interface única de dev.! • Swarm dimensiona seu app! • Agendamento nativa das app! • Integração com outros agendadores !
  15. 15. Docker Swarm $ docker run swarm
  16. 16. Docker Swarm $ docker run
  17. 17. Docker Swarm $ docker run Batteries included but swappable
  18. 18. Docker Compose: Simplifica Aplicações multi- container Antes • Simples aplicações individuais em containers! • Sem solução nativa para aplicações multi-containers! • Ineficiente: Precisa repetir commandos para cada container! ! Depois • Único arquivo .yml que define sua aplicação inteira! • Rode sua aplicação completa com um único comando! • Atualize facilmente sua aplicação com o arquivo .yml! !
  19. 19. Docker Compose containers: web: build: . command: python app.py ports: - "5000:5000" volumes: - .:/code links: - redis environment: - PYTHONUNBUFFERED=1 redis: image: redis:latest command: redis-server --appendonly yes
  20. 20. Docker Compose $ docker-compose
  21. 21. Docker Compose $ docker-compose
  22. 22. A Docker Distributed Application $ dockerHappy Devs Ops Flexibility Web x8 Cache x2Database x2
  23. 23. Ecosistema de Gestão de Containers Infrastructure Clustering and Scheduling Service Discovery
  24. 24. Docker Hub Promo code: docker-sp-meetup https://registry.hub.docker.com/plans/micro @rhashioka
  25. 25. Obrigado! Perguntas? @rhashioka

×