Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Customização, Deployment e Manutenção de Código usando Git

Customização, Deployment e Manutenção de Código usando Git

O grupo ATP dá apoio a muitos Moodles, cada um com seu conjunto de plugins e temas. Como fazer a gestão da complexidade gerado pelo desenvolvimento, manutenção e atualizações em todos estas instâncias?

E8c6a3f616383e7ecef073a883092858?s=128

Ewout ter Haar

October 08, 2012
Tweet

Transcript

  1. Helbert dos Santos, Ewout ter Haar Grupo Apoio Técnico-Pedagógico –

    USP CEPA - IFUSP http://atp.usp.br 08/10/2012 Customização, Deployment e Manutenção de Código usando Git Aplicação aos Moodles da USP
  2. Grupo ATP: Apoio técnico-pedagócio a Ambientes de Aprendizagem → Uma

    proliferação de Moodles
  3. Contexto • Múltiplas instâncias Moodle (Projetos) • RedeFor, Licenciatura em

    Ciências, EVC, Moodle do Stoa, Moodle de Extensão, etc. etc. • 270 mil logins/mês • mais de 35 mil alunos • Customização por projeto • temas, plugins, relatórios • Ambientes requerem alta disponibilidade
  4. Problema Como manter customizações + múltiplas instâncias? – Acompanhar as

    atualizações “upstream” (melhorias e segurança) – Desenvolvimento documentado, versionado e rastreável – Desenvolvimento distribuído (incorporar contribuições “externas”)
  5. Nossa solução • Software de controle de revisões de código

    distribuído (DVCS, distributed version control system) Ex. Git, mercurial – Atende aos requisitos – “Deployment” fácil / – ágil / seguro
  6. Conceitos sobre “Controle de Versões” [ProGIT] • Registra alterações de

    arquivos 1. Versionamento local
  7. Conceitos sobre “Controle de Versões” [ProGIT] • Equipe de desenvolvedores

    • É preciso introduzir o conceito de “merge” (mesclar texto) 2. Versionamento remoto e central (cvs, subversion)
  8. Conceitos sobre “Controle de Versões” [ProGIT] fluxo de trabalho flexível

    Mais fácil incorporar contribuições “externas” 3. Versionamento distribuído (git, mercurial)
  9. repositório central: Ex. github, git.atp.usp.br (um dos) repo(s) de desenvolvimento

    $git pull $git merge ...hack, hack $git commit $git push repo de produção (deploy) $git pull
  10. Workflow GIT: “Deploy do Projeto X”

  11. Workflow GIT: “Deploy do Projeto X”

  12. Workflow GIT: “Deploy do Projeto X”

  13. Workflow GIT: “Deploy do Projeto X”

  14. Workflow GIT: “Replicar código genérico” Temos N instâncias de um

    determinado software, cada uma com algumas customizações. Como atualizar as N instâncias com código comum a todas?
  15. Workflow GIT: “Replicar código Moodle genérico”

  16. Workflow GIT: “Replicar código genérico”

  17. Workflow GIT: “Replicar código Moodle genérico”

  18. Workflow GIT: “Replicar código genérico”

  19. Workflow GIT: “Replicar código genérico”

  20. Workflow GIT: “Atualização Moodle upstream” Incorporar atualizações (de segurança e

    melhorias) sem perder as suas customizações
  21. Workflow GIT: “Atualização Moodle”

  22. Workflow GIT: “Atualização Moodle”

  23. Workflow GIT: “Atualização Moodle”

  24. Workflow GIT: “Atualização Moodle”

  25. Workflow GIT: “Atualização Moodle”

  26. Workflow GIT: “Atualização Moodle”

  27. Workflow GIT: “Atualização Moodle”

  28. Workflow GIT: “Atualização Moodle”

  29. Conclusão • “Deployment” fácil / ágil / seguro • Facilidade

    para manter múltiplas instâncias Moodle • Histórico das revisões de código (documentação) • Colaboração de desenvolvedores externos
  30. Referências GIT • [Progit] http://progit.org/book/ • [Gitref] http://gitref.org Contato ATP

    suporte@atp.usp.br / http://atp.usp.br
  31. None