O documento fornece instruções sobre como implantar e distribuir aplicações Django em um ambiente de produção, discutindo o uso de servidores web como Nginx e Gunicorn, gerenciadores de processo como Supervisor e ferramentas de implantação automatizada como Fabric.
Um bom fluxo de trabalho para desenvolvimento web passa por 3 etapas: montar um servidor local adequado, usar ferramentas que te ajudem a escrever código de qualidade e saber como encontrar bugs de forma ágil e precisa. Nessa palestra vou demonstrar as ferramentas open-source que uso todos os dias para desenvolver com rapidez, qualidade e segurança: WP Local Docker, Xdebug e os padrões de projeto da 10up.
Provavelmente se você trabalha com desenvolvimento já deve ter ouvido falar em Grunt e Bower. Mas você sabe qual a função de cada um? Pra que servem? Nessa rápida talk iremos abordar os conceitos e diferenças entre ambos, além de dicas de uso para que você e seu time não caiam em pegadinhas que podem atrapalhar o desenvolvimento.
Alta Performance de Aplicações PHP com NginxThiago Paes
Segunda versão da minha palestra sobre alto desempenho de aplicações web em PHP utilizando o servidor HTTP Nginx ministrada no Minicursos e Palestras do Casin – 2ª Edição
Um bom fluxo de trabalho para desenvolvimento web passa por 3 etapas: montar um servidor local adequado, usar ferramentas que te ajudem a escrever código de qualidade e saber como encontrar bugs de forma ágil e precisa. Nessa palestra vou demonstrar as ferramentas open-source que uso todos os dias para desenvolver com rapidez, qualidade e segurança: WP Local Docker, Xdebug e os padrões de projeto da 10up.
Provavelmente se você trabalha com desenvolvimento já deve ter ouvido falar em Grunt e Bower. Mas você sabe qual a função de cada um? Pra que servem? Nessa rápida talk iremos abordar os conceitos e diferenças entre ambos, além de dicas de uso para que você e seu time não caiam em pegadinhas que podem atrapalhar o desenvolvimento.
Alta Performance de Aplicações PHP com NginxThiago Paes
Segunda versão da minha palestra sobre alto desempenho de aplicações web em PHP utilizando o servidor HTTP Nginx ministrada no Minicursos e Palestras do Casin – 2ª Edição
Apresentação feita no Meetup de Vagrant em São Paulo #2, https://joind.in/event/view/4250.
Vídeo da apresentação disponível em: https://www.youtube.com/watch?v=niQvLXI1z9I
Algum tempo atrás estar preparado para um milhão de usuários simultâneos era somente para as grandes empresas como Google, twitter ou facebook. Mas com a explosão da Web 2.0 isso também é uma preocupação para qualquer que tenha um site de notícias ou mesmo um ecommerce. Somado as atualizações cada vez mais frenéticas (tecnológicas ou de regras denegócio) para fazê-lo sobreviver a concorrência acaba-se desprezando boas práticas para atender a audiência cada vez mais maior. Então, seu site está preparada para um milhão de usuários?
A cada dia surge novas tecnologias para produção de sistemas/site
tornando difícil acompanhar todas elas ou escolher as melhores. Porém
é possível escolher algumas técnicas e práticas importantes para
internet e seu ecossistema. A Web 2.0, expansão do comércio
eletrônico, redes sociais, a "Internet das Coisas" e outros buzzwords
tornam as escolhas tecnológicas cada vez mais difíceis de serem
tomadas pela enormidade de opções. Mas é possível considerar algumas
coisas para que um site/sistema proporcione uma boa experiência para
seu usuário e alguma vida para as equipes de TI.
http://dockerizando.labianchin.me/ - link oficial da apresentação
Apresentação prática de como usar node numa aplicação node e boas práticas de imagens docker.
Apresentado na Meetup de Docker POA em Novembro de 2015: http://www.meetup.com/Docker-Porto-Alegre/events/226813366/
Apresentação feita no Meetup de Vagrant em São Paulo #2, https://joind.in/event/view/4250.
Vídeo da apresentação disponível em: https://www.youtube.com/watch?v=niQvLXI1z9I
Algum tempo atrás estar preparado para um milhão de usuários simultâneos era somente para as grandes empresas como Google, twitter ou facebook. Mas com a explosão da Web 2.0 isso também é uma preocupação para qualquer que tenha um site de notícias ou mesmo um ecommerce. Somado as atualizações cada vez mais frenéticas (tecnológicas ou de regras denegócio) para fazê-lo sobreviver a concorrência acaba-se desprezando boas práticas para atender a audiência cada vez mais maior. Então, seu site está preparada para um milhão de usuários?
A cada dia surge novas tecnologias para produção de sistemas/site
tornando difícil acompanhar todas elas ou escolher as melhores. Porém
é possível escolher algumas técnicas e práticas importantes para
internet e seu ecossistema. A Web 2.0, expansão do comércio
eletrônico, redes sociais, a "Internet das Coisas" e outros buzzwords
tornam as escolhas tecnológicas cada vez mais difíceis de serem
tomadas pela enormidade de opções. Mas é possível considerar algumas
coisas para que um site/sistema proporcione uma boa experiência para
seu usuário e alguma vida para as equipes de TI.
http://dockerizando.labianchin.me/ - link oficial da apresentação
Apresentação prática de como usar node numa aplicação node e boas práticas de imagens docker.
Apresentado na Meetup de Docker POA em Novembro de 2015: http://www.meetup.com/Docker-Porto-Alegre/events/226813366/
Sempre buscando atuar com inteligência na área de desenvolvimento, como DevOps, arquiteto, líder de projeto e desenvolvedor fullstack, sempre visando a melhor implementação (tecnologia certa para a tarefa certa), análise de custo benefício, eficiência, arquitetura macro de serviços, fluxograma de desenvolvimento, automatização de tarefas e controle de qualidade e principalmente valor ao negócio.
Qualidade em projetos PHP - PHPSC Conf 2011Luís Cobucci
Na nossa vida é importante nos preocuparmos com nossa saúde, e DEVEMOS fazer o mesmo com a saúde dos nossos softwares.
Você verá aqui as principais ferramentas para medir qualidade e encontrar alguns tumores nos seus projetos!
Gravação (vídeo) da palestra: https://www.infoq.com/br/presentations/depurando-aplicacoes-php-like-a-boss
Palestra apresentada nos seguintes eventos:
- DrupalCamp Campinas, em 25/06/2016;
- The Developers Conference (TDC) São Paulo, em 09/07/2016;
- PHP Conference Brazil, em 09/12/2016;
- PHPSP + Locaweb #3, em 18/02/2017.
Um pouco sobre OpenShift e como publicar e escalar uma aplicação Python baseado no volume de acessos.
Esta apresentação foi feita em um live hangout que pode ser assistido em http://goo.gl/wYylfj
Nessa apresentação mostro alguns conceitos básicos para quem quer iniciar com Django utilizando o Docker! É claro que será melhorado, o farei em breve, procurei citar alguns conceitos que tenho utilizado e podem ser úteis para quem quer iniciar com Django e Docker! Estou aberto à críticas e sugestões.
Descrição introdutória de uma arquitetura para o desenvolvimento de aplicações web com funcionalidades offline.
Tecnologias envolvidas: HTML5, Javascript, Handlebards, etc.
Semelhante a Django deploy - Como servir aplicações Django em produção (20)
6. DJANGO DEPLOY Web Server (HTTP)
• Muito leve
• Ótimo servidor de estáticos (html,css,js,imgs)
• Cache
• Proxy reverso
• Redirects/Rewrites
7. DJANGO DEPLOY
• Mais leve
• Não serve dinâmico
• URI Based Interpretation
(locations)
•Mais fácil de instalar e
configurar
X • Mais pesado
• Serve dinâmico
• File based interpretation
Web Server (HTTP)
8. DJANGO DEPLOY
nginx.conf (vitualhost)
upstream minha_app {
server 127.0.0.1:8001 fail_timeout=0;
}
server {
listen 80;
server_name minha_app.com.br;
access_log /var/webapps/minha-app/logs/nginx-access.log;
error_log /var/webapps/minha-app/logs/nginx-error.log;
location /static/ {
alias /var/webapps/minha-app/static/;
}
location /media/ {
alias /var/webapps/minha-app/media/;
}
location /robots.txt {
alias /var/webapps/minha-app/files/robots.txt;
}
location / {
try_files $uri @proxy_to_app;
}
location @proxy_to_app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://minha_app;
}
}
Web Server (HTTP)
9. DJANGO DEPLOY Application Sever (WSGI)
WSGI?
Web Server Gateway Interface
Especificação python que descreve a
comunicação entre web server e web
applications.
PEP 333
13. DJANGO DEPLOY Gerenciadores de processo
Como iniciar/parar a aplicação toda vez que eu
fizer um deploy?
Não pode ser na mão né?
E se processo cair?
E se o servidor inteiro cair?
14. DJANGO DEPLOY Gerenciadores de processo
Supervisord
Permite controlar processos em sistemas UNIX-like
supervisord.conf
[program:minha_app]
command=gunicorn minha_app.wsgi:application --workers 2 -b 127.0.0.1:8000
user=ubuntu
stdout_logfile=/var/webapps/minha-app/logs/gunicorn.log
stderr_logfile=/var/webapps/minha-app/logs/gunicorn_error.log
environment=LANG="pt_BR.UTF-8",LC_ALL="pt_BR.UTF-8",LC_LANG="pt_BR.UTF-8"
autostart=true
autorestart=true
15. DJANGO DEPLOY
• Upload do projeto
• Atualização de dependências (libs de terceiros)
• Coleta de estáticos
• Rodar migrations de BD
• Restartar aplicação
Processo de deploy
18. DJANGO DEPLOY Estrutura de arquivos
Taaaaah blzz!!!
Vou precisar criar essa estrutura
inicialmente na mão?
E pra fazer o deploy toda vez que
integrar algo no código?
Vai na mão também?
20. DJANGO DEPLOY Deploy
Ferramenta python para automatização de deploy ou
qualquer tarefa sysadmin utilizando SSH
• Simples
• Tarefas são definidas como funções python
• Command line
• Configuração de múltiplos hosts
23. DJANGO DEPLOY
Obrigado!!!
Artur Felipe de Sousa
Software Developer - globo.com
Entretenimento
Como me encontrar
https://twitter.com/arturfsousa
https://github.com/arturfelipe
arturfelipe.sousa@gmail.com
FIM
https://github.com/arturfelipe/django-deploy