Apres git geinfo2012
-
Upload
ewout-ter-haar -
Category
Documents
-
view
202 -
download
0
Transcript of Apres git geinfo2012
Helbert dos Santos, Ewout ter Haar
Grupo Apoio Técnico-Pedagógico – USPCEPA - IFUSPhttp://atp.usp.br
08/10/2012
Customização, Deployment e Manutenção de Código usando Git
Aplicação aos Moodles da USP
Grupo ATP: Apoio técnico-pedagógico a Ambientes de Aprendizagem
→ Uma proliferação de Moodles
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
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”)
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
Conceitos sobre “Controle de Versões”
[ProGIT]
• Registra alterações de arquivos
1. Versionamento local
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)
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)
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
Workflow GIT: “Deploy do Projeto X”
Workflow GIT: “Deploy do Projeto X”
Workflow GIT: “Deploy do Projeto X”
Workflow GIT: “Deploy do Projeto X”
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?
Workflow GIT: “Replicar código Moodle genérico”
Workflow GIT: “Replicar código genérico”
Workflow GIT: “Replicar código Moodle genérico”
Workflow GIT: “Replicar código genérico”
Workflow GIT: “Replicar código genérico”
Workflow GIT: “Atualização Moodle upstream”
Incorporar atualizações (de segurança e melhorias) sem perder as suas customizações
Workflow GIT: “Atualização Moodle”
Workflow GIT: “Atualização Moodle”
Workflow GIT: “Atualização Moodle”
Workflow GIT: “Atualização Moodle”
Workflow GIT: “Atualização Moodle”
Workflow GIT: “Atualização Moodle”
Workflow GIT: “Atualização Moodle”
Workflow GIT: “Atualização Moodle”
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
Referências GIT
• [Progit] http://progit.org/book/
• [Gitref] http://gitref.org
Contato ATP
[email protected] / http://atp.usp.br