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.

Transportando as aplicações entre vários ambientes com Docker

1,589 views

Published on

Nesta palestra aprenderemos o que é Docker, conteiner, imagens e quais as principais ferramentas do Docker usadas para implantar e transportar contêineres de aplicação entre vários tipos de ambientes.

Published in: Software
  • Be the first to comment

Transportando as aplicações entre vários ambientes com Docker

  1. 1. Transportando as aplicações entre vários ambientes com Docker Aécio Pires
  2. 2. Aécio dos Santos Pires http://aeciopires.com Administrador de Sistemas DevOp na Especialista em Segurança da Informação pela iDEZ Um dos autores do livro Tecnólogo em Redes de Computadores pelo
  3. 3. Nivelando o conhecimento
  4. 4. Mudança de Paradigma ● Cultura DevOps; ● Integração contínua; ● Alterações mais frequentes e mais rápidas em produção; ● Micro-serviços; ● Ambientes “elásticos”; ● Maior complexidade na análise de logs, no monitoramento e na segurança dos hosts;
  5. 5. Docker ● “É uma plataforma de contêiner, com o código fonte aberto, que automatiza a implantação de aplicativos de software.” Site Oficial [1] ● Não é uma tecnologia de virtualização. ● Não é um gerente de configuração. ● Não é um kernel separado. ● Não é um hypervisor.
  6. 6. Docker ● Foi publicado em 13 de Março de 2013. ● Está em constante desenvolvimento. ● Desenvolvido inicialmente pela dotCloud, atual Docker Inc. ● Hoje é mantido pela Docker Inc. + comunidade. ● Tem suporte a Linux, Windows, Mac OS, entre outros. ● Licença Apache 2.0 ● Tem as versões Enterprise (EE) e Comunity (CE) ● No Linux, o diretório de trabalho fica em: /var/lib/docker/ ● Site oficial: www.docker.com ● Documentação: docs.docker.com
  7. 7. Conteiner e Imagem
  8. 8. Contêineres ● “São um encapsulamento para um aplicativo com suas dependências.” Using Docker de Adrian Mouat (O’Reilly) [2] [3] ● Ocupam menos espaço do que as VMs. ● São portáveis. ● São ligados quase instantaneamente. ● São adequados para execução de microserviços e pouco recomendados para sistemas monolíticos. ● Vários contêineres podem ser executados na mesma máquina. ● Compartilham o kernel do SO. ● Cada conteiner é executado como um processo isolado no espaço do usuário. ● Conteiner é um conceito antigo.
  9. 9. Fonte: https://serversideup.net/wp-content/uploads/2014/10/ContainerVsVM.png
  10. 10. Imagens ● Funciona como um template para criação de novos contêineres. ● A partir de uma imagem, é possível iniciar novos contêineres e fazer alterações neles. ● São formadas a partir da compilação de uma imagem base. ● São compostas por múltiplas camadas, onde cada uma é um sistema de arquivos somente leitura. ● Podem ser geradas a partir de um conteiner em execução ou a partir da compilação de um Dockerfile.
  11. 11. Imagem
  12. 12. Do DockerFile ao Conteiner
  13. 13. Docker Host ● É o host no qual são executados os conteiners e onde são processados os comandos enviados pelo docker client. ● O docker host pode conter o docker daemon e o client ou somente o docker daemon.
  14. 14. Docker Host
  15. 15. Do Desenvolvimento à Produção
  16. 16. Responsabilidades diferentes DesenvolvimentoDesenvolvimento ProduçãoProdução Metologias Ágeis Disponibilidade Integração Contínua Persistência de dados (storage) Correção de bugs Segurança Ambiente para testes Backup Versionamento de código Configurações específicas Sprints Logs Processos de desenvolvimento Monitoramento Geração de código Alertas Merges Métricas Coleta de requisitos Escalabilidade Reuniões e mais reuniões Rollback Orquestração Deploy de aplicações Documentação Suporte ao usuário
  17. 17. Fonte: https://image.slidesharecdn.com/usingdockertoimprovewebdeveloperproductivity-devopsdaysaustin-may5- 140506080540-phpapp01/95/using-docker-to-improve-web-developer-productivity-devopsdays-austin-may-5-5- 638.jpg?cb=1399363960 Transportando as aplicações entre vários ambientes com Docker
  18. 18. Ambiente Docker
  19. 19. Fonte: https://image.slidesharecdn.com/javadaykharkiv-151012091658-lva1-app6891/95/nextgen-devops- engineering-with-docker-and-kubernetes-by-antons-kranga-7-638.jpg?cb=1444642030 Transportando as aplicações entre vários ambientes com Docker
  20. 20. Docker Hub e Docker Registry Docker Hub (hub.docker.com): ● É um serviço remoto e proprietário de hospedagem de imagens Docker. ● É possível criar contas gratuitas para criação de repositórios de imagens públicas (gratuito) e privadas (pago US$). ● Possui interface web para gerenciamento de usuários, repositórios, imagens e builds automáticos. Docker Registry (docs.docker.com/registry): ● É um serviço open source alternativo ao Docker Hub para hospedagem gratuíta de imagens em um servidor local. ● Funciona de forma semelhante ao Docker Hub. ● Não possui interface web nativa.
  21. 21. Docker Hub e Registry
  22. 22. Ferramentas de Apoio à Operação em Produção ● Interfaces web ao Docker Registry… – http://port.us.org – http://vmware.github.io/harbor – http://www.projectatomic.io/registry
  23. 23. Ferramentas de Apoio à Operação em Produção ● Orquestração e escalabilidade… – docs.docker.com/engine/swarm
  24. 24. Docker Swarm ● Solução de cluster Docker, que agrupa vários hosts Docker e possibilita a orquestração dos mesmos e de contêineres. MOUAT, Adrian ● Se encarrega de selecionar um host apropriado no qual o conteiner será executado. ● Pode ser formado por Docker Hosts de VMs e/ou físicos ou os dois simultaneamente. ● docs.docker.com/engine/swarm
  25. 25. Ferramentas de Apoio à Operação em Produção ● Gerenciamento de conteiners, volumes, Docker Swarm, rede do Docker… – http://rancher.com – https://portainer.io – https://meros.io – https://shipyard-project.com
  26. 26. ● “É uma ferramenta web e de código fonte aberto que permite gerenciar vários Docker Hosts ou vários clusters de Docker Swarm.” [4] ● Portainer: portainer.io github.com/portainer/portainer https://portainer.io/overview.html#demo
  27. 27. Transportando as aplicações entre vários ambientes com Docker
  28. 28. Ferramentas de Apoio à Operação em Produção ● Alerta, monitoramento, logs, coleta de métricas… – http://zabbix.com – https://github.com/monitoringartist/zabbix-xxl – https://grafana.com – https://meros.io – https://sysdig.com – https://www.coscale.com – https://signalfx.com
  29. 29. Zabbix
  30. 30. Grafana
  31. 31. Meros
  32. 32. Sysdig
  33. 33. Coscale
  34. 34. SignalFX
  35. 35. GOMES, Rafael - Docker para desenvolvedores https://leanpub.com/dockerparadesenvolvedores MOUAT, Adrian – Usando Docker https://www.novatec.com.br/livros/usando-docker PIRES, Aécio – Primeiros passos com Docker http://blog.aeciopires.com/primeiros-passos-com-docker Referências
  36. 36. Então, faça um curso comigo. :-) Mais informações: http://blog.aeciopires.com/curso-docker Quer aprender mais sobre Docker?
  37. 37. Aécio Pires http://aeciopires.com

×