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

PDF
Integração contínua em PHP com Jenkins
PDF
Jenkins - livre-se da parte chata do Java
PPTX
Dev ops integração contínua com jenkins
PDF
Jenkins
ODP
Botando o Jenkins para rodar seus testes
PDF
Jenkins, o CI ao seu dispor
PPTX
Jenkins integrando e estendendo.
PDF
Virtualenv e Pip
Integração contínua em PHP com Jenkins
Jenkins - livre-se da parte chata do Java
Dev ops integração contínua com jenkins
Jenkins
Botando o Jenkins para rodar seus testes
Jenkins, o CI ao seu dispor
Jenkins integrando e estendendo.
Virtualenv e Pip

Mais procurados (20)

PDF
Integração Continua - Jenkins
PDF
Lab python django - parte 2 - python + virtualenv
PDF
Gerenciando o Zabbix com o SaltStack
PDF
Git e Github para Iniciantes
PDF
Git that like a boss - Dos comandos básicos aos branches.
PPTX
PPTX
Testes funcionais com frank
PDF
Hands on de desenvolvimento rápido de apllicações java ee com forge
PDF
Git that like a boss - Colaborando com GITHUB
PDF
Desenvolvimento Produtivo com Spring Roo
PDF
UAI Test - Introdução Prática ao Jenkins
PDF
Desvendando Git e Github - WoMakersCode Bootcamp @ SPTW
PDF
TDC2016POA | Trilha Cloud Computing - Kubernetes para Desenvolvedores Docker
PDF
Git ...ftw!
PDF
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
PPTX
Cloud Computing e Integração Contínua com o Windows Azure
PDF
Github - Escrevendo código e compartilhando conhecimento
PPT
Scrum Gathering Rio 2014
PDF
Treinamento git - Papos RBSDev
PDF
Spring roo - Criando aplicações Java Web em poucos minutos
Integração Continua - Jenkins
Lab python django - parte 2 - python + virtualenv
Gerenciando o Zabbix com o SaltStack
Git e Github para Iniciantes
Git that like a boss - Dos comandos básicos aos branches.
Testes funcionais com frank
Hands on de desenvolvimento rápido de apllicações java ee com forge
Git that like a boss - Colaborando com GITHUB
Desenvolvimento Produtivo com Spring Roo
UAI Test - Introdução Prática ao Jenkins
Desvendando Git e Github - WoMakersCode Bootcamp @ SPTW
TDC2016POA | Trilha Cloud Computing - Kubernetes para Desenvolvedores Docker
Git ...ftw!
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
Cloud Computing e Integração Contínua com o Windows Azure
Github - Escrevendo código e compartilhando conhecimento
Scrum Gathering Rio 2014
Treinamento git - Papos RBSDev
Spring roo - Criando aplicações Java Web em poucos minutos
Anúncio

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

PDF
Treinamento Android Embarcado
PPTX
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
PPTX
Importância de Testes Automatizados para Continuous Delivery & DevOps
ODP
Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas...
PDF
Integração contínua com Jenkins
PDF
Android DevConference - Automatizando testes sem sofrimento
PDF
QConRio 2014 - Uso de Headless Browsers em Testes Automatizados
PDF
Ideais Cowabunga - Headless Testing com GhostDriver
PDF
TDC2016POA | Trilha Web - Realtime applications com Socket.io
PPTX
Entrega contínua com arquitetura distribuida
PPTX
[DevOps Carioca] Testes Automatizados
PPTX
Testes automatizados.pptx
PDF
Colaboração em Projetos FLOSS: CakePHP
PDF
Introdução ao Git - fs2w - GrupySP
PDF
Seminário de Desenvolvimento Mobile - Etec Cafelândia
PDF
Interoperabilidade com .NET em ambiente Mainframe
PDF
Escalando apps com React e Type Script e SOLID
PPTX
Cake php selecaodeprojetos-apres-em-modelo
PPT
PDF
Richfaces 4 - Desenvolvimento JSF mais rico
Treinamento Android Embarcado
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Importância de Testes Automatizados para Continuous Delivery & DevOps
Fora Sobrinhos! Ecossistema para o desenvolvimento de aplicações corporativas...
Integração contínua com Jenkins
Android DevConference - Automatizando testes sem sofrimento
QConRio 2014 - Uso de Headless Browsers em Testes Automatizados
Ideais Cowabunga - Headless Testing com GhostDriver
TDC2016POA | Trilha Web - Realtime applications com Socket.io
Entrega contínua com arquitetura distribuida
[DevOps Carioca] Testes Automatizados
Testes automatizados.pptx
Colaboração em Projetos FLOSS: CakePHP
Introdução ao Git - fs2w - GrupySP
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Interoperabilidade com .NET em ambiente Mainframe
Escalando apps com React e Type Script e SOLID
Cake php selecaodeprojetos-apres-em-modelo
Richfaces 4 - Desenvolvimento JSF mais rico
Anúncio

Último (9)

PDF
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
PPTX
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
PPTX
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
PDF
Metodologias ágeis - Slides - aulas 1 a 5.pdf
PDF
Certificado de Conclusão Jornada Inteligência Artificial
PPTX
TURMA modelo de modelo apresentação 4DE.pptx
PPTX
AULA DE HTML E CSS PARA INICIANTES EM INFORMÁTICA
PDF
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
PDF
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
Metodologias ágeis - Slides - aulas 1 a 5.pdf
Certificado de Conclusão Jornada Inteligência Artificial
TURMA modelo de modelo apresentação 4DE.pptx
AULA DE HTML E CSS PARA INICIANTES EM INFORMÁTICA
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf

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 vrcmarcos@gmail.com 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