101
vagrant ambiente de desenvolvimento virtualizado

Vagrant - ambiente de desenvolvimento virtualizado

Embed Size (px)

DESCRIPTION

Talk apresentada no Tchêlinux - Pelotas (2014) Falando de ambientes de desenvolvimento virtual, apontando as facilitades/vantagens do uso do mesmo, e usando vagrant como ferramenta criar esses ambientes

Citation preview

Page 1: Vagrant - ambiente de desenvolvimento virtualizado

vagrant

ambiente de desenvolvimento virtualizado

Page 2: Vagrant - ambiente de desenvolvimento virtualizado

@krolow

Page 3: Vagrant - ambiente de desenvolvimento virtualizado

ambientes de projetos são complicados

#1

Page 4: Vagrant - ambiente de desenvolvimento virtualizado
Page 5: Vagrant - ambiente de desenvolvimento virtualizado
Page 6: Vagrant - ambiente de desenvolvimento virtualizado

lidar com versões de software é complicado

#2

Page 7: Vagrant - ambiente de desenvolvimento virtualizado

“Esse projeto só roda na versão X do node.js”

Page 8: Vagrant - ambiente de desenvolvimento virtualizado

seu OS de desenvolvimento é diferente do OS de produção

#3

Page 9: Vagrant - ambiente de desenvolvimento virtualizado
Page 10: Vagrant - ambiente de desenvolvimento virtualizado

“Na minha máquina estava funcionando…”

Page 11: Vagrant - ambiente de desenvolvimento virtualizado

compartilhar seu ambiente com outros

#4

Page 12: Vagrant - ambiente de desenvolvimento virtualizado

“Hey, é só seguir esse passo a passo que fiz! Criei até um INSTALL.md!”

Page 13: Vagrant - ambiente de desenvolvimento virtualizado
Page 14: Vagrant - ambiente de desenvolvimento virtualizado

Manutenção

Page 15: Vagrant - ambiente de desenvolvimento virtualizado

Tempo gasto para fazer/manter

Page 16: Vagrant - ambiente de desenvolvimento virtualizado

INSTALL.md para cada OS

Page 17: Vagrant - ambiente de desenvolvimento virtualizado

Go horse install

Page 18: Vagrant - ambiente de desenvolvimento virtualizado

● impossível de repetir/compartilhar● não confiável● não está isolado● processo demanda muito tempo● gera muitas dúvidas

problemas

Page 19: Vagrant - ambiente de desenvolvimento virtualizado

gerenciar, configurar múltiplas aplicações…

consultores… agências web...

Page 20: Vagrant - ambiente de desenvolvimento virtualizado

chega de fatos

#5

Page 21: Vagrant - ambiente de desenvolvimento virtualizado

Virtualizaçãocomo

solução

Page 22: Vagrant - ambiente de desenvolvimento virtualizado

Possibilita prévia instalação de software

Page 23: Vagrant - ambiente de desenvolvimento virtualizado

Instalar OS igual ao de produção

Page 24: Vagrant - ambiente de desenvolvimento virtualizado

Ambiente isolado

Page 25: Vagrant - ambiente de desenvolvimento virtualizado

Compartilhar ambiente

Page 26: Vagrant - ambiente de desenvolvimento virtualizado

Não enxe a sua máquina de “tranqueiras”

Page 27: Vagrant - ambiente de desenvolvimento virtualizado

Novos/Velhos developers podem usar a VM e não perder tempo

Page 28: Vagrant - ambiente de desenvolvimento virtualizado

e temos um campeão

Page 29: Vagrant - ambiente de desenvolvimento virtualizado

nana, nina, não

Page 30: Vagrant - ambiente de desenvolvimento virtualizado

Tamanho do arquivo

Page 31: Vagrant - ambiente de desenvolvimento virtualizado

Como manter atualizado?software é mutável, dependências também são

Page 32: Vagrant - ambiente de desenvolvimento virtualizado

Automatizar a criação

Page 33: Vagrant - ambiente de desenvolvimento virtualizado
Page 34: Vagrant - ambiente de desenvolvimento virtualizado

Uma ferramenta CLI fácil e portátil de configurar e reproduzir ambientes

Page 35: Vagrant - ambiente de desenvolvimento virtualizado

“Trocando em miúdos”

Page 36: Vagrant - ambiente de desenvolvimento virtualizado

nomenclaturas básicas● Boxes● Providers● Provisions

Page 37: Vagrant - ambiente de desenvolvimento virtualizado

vagrant características● Simples command line (CLI)● Baixa box e cria virtual machine● Provem interface para configurar

propriedades da maquina virtual(network, sync files, propriedades)

● Assim como para configurar e instalar softwares na VM

● com uma DSL ruby para configuração

Page 38: Vagrant - ambiente de desenvolvimento virtualizado

Comandos básicos

Page 39: Vagrant - ambiente de desenvolvimento virtualizado
Page 40: Vagrant - ambiente de desenvolvimento virtualizado

criar e utilizar...

Page 41: Vagrant - ambiente de desenvolvimento virtualizado
Page 42: Vagrant - ambiente de desenvolvimento virtualizado

vagrant init cria um arquivo de configuração Vagrantfile com uma simples DSL

Page 43: Vagrant - ambiente de desenvolvimento virtualizado

boxes...

Page 44: Vagrant - ambiente de desenvolvimento virtualizado
Page 45: Vagrant - ambiente de desenvolvimento virtualizado

Possibilita alterações nas propriedades da VM

Page 46: Vagrant - ambiente de desenvolvimento virtualizado

providers...

Page 47: Vagrant - ambiente de desenvolvimento virtualizado
Page 48: Vagrant - ambiente de desenvolvimento virtualizado

Possibilita alteração constante nos softwares/configs utilizadas

Page 49: Vagrant - ambiente de desenvolvimento virtualizado

provisions...

Page 50: Vagrant - ambiente de desenvolvimento virtualizado
Page 51: Vagrant - ambiente de desenvolvimento virtualizado

Não altera ambiente do desenvolvedor

Page 52: Vagrant - ambiente de desenvolvimento virtualizado
Page 53: Vagrant - ambiente de desenvolvimento virtualizado

mesmo browser! mesmo editor!

Page 54: Vagrant - ambiente de desenvolvimento virtualizado

Opensource e multiplataforma

Page 55: Vagrant - ambiente de desenvolvimento virtualizado
Page 56: Vagrant - ambiente de desenvolvimento virtualizado

Pronto para ser posto num repositório GIT e compartilhado

Page 57: Vagrant - ambiente de desenvolvimento virtualizado
Page 58: Vagrant - ambiente de desenvolvimento virtualizado

Problemas resolvidos!● ambiente isolado● mantível/atulizável● reaproveitável/reutilizável● compartilhável (arquivo simples)● automatizável (via CLI)

Page 59: Vagrant - ambiente de desenvolvimento virtualizado

Vagrant workflow

Page 60: Vagrant - ambiente de desenvolvimento virtualizado

1. Criar e configurar repositório com Vagrant

Page 61: Vagrant - ambiente de desenvolvimento virtualizado

2. Developers clonam repositório e vagrant up

Page 62: Vagrant - ambiente de desenvolvimento virtualizado

3. Developers continuam utilizando suas tools

networking, file sync

Page 63: Vagrant - ambiente de desenvolvimento virtualizado

4. Possibilita manter versões de software/depêndencias e configurações atualizadas

provision

Page 64: Vagrant - ambiente de desenvolvimento virtualizado

Ainda por cima sai com uma automatização e teste da configuração do OS para produção

Page 65: Vagrant - ambiente de desenvolvimento virtualizado

Um olhar mais profundo

Page 66: Vagrant - ambiente de desenvolvimento virtualizado

networking

Page 67: Vagrant - ambiente de desenvolvimento virtualizado

networking● NAT (compartilhar portas)● HOST-only (compartilhamento privado)● Bridge (compartilhamento público)

Page 68: Vagrant - ambiente de desenvolvimento virtualizado
Page 69: Vagrant - ambiente de desenvolvimento virtualizado

Como resultado podemos continuar utilizando o mesmo browser

Page 70: Vagrant - ambiente de desenvolvimento virtualizado

files sync

Page 71: Vagrant - ambiente de desenvolvimento virtualizado

files sync● NFS (Network file system)● RSync● SMB● VirutalBox● Outros via plugin

Page 72: Vagrant - ambiente de desenvolvimento virtualizado
Page 73: Vagrant - ambiente de desenvolvimento virtualizado

Como resultado podemos continuar utilizando o mesmo editor

Page 74: Vagrant - ambiente de desenvolvimento virtualizado

provisions

Page 75: Vagrant - ambiente de desenvolvimento virtualizado

É o cara que vai instalar software e fazer as configurações para você

Page 76: Vagrant - ambiente de desenvolvimento virtualizado

provisions● file (replicar files não mantem atualizado)● shell● Ansiable● Cfengine● Chef (solo e client)● Puppet (apply e agent)● Docker● Salt

Page 77: Vagrant - ambiente de desenvolvimento virtualizado
Page 78: Vagrant - ambiente de desenvolvimento virtualizado

Importante aprender um ou mais para usar em conjunto com o Vagrant

Page 79: Vagrant - ambiente de desenvolvimento virtualizado

uma olhadinha no puppet...

Page 80: Vagrant - ambiente de desenvolvimento virtualizado
Page 81: Vagrant - ambiente de desenvolvimento virtualizado

aprendendo puppet...

https://puppetlabs.com/learn

Page 82: Vagrant - ambiente de desenvolvimento virtualizado

providers

Page 83: Vagrant - ambiente de desenvolvimento virtualizado

Gerenciador da maquina virtual...

Page 84: Vagrant - ambiente de desenvolvimento virtualizado

por padrão VirutalBox

Page 85: Vagrant - ambiente de desenvolvimento virtualizado

outros podem serem instalados por plugins...

Page 86: Vagrant - ambiente de desenvolvimento virtualizado

providers● VirtualBox● VMWare● Docker● Hyper-v● lxc● aws● Digital Ocean...

Page 87: Vagrant - ambiente de desenvolvimento virtualizado

vagrant up por provider

Page 88: Vagrant - ambiente de desenvolvimento virtualizado
Page 89: Vagrant - ambiente de desenvolvimento virtualizado

múltiplas máquinas

Page 90: Vagrant - ambiente de desenvolvimento virtualizado

ambientes mais complexos demandam mais de uma máquina e vagrant provém suporte ao mesmo!

Page 91: Vagrant - ambiente de desenvolvimento virtualizado
Page 92: Vagrant - ambiente de desenvolvimento virtualizado

E o network faz com que as duas se falem!

Page 93: Vagrant - ambiente de desenvolvimento virtualizado

plugins

Page 94: Vagrant - ambiente de desenvolvimento virtualizado

Novos comandos, provisions, providers, handlers...

Page 95: Vagrant - ambiente de desenvolvimento virtualizado
Page 96: Vagrant - ambiente de desenvolvimento virtualizado
Page 97: Vagrant - ambiente de desenvolvimento virtualizado

vagrant cloud locãohttps://vagrantcloud.com/

Page 98: Vagrant - ambiente de desenvolvimento virtualizado
Page 99: Vagrant - ambiente de desenvolvimento virtualizado

Adicionar box, achar boxes, compartilhar, e mais uns “parangolé” doido...

Page 100: Vagrant - ambiente de desenvolvimento virtualizado

● facilidade na criação● simples de configurar● possibilita atualização constante via

provisions● ganhas um ambiente isolado● provisions pronto para produção● facilita criação de ambientes de continuos

integration

eras isso...

Page 101: Vagrant - ambiente de desenvolvimento virtualizado

Obrigadohttp://krolow.com.br