35
VAGRANT & DOCKER Ou carregue seus ambientes no bolso com Vagrant e Docker [email protected]

Vagrant & Docker: carregue seus ambientes no bolso

Embed Size (px)

DESCRIPTION

Uma apresentação sobre Vagrant, Docker, e como estas ferramentas podem ser usadas para a criação de ambientes de fácil reprodução.

Citation preview

Page 1: Vagrant & Docker: carregue seus ambientes no bolso

VAGRANT &DOCKER

Ou carregue seus ambientes no bolso com Vagrant e [email protected]

Page 2: Vagrant & Docker: carregue seus ambientes no bolso

Primeiro, o bode na sala:

Page 3: Vagrant & Docker: carregue seus ambientes no bolso

DOKKU

Page 4: Vagrant & Docker: carregue seus ambientes no bolso

Servidor dokkuScripts dokkuDeployment dokkuSugestões dokku?

Page 5: Vagrant & Docker: carregue seus ambientes no bolso

voltaremos aokku ao dokku mais tarde

Page 6: Vagrant & Docker: carregue seus ambientes no bolso
Page 7: Vagrant & Docker: carregue seus ambientes no bolso

Ambientes:a) reprodutíveis

b) portáveis

Page 8: Vagrant & Docker: carregue seus ambientes no bolso

like so (demo)

Page 9: Vagrant & Docker: carregue seus ambientes no bolso

olhando por baixo dos panos...

Page 10: Vagrant & Docker: carregue seus ambientes no bolso

ANATOMIA DE UM ARQUIVO VAGRANT(SIM, ISSO É RUBY :)):

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Configurando a imagem (Vagrant) de base para a VM config.vm.box = "cbumgard/nodejs"

# Configurando o redirecionamento de portas config.vm.network "forwarded_port", guest: 1948, host: 1948

# Preparando a VM, usando shell config.vm.provision "shell", inline: "cd /vagrant;npm install", privileged: "false"

# Configuração (desativada) de um IP fixo para acesso do host à máquina # config.vm.network "private_network", ip: "192.168.33.10"

# Configuração (desativada) de uma pasta compartilhada entre o host e a VM # config.vm.synced_folder "../data", "/vagrant_data"end

Page 11: Vagrant & Docker: carregue seus ambientes no bolso

sim, o fluxo se resume a:$ git clone my-repo$ vagrant up

Page 12: Vagrant & Docker: carregue seus ambientes no bolso

Ok, mas e se suas aplicações fossem portáteis?

Page 13: Vagrant & Docker: carregue seus ambientes no bolso
Page 14: Vagrant & Docker: carregue seus ambientes no bolso

PROBLEMÃO DE LOGÍSTICA ATÉ 1950:Como transportar e cobrar por cargas tão diferentes entre

si?

Page 15: Vagrant & Docker: carregue seus ambientes no bolso

A SOLUÇÃO:

Page 16: Vagrant & Docker: carregue seus ambientes no bolso

PROBLEMÃO DE DEVOPS ATÉ 2013:Como deployar e promover aplicações tão diferentes entre

si?

Page 17: Vagrant & Docker: carregue seus ambientes no bolso

A SOLUÇÃO:

Page 18: Vagrant & Docker: carregue seus ambientes no bolso

UM EXEMPLO COM MONGODB$ docker run --name exemplo-TDC -d mongo$ docker run -it --link exemplo-TDC:mongo \ --rm mongo sh -c 'exec mongo \ "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"'$ show dbs

Page 19: Vagrant & Docker: carregue seus ambientes no bolso

CONCEITOS:Dockerfile: descreve uma imagemImagem: base (binários) para um containerContainer: unidade de execução

Page 20: Vagrant & Docker: carregue seus ambientes no bolso

POR QUE UM DEV GOSTA DISSO?Portabilidade + Reprodutibilidade

Ei, não dependo de burocratas todo o tempo!

Page 21: Vagrant & Docker: carregue seus ambientes no bolso

POR QUE UM DEVOPS GOSTA DISSO?Automação + Reprodutibilidade

Ei, é menos trabalho chato!

Page 22: Vagrant & Docker: carregue seus ambientes no bolso

POR QUE UM ADMIN GOSTA DISSO?Ei, é menos trabalho!

Page 23: Vagrant & Docker: carregue seus ambientes no bolso

POR QUE UM INFRA MANAGER GOSTADISSO?

Ei, é uma melhor densidade computacional!Ei, posso gastar menos!

Page 24: Vagrant & Docker: carregue seus ambientes no bolso

MAS ESPEREM,TEM MAIS!

Page 25: Vagrant & Docker: carregue seus ambientes no bolso

Docker + Heroku

Dokku

Page 26: Vagrant & Docker: carregue seus ambientes no bolso

Docker + Vagrant

Prod-like na sua máquina

Page 27: Vagrant & Docker: carregue seus ambientes no bolso

DOCKER-BASEDPROMOTIONS

Build: docker pushDeploy: docker pull

Page 28: Vagrant & Docker: carregue seus ambientes no bolso

DOCKER EXTRASMesoSphereKubernetesOpenShiftFlynnDeisFig

Page 29: Vagrant & Docker: carregue seus ambientes no bolso

Momento holy sh#t

Page 30: Vagrant & Docker: carregue seus ambientes no bolso
Page 31: Vagrant & Docker: carregue seus ambientes no bolso

Q&A

Page 32: Vagrant & Docker: carregue seus ambientes no bolso

O INCRÉDULO: OK, MAS QUAIS SÃO OSPROBLEMAS COM O DOCKER?

Page 33: Vagrant & Docker: carregue seus ambientes no bolso

1. Alto no hype cycle2. Preocupações sobre segurança e estabilidade3. Rampa de equipe4. Use cases parciais

Page 34: Vagrant & Docker: carregue seus ambientes no bolso

O EXPERIENTE: TÁ, MAS E PORQUE EUNÃO POSSO USAR SÓ PUPPET & AFINS?

Poder, pode, mas não vai ser a mesma coisa:a) menor reprodutibilidade e b) menor densidade potencial

Page 35: Vagrant & Docker: carregue seus ambientes no bolso

O EMPOLGADO: LEGAL, LEGAL, MUITOLEGAL! ONDE EU ASSINO?!?

1. 2. 3.

Crie seu próprio sandboxOuça a própria DockerEntre na IASA/GUCloud (nudge nudge)