Apres git geinfo2012

31
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

Transcript of Apres git geinfo2012

Page 1: 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

Page 2: Apres git geinfo2012

Grupo ATP: Apoio técnico-pedagógico a Ambientes de Aprendizagem

→ Uma proliferação de Moodles

Page 3: Apres git geinfo2012

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

Page 4: Apres git geinfo2012

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”)

Page 5: Apres git geinfo2012

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

Page 6: Apres git geinfo2012

Conceitos sobre “Controle de Versões”

[ProGIT]

• Registra alterações de arquivos

1. Versionamento local

Page 7: Apres git geinfo2012

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)

Page 8: Apres git geinfo2012

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)

Page 9: Apres git geinfo2012

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

Page 10: Apres git geinfo2012

Workflow GIT: “Deploy do Projeto X”

Page 11: Apres git geinfo2012

Workflow GIT: “Deploy do Projeto X”

Page 12: Apres git geinfo2012

Workflow GIT: “Deploy do Projeto X”

Page 13: Apres git geinfo2012

Workflow GIT: “Deploy do Projeto X”

Page 14: Apres git geinfo2012

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?

Page 15: Apres git geinfo2012

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

Page 16: Apres git geinfo2012

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

Page 17: Apres git geinfo2012

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

Page 18: Apres git geinfo2012

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

Page 19: Apres git geinfo2012

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

Page 20: Apres git geinfo2012

Workflow GIT: “Atualização Moodle upstream”

Incorporar atualizações (de segurança e melhorias) sem perder as suas customizações

Page 21: Apres git geinfo2012

Workflow GIT: “Atualização Moodle”

Page 22: Apres git geinfo2012

Workflow GIT: “Atualização Moodle”

Page 23: Apres git geinfo2012

Workflow GIT: “Atualização Moodle”

Page 24: Apres git geinfo2012

Workflow GIT: “Atualização Moodle”

Page 25: Apres git geinfo2012

Workflow GIT: “Atualização Moodle”

Page 26: Apres git geinfo2012

Workflow GIT: “Atualização Moodle”

Page 27: Apres git geinfo2012

Workflow GIT: “Atualização Moodle”

Page 28: Apres git geinfo2012

Workflow GIT: “Atualização Moodle”

Page 29: Apres git geinfo2012

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

Page 30: Apres git geinfo2012

Referências GIT

• [Progit] http://progit.org/book/

• [Gitref] http://gitref.org

Contato ATP

[email protected] / http://atp.usp.br

Page 31: Apres git geinfo2012