Python Brasil[9] - Entrega Contínua

670 views

Published on

Slides de Palestra e Treinamento feitos na Python Brasil[9] sobre Entrega Contínua utilizando Google App Engine

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
670
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
12
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Python Brasil[9] - Entrega Contínua

  1. 1. Entrega Contínua - Dev Dênis Costa e Renzo Nuccitelli
  2. 2. Bio - Renzo Nuccitelli Engenheiro de Computação - ITA 2008 Empreendedor Professor da Fatec Instrutor Python Pro (www.python.pro.br) Contatos email: renzo@python.pro.br Twitter: @renzonuccitec
  3. 3. Roteiro Controlador de Versão Setup Requisitos / Feature Branch Modularização Testes Automáticos Build Deploy Ao vivo Falácias
  4. 4. Problema base Salvar Nome de Usuário
  5. 5. Controlador de Versão
  6. 6. Fonte Todo código está no github, separado em passos. https://github.com/renzon/gae-continuous- delivery
  7. 7. Setup
  8. 8. Setup - Google App Engine Criar conta appengine.google.com (cuidado celular Oi) Criar Aplicação Criar Bot no Google Accounts Colocar Bot como developer da aplicação (ver próxima imagem)
  9. 9. Setup
  10. 10. Setup - virtualenv Navegar até “raiz do projeto/pyenv” rodar ./venv.sh Verificar a pasta pyenv / Explicar link simbólico lib no src Obs: pode ser executado toda vez que se alterar o requirements.txt, para atualizar dependências
  11. 11. Setup - Pycharm Setar src e test como fonte de código Adicionar servidor GAE Indicar porta, padrão 8080 Indicar working directory como src Editar src/app.yaml com id de sua App Habilitar Suporte Google App Engine Apertar play ou debug UFA (ainda bem que só tem que fazer uma vez)
  12. 12. Requisitos e Feature Branch
  13. 13. Modularização
  14. 14. Modularização - Web Service Comunicação via interface web (JSON ou XML) Amazon: “Anyone who doesn’t do this will be fired. Thank you; have a nice day!” - http: //apievangelist.com/2012/01/12/the-secret-to- amazons-success-internal-apis/
  15. 15. Modularização - Web Service Prós: independência de tecnologia, coesão e desacoplamento Contras: Exige maturidade e disciplina; Latência
  16. 16. Modularização - pypi Criar pacote no pypi https://github.com/renzon/pswdclient - cliente para abstrair comunicação JSON Prós: Diminui latência se não precisar acessar serviço externo; desacoplamento e coesão Contras: Gestão de dependência pode ficar complexa
  17. 17. Modularização - Interna Business agnóstico Architecure the lost years (Uncle Bob): http: //confreaks.com/videos/759-rubymidwest2011- keynote-architecture-the-lost-years https://github.com/renzon/gaebusiness
  18. 18. Modularização - Interna
  19. 19. Modularização - Interna Command: Unidade básica: CommandList: Composite de Commands Facade: Interface de um módulo expondo Commands/CommandList Web: Executa lógica de internet e negócio através de facades
  20. 20. Modularização - Interna https://github.com/renzon/pswdless https://pswdless.appspot.com http://adm.python.pro.br
  21. 21. Modularização - Interna Prós: Baixa Latência Menos burocracia que pypi Contras: Risco de equipe violar arquitetura
  22. 22. Modularização - Frontend Fica pro Rupy ;D
  23. 23. Testes Automáticos
  24. 24. Testes Automáticos Teste Unitário (Command) Teste de Integração (CommandList ou Facade) Teste de Aceitação (Handlers) testloader.py
  25. 25. Build
  26. 26. Deploy
  27. 27. Falácias Deploy com um click é impossível! R: livro Continuous Delivery; o QMagico faz; Nesse Treinamento fizemos Construir o deploy contínuo custa caro R: Menor que o débito técnico
  28. 28. Falácias Constrói quanto tiver tempo R: Aumenta débito técnico, pressão do cliente Não temos grana para ferramentas R: Todas ferramentas são grátis ou até open source Vai ser entregue sem qualidade R: Teste automáticos, Homologação
  29. 29. Onde Aprender Mais Continuous Delivery - Jez Humble - David Farley Todos os links dessa apresentação
  30. 30. Onde Aprender Mais Próximos Cursos: Objetos Pythonicos - 29/10 Python para quem estudou Java - 18/11 Python para quem sabe Python - 19/11
  31. 31. Obrigado renzo@python.pro.br @renzonuccitec

×