• Nenhum resultado encontrado

Orquestrando Docker Containers

N/A
N/A
Protected

Academic year: 2021

Share "Orquestrando Docker Containers"

Copied!
25
0
0

Texto

(1)

Orquestrando Docker Containers

Machine, Swarm e Compose

Roberto G. Hashioka - @rhashioka – 2015-06-10 – São Paulo/SP!

(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)

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)

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)

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)

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)

Exemplo de Dockerfile

---!

FROM ubuntu:14.04!

MAINTAINER Roberto Hashioka ([email protected])!

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)

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)

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)

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)

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)

Docker Machine

(13)

Docker Machine

$ machine create

(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)

Docker Swarm

$ docker run swarm

(16)

Docker Swarm

$ docker run

(17)

Docker Swarm

$ docker run

Batteries included but swappable

(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)

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)

Docker Compose

$ docker-compose

(21)

Docker Compose

$ docker-compose

(22)

A Docker Distributed Application

$ docker

Happy Devs

Ops Flexibility

Web x8 Database x2 Cache x2

(23)

Ecosistema de Gestão de Containers

Infrastructure

Clustering and Scheduling

Service Discovery

(24)

Docker Hub

Promo code: docker-sp-meetup

https://registry.hub.docker.com/plans/micro

@rhashioka

(25)

Obrigado!

Perguntas?

@rhashioka

Referências

Documentos relacionados

O artigo está dividido nos seguintes tópicos: primeiramente, é feita uma aproximação com teorias que nos embasam para discutir essa problemática; em seguida, há

Para que não ocorra um excesso da absorção do medicamento para o sangue, quando você aplicar sulfato de neomicina + bacitracina zíncica em grandes áreas ou queimaduras, o

Clique no link dentro do e-mail para confirmar seu e-mail e liberar sua conta.... Após confirmar seu e-mail irá surgir uma página com seus dados

Na forma de pagamento Pós-Paga ou na hi- pótese de haver a alteração automática da forma de pagamento para Pré-Paga durante o período de Permanência Mínima, no caso de

B) São entidades de atendimento aquelas que, de forma continuada, permanente e planejada, prestam serviços e executam programas e projetos voltados prioritariamente para

• O cérebro contém metade da quantidade total de fosfatidilserina do organismo; • Há decréscimo de fosfatidilserina com o envelhecimento (Cenacchi et al., 1993).. Níveis Teciduais

Baixar Livros Gratis Como fazer amigos e influenciar pessoas Autor Dale Carnegie MOBI

A associação com o complexo maior de histocompatibilidade (CMH) pertencente ao antígeno leucocitário humano (HLA) lócus DRB1 (HLA-DRB1) foi a primeira associação