Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Conheça o Docker
Prof. Uirá Ribeiro
Introdução ao Docker
 Como entregar software sem dor ?
 Como garantir que o software que roda em desenvolvimento vai rod...
Introdução ao Docker
 O Docker funciona como um ”Contêiner” de software, capaz de
encapsular tudo que o software precisa ...
Introdução ao Docker
Introdução ao Docker
 Overhead de processamento é quase inexistente
 Overhead de rede é mínimo
 Contêineres são muito l...
Introdução ao Docker
Introdução ao Docker
 Um contêiner tem seu próprio espaço de processo (namespaces)
 Um contêiner tem sua própria rede in...
Pid namespace
Mnt namespace
Ipc namespace
Docker não é uma VM
 Docker NÃO é uma VM leve
 Docker aproveita o KERNEL do Host
 Docker não precisa de SO Convidado
 ...
VM x Docker
Como entregar software para diferentes
dispositivos ?
O que cabe no contêiner?
 Seu código fonte todo
 Seus binários
 Suas bibliotecas
 Seu gerenciador de pacotes favorito ...
E fora do contêiner, fica o que?
 Logging
 Acesso remoto
 Configuração de rede
 Monitoramento
E meus dados?
 Volumes permitem que um diretório específico exista dentro e fora do
contêiner
 Os contêineres podem comp...
Chega de Dev x Ops
Tá, mas qual a grande sacada?
 Sim, você pode fazer tudo com VMs.
 Sim, você pode automatizar com scripts
 Mas a graaaa...
Configuração Simples
 Sim, funciona no LINUX
 Sim, funciona no MAC
 Sim, funciona no Windows
 Sim, funciona em VMs
 A...
Componentes do Docker
 Docker Daemon = roda em background, gerencia os contêineres e
imagens. Funciona através de uma API...
Fluxo de Trabalho do Docker
 Você trabalha com todos os componentes que precisa no
desenvolvimento
 Todos da equipe de d...
Satisfeito com o resultado?
 Se você ficar satisfeito com o resultado, pode enviar sua imagem para
um repositório;
 Pode...
Simples assim:
 host$ docker run ubuntu bash
 ubuntu$ apt-get install aquilo-e-isso
 host$ docker commit <conteiner_id>...
Construir -> Entregar
Agilidade + Portabilidade + Controle
Conheça o Docker
Upcoming SlideShare
Loading in …5
×

Conheça o Docker

338 views

Published on

Como entregar software sem dor ?
Como garantir que o software que roda em desenvolvimento vai rodar em produção?
Como criar um ambiente em desenvolvimento que tenha a infraestrutura de produção sem ”duplicar” a estrutura e os custos?
Como garantir que as várias camadas e peças de software funcionem bem?
Como garantir que sistemas complexos de web, notificações, cachê, loadbalance, banco de dados relacional, NoSQL, Redis, Memcache, Python, Php, Java e Rubi trabalhem juntos de forma simples?
Como acabar com a velha máxima de 'mas aqui rodou sem problemas'?
Se você alguma vez esbarrou nestas perguntas, você precisa assistir este vídeo!

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Conheça o Docker

  1. 1. Conheça o Docker Prof. Uirá Ribeiro
  2. 2. Introdução ao Docker  Como entregar software sem dor ?  Como garantir que o software que roda em desenvolvimento vai rodar em produção?  Como criar um ambiente em desenvolvimento que tenha a infraestrutura de produção sem ”duplicar” a estrutura e dobrar os custos?  Como garantir que as várias camadas e peças de software funcionem bem?  Como não colocar ”todos os ovos” em uma só cesta ?
  3. 3. Introdução ao Docker  O Docker funciona como um ”Contêiner” de software, capaz de encapsular tudo que o software precisa para rodar  Roda no Kernel existente  Isola o ambiente do contêiner do ambiente do Host  Possibilita criar uma arquitetura de micro-serviços  Muito fácil de criar contêineres  Os contêineres são executados de forma rápida e podem ser parados e reiniciados e trocados em segundos
  4. 4. Introdução ao Docker
  5. 5. Introdução ao Docker  Overhead de processamento é quase inexistente  Overhead de rede é mínimo  Contêineres são muito leves  Um laptop típico pode rodar 10-100 contêineres facilmente  Um servidor típico pode rodar de 100-1000 contêineres  O que roda local, irá rodar no servidor com o mesmo comportamento, independente da versão, da distribuição e das dependências de software
  6. 6. Introdução ao Docker
  7. 7. Introdução ao Docker  Um contêiner tem seu próprio espaço de processo (namespaces)  Um contêiner tem sua própria rede interna  Um contêiner pode rodar programas como ”root” sem problemas  Pode ter seu próprio /sbin /etc /etc/init sem afetar o host  Seu sistema de arquivos é incremental ”por camadas”. Isso permite um rollback fácil.  Docker CPU performance = performance nativa  Docker Memória = % pequeno diferente da memória do Host  Docker Rede = % pequeno de overhead
  8. 8. Pid namespace
  9. 9. Mnt namespace
  10. 10. Ipc namespace
  11. 11. Docker não é uma VM  Docker NÃO é uma VM leve  Docker aproveita o KERNEL do Host  Docker não precisa de SO Convidado  Docker isola o processo do Host  Docker permite que você execute um ambiente diferente do ambiente do Host  Docker permite que você tenha uma biblioteca com dependências e versões diferentes do Host  Docker pode rodar em uma VM  Docker pode rodar até em um Contêiner
  12. 12. VM x Docker
  13. 13. Como entregar software para diferentes dispositivos ?
  14. 14. O que cabe no contêiner?  Seu código fonte todo  Seus binários  Suas bibliotecas  Seu gerenciador de pacotes favorito (APT-GET, RPM, YUM, YAST, etc)  Seus aplicativos  Seus serviços de SGBD (Mysql, Oracle, Mongo, PostgreSQL, etc  Seus dados
  15. 15. E fora do contêiner, fica o que?  Logging  Acesso remoto  Configuração de rede  Monitoramento
  16. 16. E meus dados?  Volumes permitem que um diretório específico exista dentro e fora do contêiner  Os contêineres podem compartilhar volumes em um mesmo Host  Um diretório pode persistir mesmo que um contêiner seja deletado  Volumes com dados podem ser criados em um Dockerfile ou CLI  Uma alteração no sistema de arquivos de um contêiner pode ser copiada para demais contêineres
  17. 17. Chega de Dev x Ops
  18. 18. Tá, mas qual a grande sacada?  Sim, você pode fazer tudo com VMs.  Sim, você pode automatizar com scripts  Mas a graaaaaaande questão é fazer tudo r-i-d-i-c-u-l-a-m-e-n-t-e fácil de usar  Você pode utilizar as imagens de outras pessoas (SIM, o Ecossistema)  Continua entrega / integração / teste / orquestração de software  Você pode criar e compartilhar imagens (todos da equipe rodam a mesma coisa)  Provê uma maneira simples, PADRÃO e que pode ser REPRODUZIDA com facilidade de entregar imagens
  19. 19. Configuração Simples  Sim, funciona no LINUX  Sim, funciona no MAC  Sim, funciona no Windows  Sim, funciona em VMs  Altamente escalável  Instalação simples através de git  Provisionamento simples na AWS, Rackspace, Digital Ocean e Azure
  20. 20. Componentes do Docker  Docker Daemon = roda em background, gerencia os contêineres e imagens. Funciona através de uma API HTTP  Docker Contêiner = Unidade padrão que os aplicativos e serviços residem e são executados  Docker Imagem = A base de um contêiner.  Docker CLI = cliente que conversa com a API HTTP para processar as requisições  Docker Engine = Cria, entrega e roda os contêineres  Docker Registry = Repositório publico ou privado de imagens  Demais ferramentas de orquestração = ajudam na entrega e monitoramento de contêineres
  21. 21. Fluxo de Trabalho do Docker  Você trabalha com todos os componentes que precisa no desenvolvimento  Todos da equipe de desenvolvimento fazer código com o mesmo ambiente (compartilham as imagens)  Outros serviços necessários do código (RADIS, MEMCACHE, Banco) também rodam nos contêineres. Você testa como deve ser no servidor  Os contêineres podem ser criados em segundos e rodam instantaneamente
  22. 22. Satisfeito com o resultado?  Se você ficar satisfeito com o resultado, pode enviar sua imagem para um repositório;  Pode rodar automaticamente o contêiner em CI/CD  Pode rodar em produção  Permite crescimento fácil com mais contêineres e Loadbalance FELICIDADE!!!  E se algo der errado? Volte ao contêiner anterior sem dor!
  23. 23. Simples assim:  host$ docker run ubuntu bash  ubuntu$ apt-get install aquilo-e-isso  host$ docker commit <conteiner_id> minhaimagem  host$ docker run minhaimagem bash  minhaimagem$ git clone git://..../meucódigo  host$ docker commit <conteiner_id> minhaimagem  host$ docker tag minhaimagem <usuário/minhaimagem>  host$ docker push <usuário/minhaimagem>
  24. 24. Construir -> Entregar
  25. 25. Agilidade + Portabilidade + Controle

×