Deploy completo de uma aplicação Django

4,004 views

Published on

Slides da palestra apresentada no mutirão python: https://plus.google.com/events/cf64tgv7l8g2fhe3gc1p417pqh8

Published in: Technology
  • Be the first to comment

Deploy completo de uma aplicação Django

  1. 1. DEPLOY COMPLETO DE UMAAPLICAÇÃO DJANGOAllisson AzevedoMonday, May 13, 13
  2. 2. ALLISSON AZEVEDOGraduado em Licenciatura em ComputaçãoDesenvolvedor Webhttp://speakerdeck.com/allissonhttp://slideshare.net/allissonhttp://github.com/allissonhttp://youtube.com/user/allissonazevedoMonday, May 13, 13
  3. 3. Monday, May 13, 13
  4. 4. Monday, May 13, 13
  5. 5. DEPLOYColocar sua aplicação em produção“Botar o bicho para funcionar”Monday, May 13, 13
  6. 6. MAS EU SOU APENAS UMDESENVOLVEDOR...Desenvolvedores devem saber como funciona oprocesso de deploy de sua aplicaçãoProvavelmente será sua responsabilidadeSimular o ambiente de produção localmenteApenas em empresas grandes você vai ter um timeespecializado em infraMonday, May 13, 13
  7. 7. NÃO QUERO ESQUENTAR ACABEÇA COM DEPLOYUse um PAAS (Platform as a Service - Plataformacomo Serviço)HerokuAWS Elastic BeanstalkEngineYard (sem suporte a python)Google AppengineMonday, May 13, 13
  8. 8. ONDE HOSPEDAR?Não use servidores compartilhados (shared hosting)Linode1 Gb de ram, 24 Gb storage, 2 Tb transferência$20AWS EC2RackspaceMonday, May 13, 13
  9. 9. QUAL SISTEMAOPERACIONAL?Linux (GNU/Linux para não ofender ninguém)Prefira distribuições com longo tempo de suporteUbuntu Server LTS (5 anos)RHEL e CentOS (7 anos)Monday, May 13, 13
  10. 10. PORQUE NGINX E NÃOAPACHE?Apacheprocess-based (forking or threaded)Nginxasynchronous (event-driven)http://daverecycles.com/post/3104767110/explain-event-driven-web-servers-to-your-grandmaMonday, May 13, 13
  11. 11. POSTGRESQL OU MYSQL?Dois ótimos servidoresSe for usar o MySQL, use a engine innodb nas tabelasMonday, May 13, 13
  12. 12. CONECTANDO SUAAPLICAÇÃOFastCGIGeralmente a opção disponível em servidorescompartilhadosWSGIPadrão do python (PEP 333)http://allissonazevedo.com/2011/08/25/introducao-ao-wsgi/Monday, May 13, 13
  13. 13. GUNICORN (GREENUNICORN)Port do Unicorn (ruby) para pythonServidor HTTP que suporta WSGI nativamente“Python WSGI HTTP Server for UNIX. Its a pre-forkworker model ported from Rubys Unicorn project.”Monday, May 13, 13
  14. 14. SUPERVISORÉ um sistema cliente/servidor que permite que osusuários monitorem e controlem processos emsistemas Unix like.Não é executado para substituir o init padrão dosistema operacionalMonday, May 13, 13
  15. 15. SENTRYPlataforma para monitorar erros em uma aplicaçãowebEscrito em DjangoO cliente raven enviam as informações para oservidorSubstituir o comportamento padrão de enviar um e-mail no caso de exceção não tratada no DjangoMonday, May 13, 13
  16. 16. OBJETIVOFazer o deploy da aplicação shortenerhttp://github.com/allisson/django-shortener-exampleMonday, May 13, 13
  17. 17. O QUEVAMOS USAR?Nginx para servir conteúdo estático e redirecionar asrequisições para o gunicornGunicorn como servidor de aplicaçãoSupervisor para gerenciar os processos do gunicornPostgresql como banco de dadosSentry para gerenciar possíveis erros em produçãoMonday, May 13, 13
  18. 18. MÃO NA MASSA!Monday, May 13, 13
  19. 19. PERGUNTAS?Monday, May 13, 13

×