SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
O fim do “funciona na minha máquina”
Desenvolvimento com Docker e Docker Compose
Sobre vocês
● Virtualização, quem ?
● Docker: Quem NÃO
ouviu falar ?
● Quem usa no dia a dia ?
● docker-compose ?
De onde veio isso ?
● Começou como um projeto interno criado por
Solomon Hykes para uma empresa chamada
dotCloud.
● O software estreou na PyCon de 2013.
● Ambiente de execução dos containers escrito em
Go, uma linguagem criada pela Google que vem
ganhando bastante popularidade.
● A dotCloud se tornou Docker Inc e fez o engine
de containers open-source.
● Em 2016 o projeto recebeu grandes
contribuições de empresas como Cisco, Google,
Huawei, IBM, Microsoft e Rad Hat.
blog.docker.com
O problema da Virtualização
● Lá no começo da computação comercial,
quando se começou a difundir a internet,
era comum alocar uma máquina inteira
para rodar uma aplicação. Independente
da quantidade de recursos que esta
consumia.
● Era muito comum ter um único servidor
físico, com a porta da aplicação exposta e
se quisesse rodar outra coisa, outra
máquina era necessária.
● A coisa começou a mudar com o
surgimento dos virtual hosts (Apache e
cia…) Torkild Retvedt
Máquinas Virtuais
● Com a popularização das Máquinas
virtuais, passou-se a utilizar os recursos
de Hardware de uma forma mais
inteligente.
● Utiliza-se um servidor que possui diversas
instâncias de máquinas virtuais com OS
distintos rodando as aplicações isoladas
entre si.
● Além de facilitar a escalabilidade
horizontal, o isolamento oferece mais
segurança e mais flexibilidade na
infraestrutura.
nickjanetakis.com
Containers
● Apesar de consideráveis avanços com o
uso de máquinas virtuais. Ainda existe
espaço para melhorias.
● Muitos recursos são desperdiçados
alocando um OS distinto para cada
máquina, quando na verdade só se deseja
rodar uma aplicação.
● Os containers surgiram para remediar
este gap e muito mais. nickjanetakis.com
Como ele faz isso ?
● Utiliza por baixo uma funcionalidade do
Unix Kernel chamada namespaces, que
se constitui numa camada de abstração
que isola uma quantidade de recursos da
máquina para os processos dentro dele.
● Estes recursos por sua vez são
controlados via outra funcionalidade do
Kernel chamada cgroups.
● Ao juntar isto com umas facilidades
técnicas da linguagem Go, faz com que o
docker hoje pareça funcionar
“automagicamente”.
blog.docker.com
Vantagens
Além de otimizar o uso de recursos o uso do docker oferece outras vantagens tais
como:
● Ambientes Semelhantes
● Aplicação como Pacote Completo
● Padronização e Replicação
● Idioma comum entre Infraestrutura e Desenvolvimento
● Comunidade
● Escalabilidade - (Microserviços)
Nomenclatura Básica
● Imagem
○ Criada em camadas
○ Dockerfile
● Registro
○ Publico
○ Privado
○ Próprio
● Container
○ Parado
○ Rodando
● Daemon (Engine)
● Volume
● Network
● Docker-compose
○ service
○ docker-compose.yml
Demonstração
Stop talking and show me something your motherf*****
Conclusão
● Acaba o funciona na minha máquina (no
mínimo a maioria dos casos).
● Muito versátil para usar no dia a dia. Sem
ter que ficar instalado trocentas
ferramentas compiladores e etc…
● Fácil de “deployar uma solução em
container”.
● Funciona muito bem com servidores de
integração contínua tais como Jenkins,
Circle CI entre outros….
● Permite a criação de um catálogo de
artefatos graças a criação de imagens.
● Possui soluções para uso em escala tais
como Docker Swarm e Kubernetes.
● Infraestrutura no código.
● Como TUDO na tecnologia, docker
resolve muitos problemas. Porém ele não
é bala de prata pra tudo, tampouco a
única solução para todos os seus
problemas.
Perguntas ???
Obrigado!
Contato: lcastro.oliveira@gmail.com
Quer saber mais ? Leitura recomendada

Mais conteúdo relacionado

Mais procurados

Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Renato Groff
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre DockerMundo Docker
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao DockerRafael Dutra
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Renato Groff
 
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Renato Groff
 
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018Renato Groff
 
Docker: Uso no dia a dia de desenvolvimento
Docker: Uso no dia a dia de desenvolvimentoDocker: Uso no dia a dia de desenvolvimento
Docker: Uso no dia a dia de desenvolvimentoMarcela Carvalho
 
Spring boot com docker
Spring boot com dockerSpring boot com docker
Spring boot com dockerPaulo Vitor
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containerstdc-globalcode
 
Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serproRicardo Katz
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoSérgio Lima
 
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?tdc-globalcode
 
Docker e Kubernetes: Dicas e Truques - Dezembro-2019
Docker e Kubernetes: Dicas e Truques - Dezembro-2019Docker e Kubernetes: Dicas e Truques - Dezembro-2019
Docker e Kubernetes: Dicas e Truques - Dezembro-2019Renato Groff
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
Docker para quem tem preguica
Docker para quem tem preguicaDocker para quem tem preguica
Docker para quem tem preguicaCristiano Cunha
 

Mais procurados (20)

Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
 
Oito dicas sobre Docker
Oito dicas sobre DockerOito dicas sobre Docker
Oito dicas sobre Docker
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao Docker
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
 
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
 
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
 
Docker: Uso no dia a dia de desenvolvimento
Docker: Uso no dia a dia de desenvolvimentoDocker: Uso no dia a dia de desenvolvimento
Docker: Uso no dia a dia de desenvolvimento
 
Spring boot com docker
Spring boot com dockerSpring boot com docker
Spring boot com docker
 
Desvendando o Docker
Desvendando o DockerDesvendando o Docker
Desvendando o Docker
 
Conceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java NoroesteConceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java Noroeste
 
Estudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no DesenvolvimentoEstudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no Desenvolvimento
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
 
Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serpro
 
Docker Itix
Docker ItixDocker Itix
Docker Itix
 
Meetup-Churrops
Meetup-ChurropsMeetup-Churrops
Meetup-Churrops
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
 
Docker e Kubernetes: Dicas e Truques - Dezembro-2019
Docker e Kubernetes: Dicas e Truques - Dezembro-2019Docker e Kubernetes: Dicas e Truques - Dezembro-2019
Docker e Kubernetes: Dicas e Truques - Dezembro-2019
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Docker para quem tem preguica
Docker para quem tem preguicaDocker para quem tem preguica
Docker para quem tem preguica
 

Semelhante a O fim do "funciona na minha máquina"

Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)TechCobli
 
Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018Fernando Luiz Cola
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker BásicoAndré Justi
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o DockerWebSix
 
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
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelCampus Party Brasil
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogCesar Augusto Nogueira
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Marcel Cattaneo
 
Escalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em rubyEscalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em rubyRadamés Roriz
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes Rhuan Karlus Silva
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoCarlos Smaniotto
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linhamatheuscmpm
 

Semelhante a O fim do "funciona na minha máquina" (20)

Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)
 
Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 
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 fundamentos
Docker fundamentosDocker fundamentos
Docker fundamentos
 
O que é docker?
O que é docker?O que é docker?
O que é docker?
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro Inevitável
 
Docker e suas tecnologias
Docker e suas tecnologiasDocker e suas tecnologias
Docker e suas tecnologias
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.
 
Docker para iniciantes
Docker para iniciantesDocker para iniciantes
Docker para iniciantes
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Escalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em rubyEscalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em ruby
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualização
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linha
 

Mais de GDGFoz

Apresentação GDG Foz 2023
Apresentação GDG Foz  2023Apresentação GDG Foz  2023
Apresentação GDG Foz 2023GDGFoz
 
Desenvolvimento de um Comedouro para cães com Acionamento Automático e Remoto
Desenvolvimento de um Comedouro para cães com Acionamento Automático e RemotoDesenvolvimento de um Comedouro para cães com Acionamento Automático e Remoto
Desenvolvimento de um Comedouro para cães com Acionamento Automático e RemotoGDGFoz
 
Introdução do DEVSECOPS
Introdução do DEVSECOPSIntrodução do DEVSECOPS
Introdução do DEVSECOPSGDGFoz
 
Aquisição de dados IoT com Event Sourcing e Microservices
Aquisição de dados IoT com Event Sourcing e MicroservicesAquisição de dados IoT com Event Sourcing e Microservices
Aquisição de dados IoT com Event Sourcing e MicroservicesGDGFoz
 
Robótica Sucational
Robótica SucationalRobótica Sucational
Robótica SucationalGDGFoz
 
A nova era do desenvolvimento mobile
A nova era do desenvolvimento mobile A nova era do desenvolvimento mobile
A nova era do desenvolvimento mobile GDGFoz
 
Qualidade em Testes de Software
Qualidade em Testes de SoftwareQualidade em Testes de Software
Qualidade em Testes de SoftwareGDGFoz
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTGDGFoz
 
Dart e Flutter do Server ao Client Side
Dart e Flutter do Server ao Client SideDart e Flutter do Server ao Client Side
Dart e Flutter do Server ao Client SideGDGFoz
 
UX: O que é e como pode influenciar a vida do desenvolvedor?
UX: O que é e como pode influenciar a vida do desenvolvedor?UX: O que é e como pode influenciar a vida do desenvolvedor?
UX: O que é e como pode influenciar a vida do desenvolvedor?GDGFoz
 
Dicas de como entrar no mundo do DevSecOps
Dicas de como entrar no mundo do DevSecOpsDicas de como entrar no mundo do DevSecOps
Dicas de como entrar no mundo do DevSecOpsGDGFoz
 
Angular >= 2 - One Framework Mobile & Desktop
Angular >= 2 - One Framework Mobile & DesktopAngular >= 2 - One Framework Mobile & Desktop
Angular >= 2 - One Framework Mobile & DesktopGDGFoz
 
Automação Residencial Extrema com Opensource
Automação Residencial Extrema com OpensourceAutomação Residencial Extrema com Opensource
Automação Residencial Extrema com OpensourceGDGFoz
 
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?GDGFoz
 
Desmistificando a programação funcional
Desmistificando a programação funcionalDesmistificando a programação funcional
Desmistificando a programação funcionalGDGFoz
 
Microsserviços com Kotlin
Microsserviços com KotlinMicrosserviços com Kotlin
Microsserviços com KotlinGDGFoz
 
Autenticação de dois fatores
Autenticação de dois fatores Autenticação de dois fatores
Autenticação de dois fatores GDGFoz
 
Fique em casa seguro (ou tente)!
Fique em casa seguro (ou tente)!Fique em casa seguro (ou tente)!
Fique em casa seguro (ou tente)!GDGFoz
 
Hooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionaisHooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionaisGDGFoz
 
Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoGDGFoz
 

Mais de GDGFoz (20)

Apresentação GDG Foz 2023
Apresentação GDG Foz  2023Apresentação GDG Foz  2023
Apresentação GDG Foz 2023
 
Desenvolvimento de um Comedouro para cães com Acionamento Automático e Remoto
Desenvolvimento de um Comedouro para cães com Acionamento Automático e RemotoDesenvolvimento de um Comedouro para cães com Acionamento Automático e Remoto
Desenvolvimento de um Comedouro para cães com Acionamento Automático e Remoto
 
Introdução do DEVSECOPS
Introdução do DEVSECOPSIntrodução do DEVSECOPS
Introdução do DEVSECOPS
 
Aquisição de dados IoT com Event Sourcing e Microservices
Aquisição de dados IoT com Event Sourcing e MicroservicesAquisição de dados IoT com Event Sourcing e Microservices
Aquisição de dados IoT com Event Sourcing e Microservices
 
Robótica Sucational
Robótica SucationalRobótica Sucational
Robótica Sucational
 
A nova era do desenvolvimento mobile
A nova era do desenvolvimento mobile A nova era do desenvolvimento mobile
A nova era do desenvolvimento mobile
 
Qualidade em Testes de Software
Qualidade em Testes de SoftwareQualidade em Testes de Software
Qualidade em Testes de Software
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoT
 
Dart e Flutter do Server ao Client Side
Dart e Flutter do Server ao Client SideDart e Flutter do Server ao Client Side
Dart e Flutter do Server ao Client Side
 
UX: O que é e como pode influenciar a vida do desenvolvedor?
UX: O que é e como pode influenciar a vida do desenvolvedor?UX: O que é e como pode influenciar a vida do desenvolvedor?
UX: O que é e como pode influenciar a vida do desenvolvedor?
 
Dicas de como entrar no mundo do DevSecOps
Dicas de como entrar no mundo do DevSecOpsDicas de como entrar no mundo do DevSecOps
Dicas de como entrar no mundo do DevSecOps
 
Angular >= 2 - One Framework Mobile & Desktop
Angular >= 2 - One Framework Mobile & DesktopAngular >= 2 - One Framework Mobile & Desktop
Angular >= 2 - One Framework Mobile & Desktop
 
Automação Residencial Extrema com Opensource
Automação Residencial Extrema com OpensourceAutomação Residencial Extrema com Opensource
Automação Residencial Extrema com Opensource
 
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?
 
Desmistificando a programação funcional
Desmistificando a programação funcionalDesmistificando a programação funcional
Desmistificando a programação funcional
 
Microsserviços com Kotlin
Microsserviços com KotlinMicrosserviços com Kotlin
Microsserviços com Kotlin
 
Autenticação de dois fatores
Autenticação de dois fatores Autenticação de dois fatores
Autenticação de dois fatores
 
Fique em casa seguro (ou tente)!
Fique em casa seguro (ou tente)!Fique em casa seguro (ou tente)!
Fique em casa seguro (ou tente)!
 
Hooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionaisHooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionais
 
Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativo
 

O fim do "funciona na minha máquina"

  • 1. O fim do “funciona na minha máquina” Desenvolvimento com Docker e Docker Compose
  • 2. Sobre vocês ● Virtualização, quem ? ● Docker: Quem NÃO ouviu falar ? ● Quem usa no dia a dia ? ● docker-compose ?
  • 3. De onde veio isso ? ● Começou como um projeto interno criado por Solomon Hykes para uma empresa chamada dotCloud. ● O software estreou na PyCon de 2013. ● Ambiente de execução dos containers escrito em Go, uma linguagem criada pela Google que vem ganhando bastante popularidade. ● A dotCloud se tornou Docker Inc e fez o engine de containers open-source. ● Em 2016 o projeto recebeu grandes contribuições de empresas como Cisco, Google, Huawei, IBM, Microsoft e Rad Hat. blog.docker.com
  • 4. O problema da Virtualização ● Lá no começo da computação comercial, quando se começou a difundir a internet, era comum alocar uma máquina inteira para rodar uma aplicação. Independente da quantidade de recursos que esta consumia. ● Era muito comum ter um único servidor físico, com a porta da aplicação exposta e se quisesse rodar outra coisa, outra máquina era necessária. ● A coisa começou a mudar com o surgimento dos virtual hosts (Apache e cia…) Torkild Retvedt
  • 5. Máquinas Virtuais ● Com a popularização das Máquinas virtuais, passou-se a utilizar os recursos de Hardware de uma forma mais inteligente. ● Utiliza-se um servidor que possui diversas instâncias de máquinas virtuais com OS distintos rodando as aplicações isoladas entre si. ● Além de facilitar a escalabilidade horizontal, o isolamento oferece mais segurança e mais flexibilidade na infraestrutura. nickjanetakis.com
  • 6. Containers ● Apesar de consideráveis avanços com o uso de máquinas virtuais. Ainda existe espaço para melhorias. ● Muitos recursos são desperdiçados alocando um OS distinto para cada máquina, quando na verdade só se deseja rodar uma aplicação. ● Os containers surgiram para remediar este gap e muito mais. nickjanetakis.com
  • 7. Como ele faz isso ? ● Utiliza por baixo uma funcionalidade do Unix Kernel chamada namespaces, que se constitui numa camada de abstração que isola uma quantidade de recursos da máquina para os processos dentro dele. ● Estes recursos por sua vez são controlados via outra funcionalidade do Kernel chamada cgroups. ● Ao juntar isto com umas facilidades técnicas da linguagem Go, faz com que o docker hoje pareça funcionar “automagicamente”. blog.docker.com
  • 8. Vantagens Além de otimizar o uso de recursos o uso do docker oferece outras vantagens tais como: ● Ambientes Semelhantes ● Aplicação como Pacote Completo ● Padronização e Replicação ● Idioma comum entre Infraestrutura e Desenvolvimento ● Comunidade ● Escalabilidade - (Microserviços)
  • 9. Nomenclatura Básica ● Imagem ○ Criada em camadas ○ Dockerfile ● Registro ○ Publico ○ Privado ○ Próprio ● Container ○ Parado ○ Rodando ● Daemon (Engine) ● Volume ● Network ● Docker-compose ○ service ○ docker-compose.yml
  • 10. Demonstração Stop talking and show me something your motherf*****
  • 11.
  • 12. Conclusão ● Acaba o funciona na minha máquina (no mínimo a maioria dos casos). ● Muito versátil para usar no dia a dia. Sem ter que ficar instalado trocentas ferramentas compiladores e etc… ● Fácil de “deployar uma solução em container”. ● Funciona muito bem com servidores de integração contínua tais como Jenkins, Circle CI entre outros…. ● Permite a criação de um catálogo de artefatos graças a criação de imagens. ● Possui soluções para uso em escala tais como Docker Swarm e Kubernetes. ● Infraestrutura no código. ● Como TUDO na tecnologia, docker resolve muitos problemas. Porém ele não é bala de prata pra tudo, tampouco a única solução para todos os seus problemas.