SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
DEPLOY COMPLETO DE UMA
APLICAÇÃO DJANGO
Allisson Azevedo
Monday, May 13, 13
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
Monday, May 13, 13
Monday, May 13, 13
DEPLOY
Colocar sua aplicação em produção
“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 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
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
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
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
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
POSTGRESQL OU MYSQL?
Dois ótimos servidores
Se for usar o MySQL, use a engine innodb nas tabelas
Monday, May 13, 13
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
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
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
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
OBJETIVO
Fazer o deploy da aplicação shortener
http://github.com/allisson/django-shortener-example
Monday, May 13, 13
O QUEVAMOS 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
MÃO NA MASSA!
Monday, May 13, 13
PERGUNTAS?
Monday, May 13, 13

Weitere ähnliche Inhalte

Was ist angesagt?

Tchelinux: Go Web!
Tchelinux:  Go Web!Tchelinux:  Go Web!
Tchelinux: Go Web!Lucas L.
 
Apresentação Camtasia Studio 7
Apresentação Camtasia Studio 7Apresentação Camtasia Studio 7
Apresentação Camtasia Studio 7Saldit Software
 
Como guardar os posts de um blog
Como guardar os posts de um blogComo guardar os posts de um blog
Como guardar os posts de um blogalfjmrodrigues
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorGustavo Bellini Bigardi
 
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.Nícholas André
 
Seo - Conheça os 10 erros que você não pode cometer
Seo - Conheça os 10 erros que você não pode cometerSeo - Conheça os 10 erros que você não pode cometer
Seo - Conheça os 10 erros que você não pode cometerAdriano Oliveira
 
Desmistificando um Ambiente de Desenvolvimento WEB com Vagrant
Desmistificando um Ambiente de Desenvolvimento WEB com VagrantDesmistificando um Ambiente de Desenvolvimento WEB com Vagrant
Desmistificando um Ambiente de Desenvolvimento WEB com VagrantLuis Henrique Costa
 
WordPress Multisite: O que são, onde vivem, do que se alimentam?
WordPress Multisite: O que são, onde vivem, do que se alimentam?WordPress Multisite: O que são, onde vivem, do que se alimentam?
WordPress Multisite: O que são, onde vivem, do que se alimentam?Rudá Almeida
 
O novo ASP.NET - Junho/2016
O novo ASP.NET - Junho/2016O novo ASP.NET - Junho/2016
O novo ASP.NET - Junho/2016Renato Groff
 

Was ist angesagt? (11)

Tchelinux: Go Web!
Tchelinux:  Go Web!Tchelinux:  Go Web!
Tchelinux: Go Web!
 
O Windows 10
O Windows 10O Windows 10
O Windows 10
 
Apresentação Camtasia Studio 7
Apresentação Camtasia Studio 7Apresentação Camtasia Studio 7
Apresentação Camtasia Studio 7
 
Industria 4.0
Industria 4.0Industria 4.0
Industria 4.0
 
Como guardar os posts de um blog
Como guardar os posts de um blogComo guardar os posts de um blog
Como guardar os posts de um blog
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com Blazor
 
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
 
Seo - Conheça os 10 erros que você não pode cometer
Seo - Conheça os 10 erros que você não pode cometerSeo - Conheça os 10 erros que você não pode cometer
Seo - Conheça os 10 erros que você não pode cometer
 
Desmistificando um Ambiente de Desenvolvimento WEB com Vagrant
Desmistificando um Ambiente de Desenvolvimento WEB com VagrantDesmistificando um Ambiente de Desenvolvimento WEB com Vagrant
Desmistificando um Ambiente de Desenvolvimento WEB com Vagrant
 
WordPress Multisite: O que são, onde vivem, do que se alimentam?
WordPress Multisite: O que são, onde vivem, do que se alimentam?WordPress Multisite: O que são, onde vivem, do que se alimentam?
WordPress Multisite: O que são, onde vivem, do que se alimentam?
 
O novo ASP.NET - Junho/2016
O novo ASP.NET - Junho/2016O novo ASP.NET - Junho/2016
O novo ASP.NET - Junho/2016
 

Andere mochten auch

Tarefas Assíncronas com Django e Celery
Tarefas Assíncronas com Django e CeleryTarefas Assíncronas com Django e Celery
Tarefas Assíncronas com Django e CeleryAllisson Azevedo
 
Consumindo API's OAuth{1,2} com Python
Consumindo API's OAuth{1,2} com PythonConsumindo API's OAuth{1,2} com Python
Consumindo API's OAuth{1,2} com PythonAllisson Azevedo
 
Introdução a linguagem Go
Introdução a linguagem GoIntrodução a linguagem Go
Introdução a linguagem GoAllisson Azevedo
 
Otimizando sites com o nosql redis
Otimizando sites com o nosql redisOtimizando sites com o nosql redis
Otimizando sites com o nosql redisAllisson Azevedo
 
Construindo um Servidor Web com GO
Construindo um Servidor Web com GOConstruindo um Servidor Web com GO
Construindo um Servidor Web com GOBeto Muniz
 
Django class based views for beginners
Django class based views for beginnersDjango class based views for beginners
Django class based views for beginnersSpin Lai
 
Customizando Admin do Django
Customizando Admin do DjangoCustomizando Admin do Django
Customizando Admin do DjangoGustavo Carvalho
 
"Go" Contra ou a favor? Já vale a pena investir nessa linguagem?
"Go" Contra ou a favor? Já vale a pena investir nessa linguagem?"Go" Contra ou a favor? Já vale a pena investir nessa linguagem?
"Go" Contra ou a favor? Já vale a pena investir nessa linguagem?José Yoshiriro
 
Lógica clássica e suas aplicações em sistema de recomendação
Lógica clássica e suas aplicações em sistema de recomendaçãoLógica clássica e suas aplicações em sistema de recomendação
Lógica clássica e suas aplicações em sistema de recomendaçãoIsvaldo Souza
 
Integrando aplicações com redis
Integrando aplicações com redisIntegrando aplicações com redis
Integrando aplicações com redisFelipe Monteiro
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftGetup Cloud
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open sourceRodrigo Aurélio
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Otávio Santana
 
Redis – What, Why, When, How?
Redis – What, Why, When, How?Redis – What, Why, When, How?
Redis – What, Why, When, How?Kinn Julião
 

Andere mochten auch (20)

Docker + Django
Docker + DjangoDocker + Django
Docker + Django
 
Tarefas Assíncronas com Django e Celery
Tarefas Assíncronas com Django e CeleryTarefas Assíncronas com Django e Celery
Tarefas Assíncronas com Django e Celery
 
Consumindo API's OAuth{1,2} com Python
Consumindo API's OAuth{1,2} com PythonConsumindo API's OAuth{1,2} com Python
Consumindo API's OAuth{1,2} com Python
 
Introdução a linguagem Go
Introdução a linguagem GoIntrodução a linguagem Go
Introdução a linguagem Go
 
Otimizando sites com o nosql redis
Otimizando sites com o nosql redisOtimizando sites com o nosql redis
Otimizando sites com o nosql redis
 
Construindo um Servidor Web com GO
Construindo um Servidor Web com GOConstruindo um Servidor Web com GO
Construindo um Servidor Web com GO
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
 
Conhecendo Go
Conhecendo GoConhecendo Go
Conhecendo Go
 
Python Nordeste 2016
Python Nordeste 2016Python Nordeste 2016
Python Nordeste 2016
 
Django class based views for beginners
Django class based views for beginnersDjango class based views for beginners
Django class based views for beginners
 
Customizando Admin do Django
Customizando Admin do DjangoCustomizando Admin do Django
Customizando Admin do Django
 
"Go" Contra ou a favor? Já vale a pena investir nessa linguagem?
"Go" Contra ou a favor? Já vale a pena investir nessa linguagem?"Go" Contra ou a favor? Já vale a pena investir nessa linguagem?
"Go" Contra ou a favor? Já vale a pena investir nessa linguagem?
 
Wiki-wiki S/A
Wiki-wiki S/AWiki-wiki S/A
Wiki-wiki S/A
 
Lógica clássica e suas aplicações em sistema de recomendação
Lógica clássica e suas aplicações em sistema de recomendaçãoLógica clássica e suas aplicações em sistema de recomendação
Lógica clássica e suas aplicações em sistema de recomendação
 
Integrando aplicações com redis
Integrando aplicações com redisIntegrando aplicações com redis
Integrando aplicações com redis
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShift
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra)
 
Redis – What, Why, When, How?
Redis – What, Why, When, How?Redis – What, Why, When, How?
Redis – What, Why, When, How?
 

Ähnlich wie Deploy completo de uma aplicação Django

Desenvolvimento Web com Django
Desenvolvimento Web com DjangoDesenvolvimento Web com Django
Desenvolvimento Web com DjangoAllisson Azevedo
 
Infraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e McollectiveInfraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e McollectiveJose Augusto Carvalho
 
Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Jose Augusto Carvalho
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develJose Augusto Carvalho
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoArtur Felipe Sousa
 
Ferramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilFerramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilJose Augusto Carvalho
 
Agile & Open Source: A Experiência do Framework Demoiselle
Agile & Open Source: A Experiência do Framework DemoiselleAgile & Open Source: A Experiência do Framework Demoiselle
Agile & Open Source: A Experiência do Framework DemoiselleSerge Rehem
 
01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdf01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdfGustavomacieldesouza2
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B Rguestb9d145
 
Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Renzo Nuccitelli
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Simples pelo simples google android com robo guice
Simples pelo simples   google android com robo guiceSimples pelo simples   google android com robo guice
Simples pelo simples google android com robo guiceDiogo Souza
 
Firefox os campusparty
Firefox os campuspartyFirefox os campusparty
Firefox os campuspartyFábio Magnoni
 
Plone - Poderoso e flexível
Plone - Poderoso e flexívelPlone - Poderoso e flexível
Plone - Poderoso e flexívelLucas Aquino
 
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Eduardo de Lucena Falcão
 
Google app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyGoogle app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyPET Computação
 

Ähnlich wie Deploy completo de uma aplicação Django (20)

Desenvolvimento Web com Django
Desenvolvimento Web com DjangoDesenvolvimento Web com Django
Desenvolvimento Web com Django
 
Fabric
FabricFabric
Fabric
 
Infraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e McollectiveInfraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e Mcollective
 
Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e devel
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produção
 
Ferramentas para infraestrutura ágil
Ferramentas para infraestrutura ágilFerramentas para infraestrutura ágil
Ferramentas para infraestrutura ágil
 
Agile & Open Source: A Experiência do Framework Demoiselle
Agile & Open Source: A Experiência do Framework DemoiselleAgile & Open Source: A Experiência do Framework Demoiselle
Agile & Open Source: A Experiência do Framework Demoiselle
 
Titanium
TitaniumTitanium
Titanium
 
01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdf01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdf
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
 
Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Web Services
Web ServicesWeb Services
Web Services
 
Simples pelo simples google android com robo guice
Simples pelo simples   google android com robo guiceSimples pelo simples   google android com robo guice
Simples pelo simples google android com robo guice
 
Firefox os campusparty
Firefox os campuspartyFirefox os campusparty
Firefox os campusparty
 
Plone - Poderoso e flexível
Plone - Poderoso e flexívelPlone - Poderoso e flexível
Plone - Poderoso e flexível
 
Python e Golang - Parte 1
Python e Golang - Parte 1Python e Golang - Parte 1
Python e Golang - Parte 1
 
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
 
Google app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the uglyGoogle app engine para lean startups: the good, the bad and the ugly
Google app engine para lean startups: the good, the bad and the ugly
 

Mehr von Allisson Azevedo

Programação Assíncrona com Asyncio
Programação Assíncrona com AsyncioProgramação Assíncrona com Asyncio
Programação Assíncrona com AsyncioAllisson Azevedo
 
Construindo um micro framework web em Python
Construindo um micro framework web em PythonConstruindo um micro framework web em Python
Construindo um micro framework web em PythonAllisson Azevedo
 
Ecossistema Python Para Web
Ecossistema Python Para WebEcossistema Python Para Web
Ecossistema Python Para WebAllisson Azevedo
 
Empacotamento Rpm Na Pratica
Empacotamento Rpm Na PraticaEmpacotamento Rpm Na Pratica
Empacotamento Rpm Na PraticaAllisson Azevedo
 
Criando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O FedoraCriando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O FedoraAllisson Azevedo
 
Palestra CouchDB III ENSOL
Palestra CouchDB III ENSOLPalestra CouchDB III ENSOL
Palestra CouchDB III ENSOLAllisson Azevedo
 
Ruby on Rails Enecomp 2008
Ruby on Rails Enecomp 2008Ruby on Rails Enecomp 2008
Ruby on Rails Enecomp 2008Allisson Azevedo
 
Desenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto FedoraDesenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto FedoraAllisson Azevedo
 

Mehr von Allisson Azevedo (10)

Programação Assíncrona com Asyncio
Programação Assíncrona com AsyncioProgramação Assíncrona com Asyncio
Programação Assíncrona com Asyncio
 
Construindo um micro framework web em Python
Construindo um micro framework web em PythonConstruindo um micro framework web em Python
Construindo um micro framework web em Python
 
Ecossistema Python Para Web
Ecossistema Python Para WebEcossistema Python Para Web
Ecossistema Python Para Web
 
Palestra iv-ensol-nosql
Palestra iv-ensol-nosqlPalestra iv-ensol-nosql
Palestra iv-ensol-nosql
 
Empacotamento Rpm Na Pratica
Empacotamento Rpm Na PraticaEmpacotamento Rpm Na Pratica
Empacotamento Rpm Na Pratica
 
Criando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O FedoraCriando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O Fedora
 
Palestra CouchDB III ENSOL
Palestra CouchDB III ENSOLPalestra CouchDB III ENSOL
Palestra CouchDB III ENSOL
 
Ruby on Rails Enecomp 2008
Ruby on Rails Enecomp 2008Ruby on Rails Enecomp 2008
Ruby on Rails Enecomp 2008
 
Desenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto FedoraDesenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto Fedora
 
RESTful Web Services
RESTful Web ServicesRESTful Web Services
RESTful Web Services
 

Kürzlich hochgeladen

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 

Kürzlich hochgeladen (9)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

Deploy completo de uma aplicação Django

  • 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
  • 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 QUEVAMOS 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