View
291
Download
9
Category
Preview:
DESCRIPTION
Introducing Docker Containers and Deploying them to Amazon AWS Elastic Beanstalk
Citation preview
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
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
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!
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