Docker + Django

Download Docker + Django

Post on 24-May-2015

5.826 views

Category:

Technology

1 download

Embed Size (px)

DESCRIPTION

Slides do evento https://plus.google.com/events/c0ulqmr27796bh8vbsv7bl71698

TRANSCRIPT

<ul><li> 1. Docker + Django Allisson Azevedo</li></ul> <p> 2. Allisson Azevedo Desenvolvedor Web na SodaVirtualhttp://github.com/allissonhttp://youtube.com/allissonazevedohttp://slideshare.net/allissonhttp://speakerdeck.com/allisson 3. O ProblemaPreciso rodar meu webapp Preciso de um ambiente pr congurado Minha equipe tambm 4. Soluo #1Arquivo README no repositrio Dependncias para instalar no SOAlguns possveis truques para o webapp funcionar 5. Problemas #1Diferentes SODiferentes verses do mesmo SOObriga toda a equipe a ser especialista em infraTempo 6. Soluo #2Virtualizao Vagrant Vagrantle no repo do projetovagrant up 7. Problemas #2 Vagrant legal, mas No serve para produo Alto custo de hardware Uma vm para cada aplicativo :( necessrio um SO completo para rodar sua aplicao? 8. Linux Containers (LXC)Permite rodar um Linux dentro de outro LinuxChroot on steroidsDentro do container, parece uma VMFora do container, mais um processo do SO 9. Porque usar Containers? Velocidade Boot em questo de segundosEconomia de recursos Os processos rodando dentro de um container so vistos como um processo no sistema Host 10. LXC no Ubuntu 12.04https://help.ubuntu.com/12.04/serverguide/lxc.html 11. LXC - Quem usa?HerokudotCloud / Docker INC 12. Docker Docker is an open-source project to easily create lightweight, portable, self-sufcient containers from any application. The same container that a developer builds and tests on a laptop can run at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more.Tem como base o LXC 13. Docker - Filesystem Para rodar um Linux, geralmente precisamos: bootfs - Boot lesystem bootloader e kernelrootfs - Root lesystem restante dos arquivos do sistema 14. Docker - Filesystem 15. Docker - Filesystem 16. Docker - Layers Em um boot tradicional do Linux: O kernel monta o rootfs como read-only, checa sua integridade e faz montagem como read-writeNo docker funciona assim: O kernel monta o rootfs como read-only, depois outro lesystem montado como read-write em cima do rootfsUnion File System 17. Docker - Layers 18. Docker - ImagesNo docker, image um layer read-onlyHerana de imagesBase image: quando no tem pai 19. Docker - Container um layer read-write, montado a partir de um image (e seus parentes)Congurao de rede e limite de recursos 20. Docker - Container 21. Docker - Instalao Por enquanto, s funciona no LinuxVoc pode usar em qualquer sistema, via vagrantgit clone https://github.com/dotcloud/docker.gitcd dockervagrant up 22. Demo 23. Docker + Django Vamos usar algumas ferramentas j utilizadas no Herokuhttps://devcenter.heroku.com/articles/getting-startedwith-djangodj-database-urldj-static ou o static3 com um middleware wsgihoncho (clone do foreman em python) 24. Docker + Django git clone https://github.com/allisson/django-dockerexampleDockerlesudo docker build -t allisson/myblog .sudo docker run -d allisson/myblogsudo docker run -d -e DATABASE_URL=postgres:// user:pass@ip:5432/banco allisson/myblog 25. Docker - Boas prticas Use repositrios privados quando necessrio https://docs.docker.io/en/latest/use/ workingwithrepository/#private-repositoriesEvitar em produo, containers do tipo: nginx + mysql + memcached + gunicornEm produo, o container deve rodar apenas o processo da aplicao conguraes via variveis de ambiente 26. Linkshttp://blog.docker.iohttps://github.com/progrium/dokkuhttp://deis.iohttps://github.com/shipyard/shipyard 27. Obrigado!</p>