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

Allisson Azevedo

May 13, 2013
Tweet

More Decks by Allisson Azevedo

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. POSTGRESQL OU MYSQL? Dois ótimos servidores Se for usar o

    MySQL, use a engine innodb nas tabelas Monday, May 13, 13
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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