Upload
dionimf
View
18
Download
0
Embed Size (px)
DESCRIPTION
Aprendendo deploy em uma aplicação com python e Django
Citation preview
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