deploy completo de uma aplicacao django 130513151808 phpapp01

Upload: dionimf

Post on 07-Mar-2016

17 views

Category:

Documents


0 download

DESCRIPTION

Aprendendo deploy em uma aplicação com python e Django

TRANSCRIPT

  • DEPLOY COMPLETO DE UMA APLICAO DJANGO

    Allisson Azevedo

    Monday, May 13, 13

  • ALLISSON AZEVEDO

    Graduado em Licenciatura em Computao

    Desenvolvedor Web

    http://speakerdeck.com/allisson

    http://slideshare.net/allisson

    http://github.com/allisson

    http://youtube.com/user/allissonazevedo

    Monday, May 13, 13

  • Monday, May 13, 13

  • Monday, May 13, 13

  • DEPLOY

    Colocar sua aplicao em produo

    Botar o bicho para funcionar

    Monday, May 13, 13

  • MAS EU SOU APENAS UM DESENVOLVEDOR...

    Desenvolvedores devem saber como funciona o processo de deploy de sua aplicao

    Provavelmente ser sua responsabilidade

    Simular o ambiente de produo localmente

    Apenas em empresas grandes voc vai ter um time especializado em infra

    Monday, May 13, 13

  • NO QUERO ESQUENTAR A CABEA COM DEPLOY

    Use um PAAS (Platform as a Service - Plataforma como Servio)

    Heroku

    AWS Elastic Beanstalk

    EngineYard (sem suporte a python)

    Google Appengine

    Monday, May 13, 13

  • ONDE HOSPEDAR?

    No use servidores compartilhados (shared hosting)

    Linode

    1 Gb de ram, 24 Gb storage, 2 Tb transferncia

    $20

    AWS EC2

    Rackspace

    Monday, May 13, 13

  • QUAL SISTEMA OPERACIONAL?

    Linux (GNU/Linux para no ofender ningum)

    Prefira distribuies com longo tempo de suporte

    Ubuntu Server LTS (5 anos)

    RHEL e CentOS (7 anos)

    Monday, May 13, 13

  • PORQUE NGINX E NO 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

  • POSTGRESQL OU MYSQL?

    Dois timos servidores

    Se for usar o MySQL, use a engine innodb nas tabelas

    Monday, May 13, 13

  • CONECTANDO SUA APLICAO

    FastCGI

    Geralmente a opo disponvel em servidores compartilhados

    WSGI

    Padro do python (PEP 333)

    http://allissonazevedo.com/2011/08/25/introducao-ao-wsgi/

    Monday, May 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

  • SUPERVISOR

    um sistema cliente/servidor que permite que os usurios monitorem e controlem processos em sistemas Unix like.

    No executado para substituir o init padro do sistema operacional

    Monday, May 13, 13

  • SENTRY

    Plataforma para monitorar erros em uma aplicao web

    Escrito em Django

    O cliente raven enviam as informaes para o servidor

    Substituir o comportamento padro de enviar um e-mail no caso de exceo no tratada no Django

    Monday, May 13, 13

  • OBJETIVO

    Fazer o deploy da aplicao shortener

    http://github.com/allisson/django-shortener-example

    Monday, May 13, 13

  • O QUE VAMOS USAR?

    Nginx para servir contedo esttico e redirecionar as requisies para o gunicorn

    Gunicorn como servidor de aplicao

    Supervisor para gerenciar os processos do gunicorn

    Postgresql como banco de dados

    Sentry para gerenciar possveis erros em produo

    Monday, May 13, 13

  • MO NA MASSA!

    Monday, May 13, 13

  • PERGUNTAS?

    Monday, May 13, 13