mundo python
DO CÓDIGO à PRODUÇÃO
COM GITLAB
ITENS QUE VEREMOS SOBRE ESSE ASSUNTO
⇝ Introdução;
⇝ Etapas para desenvolver um software;
⇝ Processo de desenvolvimento;
⇝ Gestão de código fonte;
⇝ O GitLab;
⇝ “Mãos na massa” com um projeto Python!
⇝ Como faço isso com GitLab;
⇝ Como usamos isso na Nexxera;
⇝ Vantagens de usar tudo isso.
INTRODUÇÃO
⇝ Issues;
⇝ GIT / Branches / Merge Requests;
⇝ Testes / Code Review;
⇝ Pipelines;
⇝ Continuous Integration;
⇝ Continuous Delivery / Continuous Deploy;
⇝ Esteira de Produção;
⇝ Automatização.
e... VÁRIOS OUTROS!!!
Ao desenvolver um projeto, quais desses
assuntos você já ouviu?
QUAIS SÃO AS ETAPAS PARA
DESENVOLVER UM SOFTWARE?
OK…
MAS VAMOS DAR UM PASSO ATRÁS.
AS ETAPAS A SEGUIR SÃO ADEQUADAS?
⇝ Definição do negócio (Epics, Stories);
⇝ Definição de sprint (Issues Técnicas);
⇝ Implementação / Testes;
⇝ Geração de um pacote candidato a produção;
⇝ Implantação em um ambiente para homologação;
⇝ Implantação em produção
Acho que sim, parecem boas, mas ENTÃO ACHO QUE !!!...
MESMO PARA UM MVP?
PRECISAMOS DE
UM PROCESSO DE
DESENVOLVIMENTO!
Desenvolvimento de software é um
processo artesanal!
SIM, implementar código é um
processo artesanal.
MAS… todo o restante pode ser
sistematizado e automatizado!
OK… Mas qual processo seguir?
⇝ Entenda a criticidade do negócio!
⇝ Conheça as tecnologias utilizadas!
⇝ Pense de forma Lean e Ágil
⇝ Comunicação > Processos
⇝ Pense em ...
GESTÃO
DE
CÓDIGO FONTE !
Hum… mas o que seria exatamente isso?
é ver os projetos de forma fácil!
é ter visibilidade das milestones!
é ter visibilidade das issues!
é ver de forma fácil as pessoas que estão no time!
é acompanhar o trabalho do time sem interromper-los!
é ter indicadores sobre ciclo de implementação!
é fazer e acompanhar o code review!
é ter visibilidade real do versionamento do projeto!
é ver de forma fácil a diferença entre as versões!
é, se necessário, ver de forma fácil o código fonte !
é acompanhar os builds do projeto!
é ver os artefatos que serão publicados (imagem docker)!
é ver de forma clara os ambientes onde a aplicação está rodando!
ATRAVÉS DO USO DE FERRAMENTAS!
DE PREFERÊNCIA, O MÍNIMO DE FERRAMENTAS QUE
OFEREÇA TUDO ISSO. o melhor seria apenas 1 =)
BLZ… E QUAL PODERIAMOS USAR?
E COMO EU CONSIGO ISSO?
o gitlab
O que ele é?
Ferramenta que unifica: Issues, Code
Review, CI e CD em uma UI simples
Tenho que pagar pra usar?
Não (community / cloud e on-premisses)
Sim (enterprise/on-premisses -> $39,00
usuario/ano)
É uma ferramenta que evolui?
Sim, constantemente, nova versão
todo mês!
Quem usa?
SÓ ELE QUE FAZ ISSO?
NÃO!
mãos na massa!
com um projeto em python!!!
https://gitlab.com/betterdeveloper-examples/quotes-box-pipeline
PARECEU LEGAL…
MAS, COMO EU CONFIGURO ISSO?
.gitlab-ci.yml
E NA NEXXERA, COMO USAMOS ISSO?
www.nexxera.com
NA NEXXERA, NÓS USAMOS...
GITLAB INTEGRADO COM JIRA
NA NEXXERA, NÓS USAMOS...
TEMPLATES DE ARQUIVO .GITLAB-CI.YML
NA NEXXERA, NÓS USAMOS...
DOCKERFILE’S FORA DO PROJETO
NA NEXXERA, NÓS USAMOS...
CODE REVIEW COM NÚMERO MÍNIMO DE APROVADORES
NA NEXXERA, NÓS USAMOS...
CONVENÇÃO DE CÓDIGO E MÉTRICAS NO PIPELINE
NA NEXXERA, NÓS USAMOS...
AMBIENTES DE TESTES E QUALIDADE
NA NEXXERA, NÓS USAMOS...
CLOUD CORPORATIVA (OPENSHIFT ON-PREMISES)
NA NEXXERA, NÓS USAMOS...
DEPLOY SIMPLIFICADO COM NDEPLOY
NA NEXXERA, NÓS USAMOS...
DADOS SOBRE BUILD DO PROJETO NO README
NA NEXXERA, NÓS USAMOS...
RELATÓRIO PARA VER SAÚDE DOS PROJETOS
OK… É LEGAL,
MAS, POR QUE USAR TUDO ISSO?
VAMOS REFLETIR SOBRE OS PONTOS ABAIXO
⇝ Código direto na produção é desafiador !
Mas… o que eu faço quando dá … ?
⇝ E quando preciso ter rastreabilidade?
⇝ E quando preciso ter organização?
⇝ E quando tenho várias pessoas trabalhando no mesmo projeto?
⇝ E quando preciso sincronizar o trabalho de vários times?
⇝ E quando o cara que sabe tudo do projeto sai do time?
⇝ E quando eu preciso ter métricas sobre o desempenho do time?
Enfim….
uma ferramenta como o gitlab
possibilita maturidade para você ir do
código à produção !
OBRIGADO A TODOS!
isaacsouza@gmail.com
Projeto exemplo em:
https://gitlab.com/betterdeveloper-examples/
quotes-box-pipeline
Slides em:
https://pt.slideshare.net/betterdeveloper
www.nexxera.com
www.betterdeveloper.net

Do código à produção com Gitlab (mundo python)

  • 1.
    mundo python DO CÓDIGOà PRODUÇÃO COM GITLAB
  • 2.
    ITENS QUE VEREMOSSOBRE ESSE ASSUNTO ⇝ Introdução; ⇝ Etapas para desenvolver um software; ⇝ Processo de desenvolvimento; ⇝ Gestão de código fonte; ⇝ O GitLab; ⇝ “Mãos na massa” com um projeto Python! ⇝ Como faço isso com GitLab; ⇝ Como usamos isso na Nexxera; ⇝ Vantagens de usar tudo isso.
  • 3.
    INTRODUÇÃO ⇝ Issues; ⇝ GIT/ Branches / Merge Requests; ⇝ Testes / Code Review; ⇝ Pipelines; ⇝ Continuous Integration; ⇝ Continuous Delivery / Continuous Deploy; ⇝ Esteira de Produção; ⇝ Automatização. e... VÁRIOS OUTROS!!! Ao desenvolver um projeto, quais desses assuntos você já ouviu?
  • 4.
    QUAIS SÃO ASETAPAS PARA DESENVOLVER UM SOFTWARE? OK… MAS VAMOS DAR UM PASSO ATRÁS.
  • 5.
    AS ETAPAS ASEGUIR SÃO ADEQUADAS? ⇝ Definição do negócio (Epics, Stories); ⇝ Definição de sprint (Issues Técnicas); ⇝ Implementação / Testes; ⇝ Geração de um pacote candidato a produção; ⇝ Implantação em um ambiente para homologação; ⇝ Implantação em produção Acho que sim, parecem boas, mas ENTÃO ACHO QUE !!!... MESMO PARA UM MVP?
  • 6.
    PRECISAMOS DE UM PROCESSODE DESENVOLVIMENTO! Desenvolvimento de software é um processo artesanal! SIM, implementar código é um processo artesanal. MAS… todo o restante pode ser sistematizado e automatizado! OK… Mas qual processo seguir? ⇝ Entenda a criticidade do negócio! ⇝ Conheça as tecnologias utilizadas! ⇝ Pense de forma Lean e Ágil ⇝ Comunicação > Processos ⇝ Pense em ...
  • 7.
    GESTÃO DE CÓDIGO FONTE ! Hum…mas o que seria exatamente isso?
  • 8.
    é ver osprojetos de forma fácil!
  • 9.
    é ter visibilidadedas milestones!
  • 10.
  • 11.
    é ver deforma fácil as pessoas que estão no time!
  • 12.
    é acompanhar otrabalho do time sem interromper-los!
  • 13.
    é ter indicadoressobre ciclo de implementação!
  • 14.
    é fazer eacompanhar o code review!
  • 15.
    é ter visibilidadereal do versionamento do projeto!
  • 16.
    é ver deforma fácil a diferença entre as versões!
  • 17.
    é, se necessário,ver de forma fácil o código fonte !
  • 18.
    é acompanhar osbuilds do projeto!
  • 19.
    é ver osartefatos que serão publicados (imagem docker)!
  • 20.
    é ver deforma clara os ambientes onde a aplicação está rodando!
  • 21.
    ATRAVÉS DO USODE FERRAMENTAS! DE PREFERÊNCIA, O MÍNIMO DE FERRAMENTAS QUE OFEREÇA TUDO ISSO. o melhor seria apenas 1 =) BLZ… E QUAL PODERIAMOS USAR? E COMO EU CONSIGO ISSO?
  • 22.
    o gitlab O queele é? Ferramenta que unifica: Issues, Code Review, CI e CD em uma UI simples Tenho que pagar pra usar? Não (community / cloud e on-premisses) Sim (enterprise/on-premisses -> $39,00 usuario/ano) É uma ferramenta que evolui? Sim, constantemente, nova versão todo mês!
  • 23.
  • 24.
    SÓ ELE QUEFAZ ISSO? NÃO!
  • 25.
    mãos na massa! comum projeto em python!!! https://gitlab.com/betterdeveloper-examples/quotes-box-pipeline
  • 26.
    PARECEU LEGAL… MAS, COMOEU CONFIGURO ISSO? .gitlab-ci.yml
  • 27.
    E NA NEXXERA,COMO USAMOS ISSO? www.nexxera.com
  • 28.
    NA NEXXERA, NÓSUSAMOS... GITLAB INTEGRADO COM JIRA
  • 29.
    NA NEXXERA, NÓSUSAMOS... TEMPLATES DE ARQUIVO .GITLAB-CI.YML
  • 30.
    NA NEXXERA, NÓSUSAMOS... DOCKERFILE’S FORA DO PROJETO
  • 31.
    NA NEXXERA, NÓSUSAMOS... CODE REVIEW COM NÚMERO MÍNIMO DE APROVADORES
  • 32.
    NA NEXXERA, NÓSUSAMOS... CONVENÇÃO DE CÓDIGO E MÉTRICAS NO PIPELINE
  • 33.
    NA NEXXERA, NÓSUSAMOS... AMBIENTES DE TESTES E QUALIDADE
  • 34.
    NA NEXXERA, NÓSUSAMOS... CLOUD CORPORATIVA (OPENSHIFT ON-PREMISES)
  • 35.
    NA NEXXERA, NÓSUSAMOS... DEPLOY SIMPLIFICADO COM NDEPLOY
  • 36.
    NA NEXXERA, NÓSUSAMOS... DADOS SOBRE BUILD DO PROJETO NO README
  • 37.
    NA NEXXERA, NÓSUSAMOS... RELATÓRIO PARA VER SAÚDE DOS PROJETOS
  • 38.
    OK… É LEGAL, MAS,POR QUE USAR TUDO ISSO?
  • 39.
    VAMOS REFLETIR SOBREOS PONTOS ABAIXO ⇝ Código direto na produção é desafiador ! Mas… o que eu faço quando dá … ? ⇝ E quando preciso ter rastreabilidade? ⇝ E quando preciso ter organização? ⇝ E quando tenho várias pessoas trabalhando no mesmo projeto? ⇝ E quando preciso sincronizar o trabalho de vários times? ⇝ E quando o cara que sabe tudo do projeto sai do time? ⇝ E quando eu preciso ter métricas sobre o desempenho do time? Enfim….
  • 40.
    uma ferramenta comoo gitlab possibilita maturidade para você ir do código à produção !
  • 41.
    OBRIGADO A TODOS! isaacsouza@gmail.com Projetoexemplo em: https://gitlab.com/betterdeveloper-examples/ quotes-box-pipeline Slides em: https://pt.slideshare.net/betterdeveloper www.nexxera.com www.betterdeveloper.net