Deploying Docker Containers

Preview:

DESCRIPTION

Introducing Docker Containers and Deploying them to Amazon AWS Elastic Beanstalk

Citation preview

Deploying Docker Containers

Hugo Arraes Henley hugohenley@id.uff.br

Quem sou eu?

Arquiteto de Soluções da STI

Engenheiro de Software

Nerd :)

Apaixonado por tecnologia

#quemnunca?

• Perdeu horas tentando descobrir porque o seu software não funcionava em produção e era aquela lib que faltava…

• Ficou dias tentando configurar a máquina para rodar o projeto da empresa

• Contratou um web designer e teve que ajudá-lo a instalar até o banco de dados da sua app. Que sentido faz?

Desenvolvedores devem…

• Ter mais tempo para focar no negócio!

• Entregar software que funciona sem dificuldades e que sejam independentes do ambiente

• Deployar, deployar, deployar…

Suas aplicações devem…

• Escalar com facilidade

• Ser facilmente deployáveis

• Rodar em ambientes isolados

[http://12factor.net/dev-prod-parity]

Qual a solução?

Docker? Containers?

Um paralelo com a Engenharia …

Solução…

O deploy é feito em containers leves e auto-suficientes.

#comofaz?

Docker?• Permite criar containers leves e auto-suficientes que podem

conter qualquer tipo de aplicação/serviço

• Se é possível rodar em um Kernel Linux, pode rodar no Docker !

• Não é uma Virtual Machine!

• É um Virtual Environment!

• Escrito em Go :)

Virtual Machines

Server

Host OS

Hypervisor

Guest OS

Bin/Libs

App A

Guest OS

Bin/Libs

App B

Virtual Environments

Server

Host OS

Docker Engine

Bin/Libs

App A

Bin/Libs

App B

Há um ganho incrível de performance.

Performance

[An Updated Performance Comparison of Virtual Machines and Linux Containers]

Quase não há overhead!

Deploy

Fluxo Padrão

Your machineServer

Deploying Containers

Server

Host OS

Docker Engine

Your Machine Server

Ambiente de Desenvolvimento = Ambiente de ProduçãoAmbiente de Desenvolvimento = Ambiente de ProduçãoAmbiente de Desenvolvimento = Ambiente de ProduçãoAmbiente de Desenvolvimento = Ambiente de Produção

Como faço pra rodar o meu Linux Container?

1docker pull ubuntu

docker run -i -t ubuntu:14.04 /bin/bash2

Só isso?

Onde eu configuro o meu container?

Dockerfile

Dockerizing a Redis Service

Dockerfile

Dockerizing a MySQL Database

Criando o container MySQL

Observações

• Tempo de boot do container?

• As migrações rodam dentro do container! Você não precisa ter o MySQL instalado na sua máquina

• Possibilidade de criar vários containers, cada um com um serviço

• Ganhamos isolamento e velocidade!

Fácil escalar…

Linking Containers

Redis Server App / Linux

Onde eu guardo os meus containers?

[https://hub.docker.com/]

Quem está usando?

Onde fazer deploy?

Cloud Computing

Elastic Beanstalk• Serviço que permite deploy de forma fácil e

rápida de aplicações Java, .NET, PHP, Node.js, Python, Ruby e Docker

• Suporta Apache, Nginx, Passenger e IIS

• Você faz upload do seu código

• O Elastic Beanstalk se encarrega do provisionamento e monitoramento da sua aplicação

• Dockerfile

• Dockerrun.aws.json

O que é necessário?

Dockerrun.aws.json

Testando…

[https://github.com/awslabs/eb-py-flask-signup/tree/docker]

1 git clone git@github.com:awslabs/eb-py-flask-signup.git

2 eb init

3 eb start

4 eb push

[http://eb-docker-env-vbxvmms6fz.elasticbeanstalk.com]

DESAFIO!

Rodem seu próximo projeto em containers na AWS! :)

Dica para os alunos…

E o mais importante…

O mercado quer solucionadores de problemas!

Atenção! Descontos!

[https://www.jetbrains.com/student/]

[https://education.github.com/pack]

Estamos contratando!

8 sistemas em desenvolvimento> 40 sistemas em produção

Horário Flexível!

Aprendizado constante

Tecnologia de Ponta

12 e 13 de Novembro

Empresas confirmadas

Dúvidas?

Obrigado!

http://github.com/hugohenley

Hugo Henley

hugohenley

hugohenley@id.uff.br

http://hugohenley.github.io

Recommended