SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Introdução ao Docker 
Setembro, 2014
Conteúdo 
• Introdução ao Docker, Containers, e a Matriz Infernal 
• Por que as pessoas se preocupam: Separação de Interesses 
• Discussão Técnica 
• Casos de Uso 
• Tópicos Avançados: Networking, Data 
• OpenStack 
• Saiba Mais
Nos 2 anos após o lançamento 
• >10.561 commits 
• >16.186 github stars 
• >666 contribuidores da comunidade 
• >2.875 forks 
• Um número imenso de aplicativos 
baseados em Docker 
• UIs, mini-PaaS, Remote Desktop…. 
• >2000 aplicações dockerizadas 
• Memcached, Redis, Node.js…e Hadoop 
• Integração com Jenkins, Travis, Chef, 
Puppet, Vagrant, OpenStack, entre 
outros.
Porque todo este frenesi?
Static website 
User DB 
Web frontend 
Queue Analytics DB 
Background workers 
API endpoint 
nginx 1.5 + modsecurity + openssl + bootstrap 2 
postgresql + pgv8 + v8 
hadoop + hive + thrift + OpenJDK 
Redis + redis-sentinel 
Ruby + Rails + sass + Unicorn 
Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + 
phantomjs 
Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client 
Development VM 
QA server 
Public Cloud 
Disaster recovery 
Contributor’s laptop 
Production Servers 
O Desafio 
Multiplicity of Stacks 
Multiplicity of 
hardware 
environments 
Production Cluster 
Customer Data Center 
Do services and apps 
interact 
appropriately? 
Can I migrate 
smoothly and 
quickly?
A Matriz Infernal 
Static website 
Web frontend 
Background workers 
User DB 
Analytics DB 
Queue 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
Development 
VM QA Server Single Prod 
Server Onsite Cluster Public Cloud Contributor’s 
laptop 
Customer 
Servers
Multiplicity of Goods 
transporting/storing 
Multipilicity of 
methods for 
Do I worry about 
how goods interact 
(e.g. coffee beans 
next to spices) 
Can I transport quickly 
and smoothly 
(e.g. from boat to train 
to truck) 
O transporte de cargas Pré-1960
Também uma Matriz Infernal 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ?
Multiplicity of Goods 
Multiplicity of 
methods for 
transporting/storing 
Do I worry about 
how goods interact 
(e.g. coffee beans 
next to spices) 
Can I transport 
quickly and smoothly 
(e.g. from boat to 
train to truck) 
Solução: Envio Intermodal em Containers 
...no caminho , podem ser 
carregados e descarregados, 
empilhados, transportados de 
forma eficiente em longas 
distâncias, e transferidos de um 
meio de transporte para outro. 
Um contêiner padrão que é 
carregado com praticamente 
todos os bens, e permanece 
fechado até que ele atinja a 
entrega final.
Docker é um sistema de containers para código! 
Static website User DB Web frontend Queue Analytics DB 
Development 
VM 
QA server Public Cloud Contributor’s 
laptop 
Multiplicity of Stacks 
Multiplicity of 
hardware 
environments 
Production 
Cluster 
Customer Data 
Center 
Do services and apps 
interact 
appropriately? 
Can I migrate 
smoothly and quickly 
...que pode ser manipulado 
através de operações-padrão e 
executar de forma consistente em 
praticamente qualquer plataforma 
de hardware. 
Uma engine que permite que 
qualquer carga útil venha a 
ser encapsulada como um 
recipiente auto-suficiente 
leve, portátil...
Static website 
Web frontend 
Background workers 
User DB 
Analytics DB 
Queue 
Development 
VM QA Server Single Prod 
Server Onsite Cluster Public Cloud Contributor’s 
laptop 
Customer 
Servers 
Docker elimina a Matriz Infernal!
Porque os Desenvolvedores se importam 
• Faça o build uma vez e…(finalmente) rode em qualquer lugar* 
• Um ambiente execução limpo, seguro, higiênico e portátil para o seu aplicativo. 
• Sem preocupações com falta de dependências, pacotes e outros pontos de dor durante as 
implantações subsequentes. 
• Execute cada aplicativo em seu próprio container, assim você pode executar várias versões de 
bibliotecas e outras dependências para cada aplicação sem se preocupar. 
• Automatizar testes, integração, packaging... você pode fazer um script para qualquer coisa. 
• Reduzir/eliminar as preocupações sobre compatibilidade em diferentes plataformas, suas ou 
de seus clientes. 
• Cheap, zero-penalty containers to deploy services? A VM without the overhead of a VM? 
Instant replay and reset of image snapshots? That’s the power of Docker
Porque os operadores de infraestrutura se 
importam 
• Configure uma vez… rode qualquer coisa 
• Faça todo o ciclo de vida de uma aplicação mais eficiente, consistente e repetível. 
• Aumentar a qualidade do código produzido pelos desenvolvedores. 
• Eliminar inconsistências entre desenvolvimento, teste, produção e ambientes de clientes. 
• Suporte a segregação de funções. 
• Melhora significativamente a velocidade e a confiabilidade da implantação contínua e dos 
sistemas de integração contínua. 
• Porque os recipientes são tão leves, tem o potencial de solucionar os problemas de 
desempenho, os custos, a implantação e problemas de portabilidade normalmente associados 
com VMs.
Porque funciona - separação de interesses 
• Zé, o Desenvolvedor 
• Se preocupa com o que está dentro 
do container: 
• O Código 
• As Bibliotecas 
• O Gerenciador de Pacotes 
• As Aplicações 
• Os Dados 
• Todos os servidores Linux parecem 
ser o mesmo. 
• Jão, o Operador 
• Se preocupa com o que está 
fora do container 
• Logging 
• Acesso Remoto 
• Monitoramento 
• Network config 
• Todos os containers start, 
stop, copy, attach, migrate, 
etc. da mesma forma.
Mais explicações técnicas 
PORQUE O QUE 
• High Level - É uma VM leve 
• Espaço de processos próprio 
• Network própria 
• Pode executar coisas como root 
• Pode ter seu próprio /sbin/init 
(separado do host) 
• <<machine container>> 
• Low Level - chroot com esteróides 
• Pode também não ter seu próprio 
/sbin/init 
• Container=processos isolados 
• Compartilha o kernel com o host 
• Sem emulação de dispositivos 
(nem HVM nem PV) do host) 
• <<application container>> 
• Roda em qualquer lugar 
• Independete da versão do kernel 
(2.6.32+) 
• Independente da distro do host 
• Físico ou virtual, cloud ou não 
• Roda qualquer coisa 
• Se alguma coisa roda no host, 
rodará no container 
• i.e. se alguma coisa roda no Linux, 
rodará no container.
Containers vs. VMs 
App 
A 
Bins/ 
Libs 
Hypervisor (Type 2) 
Host OS 
Server 
Bins/ 
Libs 
Guest 
OS 
App 
A’ 
Guest 
OS 
App 
B 
Bins/ 
Libs 
Guest 
OS 
App A’ 
Docker 
Host OS 
Server 
App A 
Bins/Libs 
Bins/Libs 
App B 
App B’ 
App B’ 
App B’ 
VM 
Container 
Containers são isolados, 
mas compartilham o OS e, 
quando 
appropriate, bins/libraries 
Guest 
OS 
Guest 
OS 
...o que resulta em implementação 
significativamente mais rápida, muito menos 
sobrecarga, migração mais fácil, restart mais 
rápido
Porque os containers do Docker são leves? 
VMs Containers 
App 
A 
Bins/ 
Libs 
Original App 
(No OS to take 
up space, resources, 
or require restart) 
App Δ 
Bins/ 
App 
A 
Bins/ 
Libs 
App 
A’ 
Bins/ 
Libs 
Guest 
OS 
Modified App 
Copy on write 
capabilities allow 
us to only save the diffs 
Between container A 
and container 
A’ 
VMs 
App 
A 
Bins/ 
Libs 
Guest 
OS 
Every app, every copy of an 
app, and every slight modification 
of the app requires a new virtual server 
App 
A 
Copy of 
App 
No OS. Can 
Share bins/libs 
Guest 
OS 
Guest 
OS
Quais os princípios básicos doDocker? 
Dockerfile 
For 
A 
Source 
Code 
Repository 
Docker Engine 
Docker 
Container 
Image 
Registry 
Build 
Docker 
Host 2 OS (Linux) 
Container 
A 
Container 
B 
Container 
C 
Container A 
Push 
Search 
Pull 
Run 
Host 1 OS (Linux)
Mudanças e Atualizações 
App 
A’’ 
Bins/ 
Libs 
Docker Engine 
Docker 
Container 
Image 
Registry 
Push 
Docker Engine 
Update 
App 
A 
Bins/ 
Libs 
App Δ 
Bins/ 
Base 
Container 
Image 
Host is now running A’’ 
Container 
Mod A’’ 
App Δ 
Bins/ 
App 
A 
Bins/ 
Libs 
Bins/ 
Host running A wants to upgrade to A’’. 
Requests update. Gets only diffs 
Container 
Mod A’
Casos de Uso 
• Ted Dziuba sobre o Uso de Docker para integração contínua no Ebay 
• https://speakerdeck.com/teddziuba/docker-at-ebay 
• http://www.youtube.com/watch?feature=player_embedded&v=0Hi0W4gX--4 
• Sasha Klizhentas sobre o uso do Docker no Mailgun da Rackspace 
• http://www.youtube.com/watch?feature=player_embedded&v=CMC3xdAo9RI 
• Sebastien Pahl sobre o uso do Docker na CloudFlare 
• http://www.youtube.com/watch?feature=player_embedded&v=-Lj3jt_-3r0 
• Cambridge HealthCare 
• http://blog.howareyou.com/post/62157486858/continuous-delivery-with-docker-and-jenkins-part- 
i 
• Red Hat Openshift and Docker 
• https://www.openshift.com/blogs/technical-thoughts-on-openshift-and-docker
Casos de Uso - Na Comunidade 
Use Case Examples Link 
Clusters Building a MongoDB cluster using docker http://bit.ly/1acbjZf 
Production Quality MongoDB Setup with Docker http://bit.ly/15CaiHb 
Wildfly cluster using Docker on Fedora http://bit.ly/1bClX0O 
Build your own PaaS OpenSource PaaS built on Docker, Chef, and Heroku Buildpacks http://deis.io 
Web Based Environment 
JiffyLab – web based environment for the instruction, or lightweight use of, Python and 
for Instruction 
UNIX shell 
http://bit.ly/12oaj2K 
Easy Application 
Deployment 
Deploy Java Apps With Docker = Awesome http://bit.ly/11BCvvu 
How to put your development environment on docker http://bit.ly/1b4XtJ3 
Running Drupal on Docker http://bit.ly/15MJS6B 
Installing Redis on Docker http://bit.ly/16EWOKh 
Create Secure Sandboxes Docker makes creating secure sandboxes easier than ever http://bit.ly/13mZGJH 
Create your own SaaS Memcached as a Service http://bit.ly/11nL8vh 
Automated Application 
Deployment 
Multi-cloud Deployment with Docker http://bit.ly/1bF3CN6 
Continuous Integration 
and Deployment 
Next Generation Continuous Integration & Deployment with dotCloud’s Docker and 
Strider 
http://bit.ly/ZwTfoy 
Testing Salt States Rapidly With Docker http://bit.ly/1eFBtcm 
Lightweight Desktop 
Virtualization 
Docker Desktop: Your Desktop Over SSH Running Inside Of A Docker Container 
http://bit.ly/14RYL6x
Advanced topics 
• Data 
• Today: Externally mounted volumes 
• Share volumes between containers 
• Share volume between a containers and underlying hosts 
• high-performance storage backend for your production database 
• making live development changes available to a container, etc. 
• Optional: specify memory limit for containers, CPU priority 
• Device mapper/ LVM snapshots in 0.7 
• Futures: 
• I/O limits 
• Container resource monitoring (CPU & memory usage) 
• Orchestration (linking & synchronization between containers) 
• Cluster orchestration (multi-host environment) 
• Networking 
• Supported today: 
• UDP/TCP port allocation to containers 
• specify which public port to redirect. If you don’t specify a public port, Docker will revert to allocating a random public port. 
• Docker uses IPtables/netfilter 
• IP allocation to containers 
• Docker uses virtual interfaces, network bridge, 
• Futures: 
• See Pipework (Upstream) : Software-Defined Networking for Linux Containers (https://github.com/jpetazzo/pipework) 
• Certain pipework concepts will move from upstream to part of core Docker 
• Additional capabilities come with libvirt support in 0.8-0.9 timeframe
OpenStack / Docker 
New hypervisor to enable Nova to deploy Linux containers
Porque Docker + OpenStack 
• Alternativa para as VMs presentes na OpenStack (hoje) 
• Implantação mais fácil da OpenStack (hoje) 
• Implantação de aplicativos em cross cloud. 
• Orquestração de containers com OpenStack Heat
Quer aprender mais? 
• www.docker.io: 
• Documentação 
• Introdução: tutorial interativo, instruções de instalação, guia de iniciação, 
• Sobre: Whitepaper Introdutória: http://www.docker.io/the-whole-story/ 
• Github: dotcloud/docker 
• IRC: freenode/#docker 
• Google groups: groups.google.com/forum/#!forum/docker-user 
• Twitter: follow @docker 
• Meetups: https://www.docker.io/meetups/ 
• Através de mim: Alexandre Teles (eu@alexteles.com)
www.docker.io

Weitere ähnliche Inhalte

Was ist angesagt?

Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRAmazon Web Services LATAM
 
Palestra Google Cloud Spanner
Palestra Google Cloud SpannerPalestra Google Cloud Spanner
Palestra Google Cloud SpannerFelipe Santos
 
Path to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big DataPath to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big DataAmazon Web Services LATAM
 
Blue Green Deployments com Elastic Beanstalk - Demo Session
Blue Green Deployments com Elastic Beanstalk - Demo SessionBlue Green Deployments com Elastic Beanstalk - Demo Session
Blue Green Deployments com Elastic Beanstalk - Demo SessionAmazon Web Services LATAM
 
Explorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon AuroraExplorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon AuroraAmazon Web Services LATAM
 
Raising the bar #5 - Melhores práticas de workloads Microsoft
Raising the bar #5 - Melhores práticas de workloads MicrosoftRaising the bar #5 - Melhores práticas de workloads Microsoft
Raising the bar #5 - Melhores práticas de workloads MicrosoftAmazon Web Services LATAM
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon Web Services LATAM
 

Was ist angesagt? (16)

Seu primeiro aplicativo de Big Data
Seu primeiro aplicativo de Big DataSeu primeiro aplicativo de Big Data
Seu primeiro aplicativo de Big Data
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMR
 
Aws summit arquitetura big data-v1.2
Aws summit arquitetura big data-v1.2Aws summit arquitetura big data-v1.2
Aws summit arquitetura big data-v1.2
 
Palestra Google Cloud Spanner
Palestra Google Cloud SpannerPalestra Google Cloud Spanner
Palestra Google Cloud Spanner
 
DynamoDB - Uma Introdução
DynamoDB - Uma IntroduçãoDynamoDB - Uma Introdução
DynamoDB - Uma Introdução
 
Iniciando com Amazon DynamoDB
Iniciando com Amazon DynamoDBIniciando com Amazon DynamoDB
Iniciando com Amazon DynamoDB
 
Path to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big DataPath to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big Data
 
Bancos de Dados gerenciados na nuvem AWS
Bancos de Dados gerenciados na nuvem AWSBancos de Dados gerenciados na nuvem AWS
Bancos de Dados gerenciados na nuvem AWS
 
Blue Green Deployments com Elastic Beanstalk - Demo Session
Blue Green Deployments com Elastic Beanstalk - Demo SessionBlue Green Deployments com Elastic Beanstalk - Demo Session
Blue Green Deployments com Elastic Beanstalk - Demo Session
 
Elasticsearch 5.0
Elasticsearch 5.0Elasticsearch 5.0
Elasticsearch 5.0
 
Explorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon AuroraExplorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon Aurora
 
SQL Maniacs - SQL Server 2019 Big Data Clusters
SQL Maniacs - SQL Server 2019 Big Data ClustersSQL Maniacs - SQL Server 2019 Big Data Clusters
SQL Maniacs - SQL Server 2019 Big Data Clusters
 
Raising the bar #5 - Melhores práticas de workloads Microsoft
Raising the bar #5 - Melhores práticas de workloads MicrosoftRaising the bar #5 - Melhores práticas de workloads Microsoft
Raising the bar #5 - Melhores práticas de workloads Microsoft
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenho
 
Construindo um Data Lake na AWS
Construindo um Data Lake na AWSConstruindo um Data Lake na AWS
Construindo um Data Lake na AWS
 
TCO e otimização de custos na AWS
TCO e otimização de custos na AWSTCO e otimização de custos na AWS
TCO e otimização de custos na AWS
 

Andere mochten auch

Region andina ginna
Region andina ginnaRegion andina ginna
Region andina ginnaginnama
 
Indo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com DockerIndo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com DockerLuan Cestari
 
Docker para deploy de aplicação
Docker para deploy de aplicaçãoDocker para deploy de aplicação
Docker para deploy de aplicaçãoMundo Docker
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida realFernando Ike
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o DockerWebSix
 
containerd and CRI
containerd and CRIcontainerd and CRI
containerd and CRIDocker, Inc.
 

Andere mochten auch (9)

Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Region andina ginna
Region andina ginnaRegion andina ginna
Region andina ginna
 
Indo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com DockerIndo para as nuvens mais rápido e fácil com Docker
Indo para as nuvens mais rápido e fácil com Docker
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
AWSome Day - Rio de Janeiro - Brasil
AWSome Day - Rio de Janeiro - BrasilAWSome Day - Rio de Janeiro - Brasil
AWSome Day - Rio de Janeiro - Brasil
 
Docker para deploy de aplicação
Docker para deploy de aplicaçãoDocker para deploy de aplicação
Docker para deploy de aplicação
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 
containerd and CRI
containerd and CRIcontainerd and CRI
containerd and CRI
 

Ähnlich wie Docker.io:

Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4David Ruiz
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker ContainersHugo Henley
 
O poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e KubernetesO poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e KubernetesWillian Azevedo
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com DockerAécio Pires
 
Docker: ganhe tempo e seja eficiente na entrega de serviços de TI
Docker: ganhe tempo e seja eficiente na entrega de serviços de TIDocker: ganhe tempo e seja eficiente na entrega de serviços de TI
Docker: ganhe tempo e seja eficiente na entrega de serviços de TIRicardo Ferreira Costa
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...Renato Groff
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerAécio Pires
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Renato Groff
 
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Renato Groff
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com DockerWellington Silva
 

Ähnlich wie Docker.io: (20)

Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
O poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e KubernetesO poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e Kubernetes
 
Bem vindo ao Docker
Bem vindo ao DockerBem vindo ao Docker
Bem vindo ao Docker
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
 
Docker: ganhe tempo e seja eficiente na entrega de serviços de TI
Docker: ganhe tempo e seja eficiente na entrega de serviços de TIDocker: ganhe tempo e seja eficiente na entrega de serviços de TI
Docker: ganhe tempo e seja eficiente na entrega de serviços de TI
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
Docker
DockerDocker
Docker
 
DevOpsDays Brasilia 2017
DevOpsDays Brasilia 2017DevOpsDays Brasilia 2017
DevOpsDays Brasilia 2017
 
Docker meetup
Docker meetupDocker meetup
Docker meetup
 
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
 
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Workshop Docker
Workshop DockerWorkshop Docker
Workshop Docker
 

Docker.io:

  • 1. Introdução ao Docker Setembro, 2014
  • 2. Conteúdo • Introdução ao Docker, Containers, e a Matriz Infernal • Por que as pessoas se preocupam: Separação de Interesses • Discussão Técnica • Casos de Uso • Tópicos Avançados: Networking, Data • OpenStack • Saiba Mais
  • 3. Nos 2 anos após o lançamento • >10.561 commits • >16.186 github stars • >666 contribuidores da comunidade • >2.875 forks • Um número imenso de aplicativos baseados em Docker • UIs, mini-PaaS, Remote Desktop…. • >2000 aplicações dockerizadas • Memcached, Redis, Node.js…e Hadoop • Integração com Jenkins, Travis, Chef, Puppet, Vagrant, OpenStack, entre outros.
  • 4. Porque todo este frenesi?
  • 5. Static website User DB Web frontend Queue Analytics DB Background workers API endpoint nginx 1.5 + modsecurity + openssl + bootstrap 2 postgresql + pgv8 + v8 hadoop + hive + thrift + OpenJDK Redis + redis-sentinel Ruby + Rails + sass + Unicorn Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud Disaster recovery Contributor’s laptop Production Servers O Desafio Multiplicity of Stacks Multiplicity of hardware environments Production Cluster Customer Data Center Do services and apps interact appropriately? Can I migrate smoothly and quickly?
  • 6. A Matriz Infernal Static website Web frontend Background workers User DB Analytics DB Queue ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Development VM QA Server Single Prod Server Onsite Cluster Public Cloud Contributor’s laptop Customer Servers
  • 7. Multiplicity of Goods transporting/storing Multipilicity of methods for Do I worry about how goods interact (e.g. coffee beans next to spices) Can I transport quickly and smoothly (e.g. from boat to train to truck) O transporte de cargas Pré-1960
  • 8. Também uma Matriz Infernal ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 9. Multiplicity of Goods Multiplicity of methods for transporting/storing Do I worry about how goods interact (e.g. coffee beans next to spices) Can I transport quickly and smoothly (e.g. from boat to train to truck) Solução: Envio Intermodal em Containers ...no caminho , podem ser carregados e descarregados, empilhados, transportados de forma eficiente em longas distâncias, e transferidos de um meio de transporte para outro. Um contêiner padrão que é carregado com praticamente todos os bens, e permanece fechado até que ele atinja a entrega final.
  • 10. Docker é um sistema de containers para código! Static website User DB Web frontend Queue Analytics DB Development VM QA server Public Cloud Contributor’s laptop Multiplicity of Stacks Multiplicity of hardware environments Production Cluster Customer Data Center Do services and apps interact appropriately? Can I migrate smoothly and quickly ...que pode ser manipulado através de operações-padrão e executar de forma consistente em praticamente qualquer plataforma de hardware. Uma engine que permite que qualquer carga útil venha a ser encapsulada como um recipiente auto-suficiente leve, portátil...
  • 11. Static website Web frontend Background workers User DB Analytics DB Queue Development VM QA Server Single Prod Server Onsite Cluster Public Cloud Contributor’s laptop Customer Servers Docker elimina a Matriz Infernal!
  • 12. Porque os Desenvolvedores se importam • Faça o build uma vez e…(finalmente) rode em qualquer lugar* • Um ambiente execução limpo, seguro, higiênico e portátil para o seu aplicativo. • Sem preocupações com falta de dependências, pacotes e outros pontos de dor durante as implantações subsequentes. • Execute cada aplicativo em seu próprio container, assim você pode executar várias versões de bibliotecas e outras dependências para cada aplicação sem se preocupar. • Automatizar testes, integração, packaging... você pode fazer um script para qualquer coisa. • Reduzir/eliminar as preocupações sobre compatibilidade em diferentes plataformas, suas ou de seus clientes. • Cheap, zero-penalty containers to deploy services? A VM without the overhead of a VM? Instant replay and reset of image snapshots? That’s the power of Docker
  • 13. Porque os operadores de infraestrutura se importam • Configure uma vez… rode qualquer coisa • Faça todo o ciclo de vida de uma aplicação mais eficiente, consistente e repetível. • Aumentar a qualidade do código produzido pelos desenvolvedores. • Eliminar inconsistências entre desenvolvimento, teste, produção e ambientes de clientes. • Suporte a segregação de funções. • Melhora significativamente a velocidade e a confiabilidade da implantação contínua e dos sistemas de integração contínua. • Porque os recipientes são tão leves, tem o potencial de solucionar os problemas de desempenho, os custos, a implantação e problemas de portabilidade normalmente associados com VMs.
  • 14. Porque funciona - separação de interesses • Zé, o Desenvolvedor • Se preocupa com o que está dentro do container: • O Código • As Bibliotecas • O Gerenciador de Pacotes • As Aplicações • Os Dados • Todos os servidores Linux parecem ser o mesmo. • Jão, o Operador • Se preocupa com o que está fora do container • Logging • Acesso Remoto • Monitoramento • Network config • Todos os containers start, stop, copy, attach, migrate, etc. da mesma forma.
  • 15. Mais explicações técnicas PORQUE O QUE • High Level - É uma VM leve • Espaço de processos próprio • Network própria • Pode executar coisas como root • Pode ter seu próprio /sbin/init (separado do host) • <<machine container>> • Low Level - chroot com esteróides • Pode também não ter seu próprio /sbin/init • Container=processos isolados • Compartilha o kernel com o host • Sem emulação de dispositivos (nem HVM nem PV) do host) • <<application container>> • Roda em qualquer lugar • Independete da versão do kernel (2.6.32+) • Independente da distro do host • Físico ou virtual, cloud ou não • Roda qualquer coisa • Se alguma coisa roda no host, rodará no container • i.e. se alguma coisa roda no Linux, rodará no container.
  • 16. Containers vs. VMs App A Bins/ Libs Hypervisor (Type 2) Host OS Server Bins/ Libs Guest OS App A’ Guest OS App B Bins/ Libs Guest OS App A’ Docker Host OS Server App A Bins/Libs Bins/Libs App B App B’ App B’ App B’ VM Container Containers são isolados, mas compartilham o OS e, quando appropriate, bins/libraries Guest OS Guest OS ...o que resulta em implementação significativamente mais rápida, muito menos sobrecarga, migração mais fácil, restart mais rápido
  • 17. Porque os containers do Docker são leves? VMs Containers App A Bins/ Libs Original App (No OS to take up space, resources, or require restart) App Δ Bins/ App A Bins/ Libs App A’ Bins/ Libs Guest OS Modified App Copy on write capabilities allow us to only save the diffs Between container A and container A’ VMs App A Bins/ Libs Guest OS Every app, every copy of an app, and every slight modification of the app requires a new virtual server App A Copy of App No OS. Can Share bins/libs Guest OS Guest OS
  • 18. Quais os princípios básicos doDocker? Dockerfile For A Source Code Repository Docker Engine Docker Container Image Registry Build Docker Host 2 OS (Linux) Container A Container B Container C Container A Push Search Pull Run Host 1 OS (Linux)
  • 19. Mudanças e Atualizações App A’’ Bins/ Libs Docker Engine Docker Container Image Registry Push Docker Engine Update App A Bins/ Libs App Δ Bins/ Base Container Image Host is now running A’’ Container Mod A’’ App Δ Bins/ App A Bins/ Libs Bins/ Host running A wants to upgrade to A’’. Requests update. Gets only diffs Container Mod A’
  • 20. Casos de Uso • Ted Dziuba sobre o Uso de Docker para integração contínua no Ebay • https://speakerdeck.com/teddziuba/docker-at-ebay • http://www.youtube.com/watch?feature=player_embedded&v=0Hi0W4gX--4 • Sasha Klizhentas sobre o uso do Docker no Mailgun da Rackspace • http://www.youtube.com/watch?feature=player_embedded&v=CMC3xdAo9RI • Sebastien Pahl sobre o uso do Docker na CloudFlare • http://www.youtube.com/watch?feature=player_embedded&v=-Lj3jt_-3r0 • Cambridge HealthCare • http://blog.howareyou.com/post/62157486858/continuous-delivery-with-docker-and-jenkins-part- i • Red Hat Openshift and Docker • https://www.openshift.com/blogs/technical-thoughts-on-openshift-and-docker
  • 21. Casos de Uso - Na Comunidade Use Case Examples Link Clusters Building a MongoDB cluster using docker http://bit.ly/1acbjZf Production Quality MongoDB Setup with Docker http://bit.ly/15CaiHb Wildfly cluster using Docker on Fedora http://bit.ly/1bClX0O Build your own PaaS OpenSource PaaS built on Docker, Chef, and Heroku Buildpacks http://deis.io Web Based Environment JiffyLab – web based environment for the instruction, or lightweight use of, Python and for Instruction UNIX shell http://bit.ly/12oaj2K Easy Application Deployment Deploy Java Apps With Docker = Awesome http://bit.ly/11BCvvu How to put your development environment on docker http://bit.ly/1b4XtJ3 Running Drupal on Docker http://bit.ly/15MJS6B Installing Redis on Docker http://bit.ly/16EWOKh Create Secure Sandboxes Docker makes creating secure sandboxes easier than ever http://bit.ly/13mZGJH Create your own SaaS Memcached as a Service http://bit.ly/11nL8vh Automated Application Deployment Multi-cloud Deployment with Docker http://bit.ly/1bF3CN6 Continuous Integration and Deployment Next Generation Continuous Integration & Deployment with dotCloud’s Docker and Strider http://bit.ly/ZwTfoy Testing Salt States Rapidly With Docker http://bit.ly/1eFBtcm Lightweight Desktop Virtualization Docker Desktop: Your Desktop Over SSH Running Inside Of A Docker Container http://bit.ly/14RYL6x
  • 22. Advanced topics • Data • Today: Externally mounted volumes • Share volumes between containers • Share volume between a containers and underlying hosts • high-performance storage backend for your production database • making live development changes available to a container, etc. • Optional: specify memory limit for containers, CPU priority • Device mapper/ LVM snapshots in 0.7 • Futures: • I/O limits • Container resource monitoring (CPU & memory usage) • Orchestration (linking & synchronization between containers) • Cluster orchestration (multi-host environment) • Networking • Supported today: • UDP/TCP port allocation to containers • specify which public port to redirect. If you don’t specify a public port, Docker will revert to allocating a random public port. • Docker uses IPtables/netfilter • IP allocation to containers • Docker uses virtual interfaces, network bridge, • Futures: • See Pipework (Upstream) : Software-Defined Networking for Linux Containers (https://github.com/jpetazzo/pipework) • Certain pipework concepts will move from upstream to part of core Docker • Additional capabilities come with libvirt support in 0.8-0.9 timeframe
  • 23. OpenStack / Docker New hypervisor to enable Nova to deploy Linux containers
  • 24. Porque Docker + OpenStack • Alternativa para as VMs presentes na OpenStack (hoje) • Implantação mais fácil da OpenStack (hoje) • Implantação de aplicativos em cross cloud. • Orquestração de containers com OpenStack Heat
  • 25. Quer aprender mais? • www.docker.io: • Documentação • Introdução: tutorial interativo, instruções de instalação, guia de iniciação, • Sobre: Whitepaper Introdutória: http://www.docker.io/the-whole-story/ • Github: dotcloud/docker • IRC: freenode/#docker • Google groups: groups.google.com/forum/#!forum/docker-user • Twitter: follow @docker • Meetups: https://www.docker.io/meetups/ • Através de mim: Alexandre Teles (eu@alexteles.com)