Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deploy completo de uma aplicação Django

Deploy completo de uma aplicação Django

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

13991d197c3eb0f71b802337d5eb2719?s=128

Allisson Azevedo

May 13, 2013
Tweet

Transcript

  1. DEPLOY COMPLETO DE UMA APLICAÇÃO DJANGO Allisson Azevedo Monday, May

    13, 13
  2. ALLISSON AZEVEDO Graduado em Licenciatura em Computação Desenvolvedor Web http://speakerdeck.com/allisson

    http://slideshare.net/allisson http://github.com/allisson http://youtube.com/user/allissonazevedo Monday, May 13, 13
  3. Monday, May 13, 13

  4. Monday, May 13, 13

  5. DEPLOY Colocar sua aplicação em produção “Botar o bicho para

    funcionar” Monday, May 13, 13
  6. MAS EU SOU APENAS UM DESENVOLVEDOR... Desenvolvedores devem saber como

    funciona o processo de deploy de sua aplicação Provavelmente será sua responsabilidade Simular o ambiente de produção localmente Apenas em empresas grandes você vai ter um time especializado em infra Monday, May 13, 13
  7. NÃO QUERO ESQUENTAR A CABEÇA COM DEPLOY Use um PAAS

    (Platform as a Service - Plataforma como Serviço) Heroku AWS Elastic Beanstalk EngineYard (sem suporte a python) Google Appengine Monday, May 13, 13
  8. ONDE HOSPEDAR? Não use servidores compartilhados (shared hosting) Linode 1

    Gb de ram, 24 Gb storage, 2 Tb transferência $20 AWS EC2 Rackspace Monday, May 13, 13
  9. QUAL SISTEMA OPERACIONAL? Linux (GNU/Linux para não ofender ninguém) Prefira

    distribuições com longo tempo de suporte Ubuntu Server LTS (5 anos) RHEL e CentOS (7 anos) Monday, May 13, 13
  10. PORQUE NGINX E NÃO APACHE? Apache process-based (forking or threaded)

    Nginx asynchronous (event-driven) http://daverecycles.com/post/3104767110/explain- event-driven-web-servers-to-your-grandma Monday, May 13, 13
  11. POSTGRESQL OU MYSQL? Dois ótimos servidores Se for usar o

    MySQL, use a engine innodb nas tabelas Monday, May 13, 13
  12. CONECTANDO SUA APLICAÇÃO FastCGI Geralmente a opção disponível em servidores

    compartilhados WSGI Padrão do python (PEP 333) http://allissonazevedo.com/2011/08/25/introducao- ao-wsgi/ Monday, May 13, 13
  13. GUNICORN (GREEN UNICORN) Port do Unicorn (ruby) para python Servidor

    HTTP que suporta WSGI nativamente “Python WSGI HTTP Server for UNIX. It's a pre-fork worker model ported from Ruby's Unicorn project.” Monday, May 13, 13
  14. SUPERVISOR É um sistema cliente/servidor que permite que os usuários

    monitorem e controlem processos em sistemas Unix like. Não é executado para substituir o init padrão do sistema operacional Monday, May 13, 13
  15. SENTRY Plataforma para monitorar erros em uma aplicação web Escrito

    em Django O cliente raven enviam as informações para o servidor Substituir o comportamento padrão de enviar um e- mail no caso de exceção não tratada no Django Monday, May 13, 13
  16. OBJETIVO Fazer o deploy da aplicação shortener http://github.com/allisson/django-shortener-example Monday, May

    13, 13
  17. O QUE VAMOS USAR? Nginx para servir conteúdo estático e

    redirecionar as requisições para o gunicorn Gunicorn como servidor de aplicação Supervisor para gerenciar os processos do gunicorn Postgresql como banco de dados Sentry para gerenciar possíveis erros em produção Monday, May 13, 13
  18. MÃO NA MASSA! Monday, May 13, 13

  19. PERGUNTAS? Monday, May 13, 13