O fim do "funciona na minha máquina"
-
Upload
gdgfoz -
Category
Technology
-
view
78 -
download
0
Transcript of O fim do "funciona na minha máquina"
![Page 1: O fim do "funciona na minha máquina"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/1.jpg)
O fim do “funciona na minha máquina”Desenvolvimento com Docker e Docker Compose
![Page 2: O fim do "funciona na minha máquina"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/2.jpg)
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"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/3.jpg)
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"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/4.jpg)
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"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/5.jpg)
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"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/6.jpg)
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"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/7.jpg)
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"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/8.jpg)
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"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/9.jpg)
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"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/10.jpg)
DemonstraçãoStop talking and show me something your motherf*****
![Page 11: O fim do "funciona na minha máquina"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/11.jpg)
![Page 12: O fim do "funciona na minha máquina"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/12.jpg)
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"](https://reader033.fdocumentos.tips/reader033/viewer/2022052418/5a65e5a77f8b9a21248b49e3/html5/thumbnails/13.jpg)
Perguntas ???