28
Vagrant, LXC, Docker etc. Entenda as diferenças Rogerio Prado de Jesus - https://rogeriopradoj.com/about PHP Experience 2016, março - https://joind.in/talk/da5bb

PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as diferenças

Embed Size (px)

Citation preview

Vagrant, LXC, Docker etc.

Entenda as diferenças

Rogerio Prado de Jesus - https://rogeriopradoj.com/about

PHP Experience 2016, março - https://joind.in/talk/da5bb

Ambiente de desenvolvimento

Pessoa nova na equipe...

… quanto tempo gasto antes de

começar a programar...

...pois está montando ambiente

DEV?

Mais tempo disponível em DEV=Mais $$$

http://vidadesuporte.com.br/

QUEM NUNCA?

Tempo perdido com ambientes divergentes

ParidadeDEV / PROD

Isolamento de ambiente

Automação da montagem do ambiente

Virtualização

Containers

Provisionamento

Vagrant

Development environments made easy.

Create and configure lightweight, reproducible and portable dev environments.

https://www.vagrantup.com/

Vagrant- provider- provisioner- box- CLI

- Vagrantfile- Receitas- Reutilização de imagens base- Código, IDE, navegador

continuam do lado de cá

- Primeira ferramenta que juntava tudo

- CLI simples: $ vagrant up- Maduro- Extensibilidade- Curva de aprendizagem

- Marcado pela deficiências do VirtualBox

- Marcado como apenas para VMs e aplicações "monolito"

Microserviços

Paridade DEV/PROD

LXC

the well known set of tools, templates, library and language

bindings. It's pretty low level, very flexible and covers just about

every containment feature

supported by the upstream

kernel.

https://linuxcontainers.org/

"Container é um grupo de processos rodando de forma isolada. Compartilham [...] kernel, mas tem usuários e recursos (memória e cpu) isolados [...]. Container Engines são ferramentas que pegam uma imagem de um sistema e executa essa imagem na forma de um container. O isolamento [...] é feito pelo [...] sistema de baixo nível, o LXC [no caso do Docker Engine]"

@gullitmiranda, Desenvolvedor na Azuki

Build, Ship, and Run Any App,

Anywhere.

An open platform for distributed

applications for developers and

sysadmins.

https://www.docker.com/

Docker

- Engine + CLI- Layered F.S.- Hub / Registry- Dockerfile

Docker

- Inicialização + rápida ambientes- Simplifica o uso de containers- Paridade Dev/Prod maior- Família de ferramentas

evoluindo- opencontainers.org

- Não facilita outros provisionadores (além do shell script do Dockerfile)

- VM em alguns hosts- Docker imagens não serão

compartilhadas entre SOs com containers diferentes

E como juntamos esses múltiplos containers?

Vagrant

azkopen-source orchestrator for local development environments.http://www.azk.io/

Docker-compose

Vagrant Docker provisioner can automatically

install Docker, pull Docker containers, and configure certain containers to run on boot.

The Docker provider in Vagrant behaves just

like any other provider.https://www.vagrantup.com/docs/

tool for defining and running multi-container Docker applicationshttps://docs.docker.com/compose/

Rogério, de todas essas soluções, qual é a melhor para minha empresa?

Sugestão:

@wsilva, Especialista Docker, Comunidade PHPSP

"[...] numa aplicação "monolito", pode ir de Vagrant + VM, numa aplicação separada em serviços, Docker + orquestração[...]"

Avalie com Devs e Ops, e monte o seu!

Feedbackhttps://joind.in/talk/da5bb

ROGERIO PRADO DE JESUS

@RogerioPradoJ

https://rogeriopradoj.com/about/

PHPSP

http://phpsp.org.br/