SlideShare uma empresa Scribd logo
Deploy de Aplicações Python
Marcos Cardoso
Grupy-SP
Marcos Cardoso
Bacharel em Ciência da
Computação - UFRJ
Desenvolvedor Pleno @ Globosat
Entusiasta de Backend, Mobile
facebook.com/vrcmarcos
github.com/vrcmarcos
linkedin.com/vrcmarcos
vrcmarcos@gmail.com
slideshare.net/vrcmarcos
Preparando o projeto para o deploy
1. O código deve estar versionado
2. O código deve possuir testes
3. Os testes não podem falhar
4. As dependências devem estar isoladas
O pipeline de deploy
1. Pegar o código do repositório (Github, Bitbucket, Gitlab, …)
2. Atualizar dependências
3. Rodar as possíveis migrates de banco
4. Executar os testes
5. Taggear o código
6. Acessar a máquina de produção e pegar a tag criada anteriormente
7. Atualizar dependências na máquina de produção
8. Rodar as possíveis migrates de banco em produção
Mas como? Continuous Integration!
Usaremos Jenkins para automatizar nossas tarefas
Hands on!
Preparação do ambiente
1. Fork do repositório de teste: https://github.com/vrcmarcos/python-jenkins
2. Em produção:
a. Dependências: python, git, pip, virtualenv e virtualenvwrapper
b. Criar as pastas /www/python e /www/venvs
3. Baixar o Jenkins (http://jenkins.io)
i. Instalar os plugins: Github plugin, promoted builds plugin, SSH Plugin, ShiningPanda Plugin
ii. Entrar em Manage Jenkins > Configure System:
1. Adicionar o servidor na área SSH remote hosts. Caso sua máquina utiliza OpenSSH >=
6.7, baixar o JAR https://mvnrepository.com/artifact/com.jcraft/jsch/0.1.54 e trocar na
Criando o primeiro Job
1. Clicar em New Item no Jenkins
2. Configurações:
a. Source Code Management
i. Additional Behaviours: Shallow clone depth = 1, Do not fetch tags = true
b. Build
i. Virtualenv Builder
1. pip install -r requirements.txt
2. python manage.py migrate
3. python manage.py test
c. Post-build Actions
Promovendo o build
1. Nas configurações do Job:
a. General:
i. Promote builds when…
1. Promotion process: Name = PROD
2. Criteria: Promote immediatly once the build is complete
3. Actions: Execute shell script on remote host using ssh =
https://gist.github.com/vrcmarcos/2a16bf0ad7a701f0f7fc3040779cc6bb
Duvidas?
Obrigado!
facebook.com/vrcmarcos
github.com/vrcmarcos
linkedin.com/vrcmarcos
vrcmarcos@gmail.com
slideshare.net/vrcmarcos

Mais conteúdo relacionado

Mais procurados (20)

PDF
Integração Continua - Jenkins
João Carlos Ottobboni
 
PDF
Lab python django - parte 2 - python + virtualenv
Pedro Fernandes Vieira
 
PDF
Gerenciando o Zabbix com o SaltStack
Aécio Pires
 
PDF
Git e Github para Iniciantes
Loiane Groner
 
PDF
Git that like a boss - Dos comandos básicos aos branches.
Hélio Medeiros
 
PPTX
Testing laravel
João Leonardo Lemos Buzzo
 
PPTX
Testes funcionais com frank
Márcio Habigzang Brufatto
 
PDF
Hands on de desenvolvimento rápido de apllicações java ee com forge
Rafael Pestano
 
PDF
Git that like a boss - Colaborando com GITHUB
Hélio Medeiros
 
PDF
Desenvolvimento Produtivo com Spring Roo
Eder Magalhães
 
PDF
UAI Test - Introdução Prática ao Jenkins
Stefan Teixeira
 
PDF
Desvendando Git e Github - WoMakersCode Bootcamp @ SPTW
Morganna Giovanelli de Souza
 
PDF
TDC2016POA | Trilha Cloud Computing - Kubernetes para Desenvolvedores Docker
tdc-globalcode
 
PDF
Git ...ftw!
Fabian Carlos
 
PDF
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
tdc-globalcode
 
PPTX
Cloud Computing e Integração Contínua com o Windows Azure
Grupo de Testes Carioca
 
PDF
Github - Escrevendo código e compartilhando conhecimento
Hélio Medeiros
 
PPT
Scrum Gathering Rio 2014
Victor Pantoja
 
PDF
Treinamento git - Papos RBSDev
Hélio Medeiros
 
PDF
Spring roo - Criando aplicações Java Web em poucos minutos
ledsifes
 
Integração Continua - Jenkins
João Carlos Ottobboni
 
Lab python django - parte 2 - python + virtualenv
Pedro Fernandes Vieira
 
Gerenciando o Zabbix com o SaltStack
Aécio Pires
 
Git e Github para Iniciantes
Loiane Groner
 
Git that like a boss - Dos comandos básicos aos branches.
Hélio Medeiros
 
Testes funcionais com frank
Márcio Habigzang Brufatto
 
Hands on de desenvolvimento rápido de apllicações java ee com forge
Rafael Pestano
 
Git that like a boss - Colaborando com GITHUB
Hélio Medeiros
 
Desenvolvimento Produtivo com Spring Roo
Eder Magalhães
 
UAI Test - Introdução Prática ao Jenkins
Stefan Teixeira
 
Desvendando Git e Github - WoMakersCode Bootcamp @ SPTW
Morganna Giovanelli de Souza
 
TDC2016POA | Trilha Cloud Computing - Kubernetes para Desenvolvedores Docker
tdc-globalcode
 
Git ...ftw!
Fabian Carlos
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
tdc-globalcode
 
Cloud Computing e Integração Contínua com o Windows Azure
Grupo de Testes Carioca
 
Github - Escrevendo código e compartilhando conhecimento
Hélio Medeiros
 
Scrum Gathering Rio 2014
Victor Pantoja
 
Treinamento git - Papos RBSDev
Hélio Medeiros
 
Spring roo - Criando aplicações Java Web em poucos minutos
ledsifes
 

Semelhante a Deploy de aplicações python (7)

PDF
DevOps com Python
Henrique Gabriel Gularte Pereira
 
PPTX
Deploy automático em projeto PHP - PHPSPIMA 2016
Felipe Klerk Signorini
 
PDF
Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Ismael Stahelin
 
PPTX
De 0 a DevOps
Amazon Web Services LATAM
 
PDF
Por que jenkins se posso usar deployer php
Michael Douglas
 
PDF
Sou preguiçoso! Eu automatizo meu dia-a-dia, sem ser um guru de infra
rcmoutinho
 
PDF
Django deploy - Como servir aplicações Django em produção
Artur Felipe Sousa
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Felipe Klerk Signorini
 
Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Ismael Stahelin
 
Por que jenkins se posso usar deployer php
Michael Douglas
 
Sou preguiçoso! Eu automatizo meu dia-a-dia, sem ser um guru de infra
rcmoutinho
 
Django deploy - Como servir aplicações Django em produção
Artur Felipe Sousa
 
Anúncio

Deploy de aplicações python

  • 1. Deploy de Aplicações Python Marcos Cardoso Grupy-SP
  • 2. Marcos Cardoso Bacharel em Ciência da Computação - UFRJ Desenvolvedor Pleno @ Globosat Entusiasta de Backend, Mobile facebook.com/vrcmarcos github.com/vrcmarcos linkedin.com/vrcmarcos [email protected] slideshare.net/vrcmarcos
  • 3. Preparando o projeto para o deploy 1. O código deve estar versionado 2. O código deve possuir testes 3. Os testes não podem falhar 4. As dependências devem estar isoladas
  • 4. O pipeline de deploy 1. Pegar o código do repositório (Github, Bitbucket, Gitlab, …) 2. Atualizar dependências 3. Rodar as possíveis migrates de banco 4. Executar os testes 5. Taggear o código 6. Acessar a máquina de produção e pegar a tag criada anteriormente 7. Atualizar dependências na máquina de produção 8. Rodar as possíveis migrates de banco em produção
  • 5. Mas como? Continuous Integration! Usaremos Jenkins para automatizar nossas tarefas
  • 7. Preparação do ambiente 1. Fork do repositório de teste: https://github.com/vrcmarcos/python-jenkins 2. Em produção: a. Dependências: python, git, pip, virtualenv e virtualenvwrapper b. Criar as pastas /www/python e /www/venvs 3. Baixar o Jenkins (http://jenkins.io) i. Instalar os plugins: Github plugin, promoted builds plugin, SSH Plugin, ShiningPanda Plugin ii. Entrar em Manage Jenkins > Configure System: 1. Adicionar o servidor na área SSH remote hosts. Caso sua máquina utiliza OpenSSH >= 6.7, baixar o JAR https://mvnrepository.com/artifact/com.jcraft/jsch/0.1.54 e trocar na
  • 8. Criando o primeiro Job 1. Clicar em New Item no Jenkins 2. Configurações: a. Source Code Management i. Additional Behaviours: Shallow clone depth = 1, Do not fetch tags = true b. Build i. Virtualenv Builder 1. pip install -r requirements.txt 2. python manage.py migrate 3. python manage.py test c. Post-build Actions
  • 9. Promovendo o build 1. Nas configurações do Job: a. General: i. Promote builds when… 1. Promotion process: Name = PROD 2. Criteria: Promote immediatly once the build is complete 3. Actions: Execute shell script on remote host using ssh = https://gist.github.com/vrcmarcos/2a16bf0ad7a701f0f7fc3040779cc6bb