14
O fim do “funciona na minha máquina” Desenvolvimento com Docker e Docker Compose

O fim do "funciona na minha máquina"

  • Upload
    gdgfoz

  • View
    77

  • Download
    0

Embed Size (px)

Citation preview

Page 1: O fim do "funciona na minha máquina"

O fim do “funciona na minha máquina”Desenvolvimento com Docker e Docker Compose

Page 2: O fim do "funciona na minha máquina"

Sobre vocês

● Virtualização, quem ?

● Docker: Quem NÃO

ouviu falar ?

● Quem usa no dia a dia ?

● docker-compose ?

Page 3: O fim do "funciona na minha máquina"

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

Page 4: O fim do "funciona na minha máquina"

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

Page 5: O fim do "funciona na minha máquina"

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

Page 6: O fim do "funciona na minha máquina"

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

Page 7: O fim do "funciona na minha máquina"

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

Page 8: O fim do "funciona na minha máquina"

VantagensAlé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)

Page 9: O fim do "funciona na minha máquina"

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

Page 10: O fim do "funciona na minha máquina"

DemonstraçãoStop talking and show me something your motherf*****

Page 11: O fim do "funciona na minha máquina"
Page 12: O fim do "funciona na minha máquina"

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.

Page 13: O fim do "funciona na minha máquina"

Perguntas ???

Page 14: O fim do "funciona na minha máquina"

Obrigado!

Contato: [email protected]

Quer saber mais ? Leitura recomendada