SlideShare uma empresa Scribd logo
1 de 31
Customização, Deployment e
Manutenção de Código usando Git
      Aplicação aos Moodles da USP




       Helbert dos Santos, Ewout ter Haar

 Grupo Apoio Técnico-Pedagógico – USP
             CEPA - IFUSP
            http://atp.usp.br

                  08/10/2012
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”

   1. Versionamento local



                            • Registra alterações de arquivos




[ProGIT]
Conceitos sobre “Controle de Versões”

    2. Versionamento remoto e central (cvs, subversion)

                                • Equipe de desenvolvedores


                                • É preciso introduzir o
                                  conceito de “merge”
                                  (mesclar texto)

[ProGIT]
Conceitos sobre “Controle de Versões”
3. Versionamento distribuído (git, mercurial)
                         fluxo de trabalho flexível

                         Mais fácil incorporar contribuições

                         “externas”




                            [ProGIT]
repositório central: Ex. github,
      git.atp.usp.br




(um dos) repo(s) de                      repo de produção
desenvolvimento                          (deploy)

$git pull
$git merge
...hack, hack                            $git pull
$git commit
$git push
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

   suporte@atp.usp.br          / http://atp.usp.br
Customização, Deployment e Manutenção de Código usando Git

Mais conteúdo relacionado

Mais procurados

Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
TDC2019Floripa - Não existe container de prata
TDC2019Floripa - Não existe container de prataTDC2019Floripa - Não existe container de prata
TDC2019Floripa - Não existe container de prataBruno Pedroso
 
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteControlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteComunidade NetPonto
 
Controle de Versões com Git + Github
Controle de Versões com Git + GithubControle de Versões com Git + Github
Controle de Versões com Git + GithubDavi Matos
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoocfelipe
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoMarcos Pessoa
 
InfoPI 2013 - Minicurso - Introdução ao CUDA - Segunda Parte
InfoPI 2013 - Minicurso - Introdução ao CUDA - Segunda ParteInfoPI 2013 - Minicurso - Introdução ao CUDA - Segunda Parte
InfoPI 2013 - Minicurso - Introdução ao CUDA - Segunda ParteCarlos Carvalho
 
Otávio Salvador - Yocto project reduzindo -time to market- do seu próximo pr...
Otávio Salvador - Yocto project  reduzindo -time to market- do seu próximo pr...Otávio Salvador - Yocto project  reduzindo -time to market- do seu próximo pr...
Otávio Salvador - Yocto project reduzindo -time to market- do seu próximo pr...Intel Software Brasil
 
São paulo docker meetup #2
São paulo docker meetup #2São paulo docker meetup #2
São paulo docker meetup #2Azuki
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoFabricio Nogueira
 
Instalação do sistemas operacionais dualboot
Instalação do sistemas operacionais dualbootInstalação do sistemas operacionais dualboot
Instalação do sistemas operacionais dualbootWilliam Menegais
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesLeandro Cavalcante
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVNLuciano Lima
 

Mais procurados (20)

Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
TDC2019Floripa - Não existe container de prata
TDC2019Floripa - Não existe container de prataTDC2019Floripa - Não existe container de prata
TDC2019Floripa - Não existe container de prata
 
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteControlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto Proiete
 
Controle de Versões com Git + Github
Controle de Versões com Git + GithubControle de Versões com Git + Github
Controle de Versões com Git + Github
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Versionamento com git
Versionamento com gitVersionamento com git
Versionamento com git
 
GISVM
GISVMGISVM
GISVM
 
InfoPI 2013 - Minicurso - Introdução ao CUDA - Segunda Parte
InfoPI 2013 - Minicurso - Introdução ao CUDA - Segunda ParteInfoPI 2013 - Minicurso - Introdução ao CUDA - Segunda Parte
InfoPI 2013 - Minicurso - Introdução ao CUDA - Segunda Parte
 
Otávio Salvador - Yocto project reduzindo -time to market- do seu próximo pr...
Otávio Salvador - Yocto project  reduzindo -time to market- do seu próximo pr...Otávio Salvador - Yocto project  reduzindo -time to market- do seu próximo pr...
Otávio Salvador - Yocto project reduzindo -time to market- do seu próximo pr...
 
Git
GitGit
Git
 
Apresentação controle de versão
Apresentação controle de versãoApresentação controle de versão
Apresentação controle de versão
 
São paulo docker meetup #2
São paulo docker meetup #2São paulo docker meetup #2
São paulo docker meetup #2
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básico
 
Instalação do sistemas operacionais dualboot
Instalação do sistemas operacionais dualbootInstalação do sistemas operacionais dualboot
Instalação do sistemas operacionais dualboot
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de Versões
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVN
 

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

Deploy do Moodle usando Git
Deploy do Moodle usando GitDeploy do Moodle usando Git
Deploy do Moodle usando Gitatpusp
 
Git- O minimo que você deve saber para trabalhar com ele.pptx
Git- O minimo que você deve saber para trabalhar com ele.pptxGit- O minimo que você deve saber para trabalhar com ele.pptx
Git- O minimo que você deve saber para trabalhar com ele.pptxLuiz Fernando
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - gitThiago Filadelfo
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftGraziella Bonizi
 
Workshop git para iniciantes
Workshop git para iniciantesWorkshop git para iniciantes
Workshop git para iniciantesPaula Santana
 
Git github tortoise git
Git github tortoise gitGit github tortoise git
Git github tortoise gitmaxrosan
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubGilson Junior
 
workshopgitparainiciantes1-190901224755.pdf
workshopgitparainiciantes1-190901224755.pdfworkshopgitparainiciantes1-190901224755.pdf
workshopgitparainiciantes1-190901224755.pdfAuriceliaRosa
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágilClaudia Melo
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...Jadson Santos
 
Ferramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareFerramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareDanilo Sousa
 
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...Tchelinux
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 

Semelhante a Customização, Deployment e Manutenção de Código usando Git (20)

Deploy do Moodle usando Git
Deploy do Moodle usando GitDeploy do Moodle usando Git
Deploy do Moodle usando Git
 
Git e Github
Git e GithubGit e Github
Git e Github
 
Git- O minimo que você deve saber para trabalhar com ele.pptx
Git- O minimo que você deve saber para trabalhar com ele.pptxGit- O minimo que você deve saber para trabalhar com ele.pptx
Git- O minimo que você deve saber para trabalhar com ele.pptx
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - git
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
 
Git + Github
Git + GithubGit + Github
Git + Github
 
Workshop git para iniciantes
Workshop git para iniciantesWorkshop git para iniciantes
Workshop git para iniciantes
 
Git github tortoise git
Git github tortoise gitGit github tortoise git
Git github tortoise git
 
Git ao GitHub
Git ao GitHubGit ao GitHub
Git ao GitHub
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHub
 
workshopgitparainiciantes1-190901224755.pdf
workshopgitparainiciantes1-190901224755.pdfworkshopgitparainiciantes1-190901224755.pdf
workshopgitparainiciantes1-190901224755.pdf
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Primeiros passos - GIT
Primeiros passos - GITPrimeiros passos - GIT
Primeiros passos - GIT
 
Git & GitHub for beginners
Git & GitHub for beginnersGit & GitHub for beginners
Git & GitHub for beginners
 
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
 
Ferramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareFerramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de Software
 
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...
Desenvolvimento de um Sistema de Gestão Acadêmica com Software Livre - Rodrig...
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 

Mais de Ewout ter Haar

Reformulação da grade curricular da Licenciatura do IFUSP
Reformulação da grade curricular da Licenciatura do IFUSPReformulação da grade curricular da Licenciatura do IFUSP
Reformulação da grade curricular da Licenciatura do IFUSPEwout ter Haar
 
Sistemas de TI na USP e no IFUSP
Sistemas de TI na USP e no IFUSPSistemas de TI na USP e no IFUSP
Sistemas de TI na USP e no IFUSPEwout ter Haar
 
Apresentação Novo Stoa
Apresentação  Novo StoaApresentação  Novo Stoa
Apresentação Novo StoaEwout ter Haar
 
Objetos de Aprendizagem e Recursos Digitais no Ensino de Física
Objetos de Aprendizagem e Recursos Digitais no Ensino de FísicaObjetos de Aprendizagem e Recursos Digitais no Ensino de Física
Objetos de Aprendizagem e Recursos Digitais no Ensino de FísicaEwout ter Haar
 
Ambientes Virtuais de Aprendizagem
Ambientes Virtuais de AprendizagemAmbientes Virtuais de Aprendizagem
Ambientes Virtuais de AprendizagemEwout ter Haar
 
Stoa, a rede social da USP
Stoa, a rede social da USPStoa, a rede social da USP
Stoa, a rede social da USPEwout ter Haar
 
Tecnologias da Web Social Aplicadas a Ambientes Educacionais
Tecnologias da Web Social Aplicadas a Ambientes EducacionaisTecnologias da Web Social Aplicadas a Ambientes Educacionais
Tecnologias da Web Social Aplicadas a Ambientes EducacionaisEwout ter Haar
 
Ambientes Educacionais Distribuídos: A Web moderna na Educação
Ambientes Educacionais Distribuídos: A Web moderna na EducaçãoAmbientes Educacionais Distribuídos: A Web moderna na Educação
Ambientes Educacionais Distribuídos: A Web moderna na EducaçãoEwout ter Haar
 
Ferramentas Colaborativas
Ferramentas ColaborativasFerramentas Colaborativas
Ferramentas ColaborativasEwout ter Haar
 
Tecnologia Educacional: estudos de eficácia
Tecnologia Educacional: estudos de eficáciaTecnologia Educacional: estudos de eficácia
Tecnologia Educacional: estudos de eficáciaEwout ter Haar
 
Meios de Comunicação
Meios de ComunicaçãoMeios de Comunicação
Meios de ComunicaçãoEwout ter Haar
 
Stoa: um ambiente de aprendizagem
Stoa: um ambiente de aprendizagemStoa: um ambiente de aprendizagem
Stoa: um ambiente de aprendizagemEwout ter Haar
 
Stoa: resultados 2007-2009
Stoa: resultados 2007-2009Stoa: resultados 2007-2009
Stoa: resultados 2007-2009Ewout ter Haar
 
Infrastructure for Open Educational Resources at USP
Infrastructure for Open Educational Resources at USPInfrastructure for Open Educational Resources at USP
Infrastructure for Open Educational Resources at USPEwout ter Haar
 
Stoa: A Web Social na USP
Stoa: A Web Social na USPStoa: A Web Social na USP
Stoa: A Web Social na USPEwout ter Haar
 

Mais de Ewout ter Haar (17)

Reformulação da grade curricular da Licenciatura do IFUSP
Reformulação da grade curricular da Licenciatura do IFUSPReformulação da grade curricular da Licenciatura do IFUSP
Reformulação da grade curricular da Licenciatura do IFUSP
 
Sistemas de TI na USP e no IFUSP
Sistemas de TI na USP e no IFUSPSistemas de TI na USP e no IFUSP
Sistemas de TI na USP e no IFUSP
 
Apresentação Novo Stoa
Apresentação  Novo StoaApresentação  Novo Stoa
Apresentação Novo Stoa
 
Objetos de Aprendizagem e Recursos Digitais no Ensino de Física
Objetos de Aprendizagem e Recursos Digitais no Ensino de FísicaObjetos de Aprendizagem e Recursos Digitais no Ensino de Física
Objetos de Aprendizagem e Recursos Digitais no Ensino de Física
 
Ambientes Virtuais de Aprendizagem
Ambientes Virtuais de AprendizagemAmbientes Virtuais de Aprendizagem
Ambientes Virtuais de Aprendizagem
 
Stoa, a rede social da USP
Stoa, a rede social da USPStoa, a rede social da USP
Stoa, a rede social da USP
 
Tecnologias da Web Social Aplicadas a Ambientes Educacionais
Tecnologias da Web Social Aplicadas a Ambientes EducacionaisTecnologias da Web Social Aplicadas a Ambientes Educacionais
Tecnologias da Web Social Aplicadas a Ambientes Educacionais
 
Ambientes Educacionais Distribuídos: A Web moderna na Educação
Ambientes Educacionais Distribuídos: A Web moderna na EducaçãoAmbientes Educacionais Distribuídos: A Web moderna na Educação
Ambientes Educacionais Distribuídos: A Web moderna na Educação
 
Mídia Social I
Mídia Social IMídia Social I
Mídia Social I
 
Mídia Social II
Mídia Social IIMídia Social II
Mídia Social II
 
Ferramentas Colaborativas
Ferramentas ColaborativasFerramentas Colaborativas
Ferramentas Colaborativas
 
Tecnologia Educacional: estudos de eficácia
Tecnologia Educacional: estudos de eficáciaTecnologia Educacional: estudos de eficácia
Tecnologia Educacional: estudos de eficácia
 
Meios de Comunicação
Meios de ComunicaçãoMeios de Comunicação
Meios de Comunicação
 
Stoa: um ambiente de aprendizagem
Stoa: um ambiente de aprendizagemStoa: um ambiente de aprendizagem
Stoa: um ambiente de aprendizagem
 
Stoa: resultados 2007-2009
Stoa: resultados 2007-2009Stoa: resultados 2007-2009
Stoa: resultados 2007-2009
 
Infrastructure for Open Educational Resources at USP
Infrastructure for Open Educational Resources at USPInfrastructure for Open Educational Resources at USP
Infrastructure for Open Educational Resources at USP
 
Stoa: A Web Social na USP
Stoa: A Web Social na USPStoa: A Web Social na USP
Stoa: A Web Social na USP
 

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