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

Customização, Deployment e Manutenção de Códig...

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?

Ewout ter Haar

October 08, 2012
Tweet

More Decks by Ewout ter Haar

Other Decks in Technology

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. 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
  3. 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”)
  4. 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
  5. 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)
  6. 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)
  7. 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
  8. 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?
  9. 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