DevOps com GeneXus
Introdução
DevOps é uma metodologia que integra a criação de uma aplicação, com as
operações posteriores ao desenvolvimento, como a colocação em produção, a
manutenção e a evolução do software, em um ciclo sem fim. Vejamos como isso se
aplica em GeneXus.
………………………………………………………………………………………………………………………..……………………………………………………
1
Definição de DevOps
Dev Ops
DevOps em um conjunto de práticas ágeis que combina o desenvolvimento de
software “Dev” e as operações de tecnologia da informação “Ops” para encurtar o
ciclo de vida do desenvolvimento de sistemas e oferecer software de forma
contínua.
O ciclo “Dev” (desenvolvimento) inclui o desenho, desenvolvimento, codificação,
construção e teste da aplicação. O Ops (Operação) inclui a liberação, colocação em
produção, operação e monitoramento da aplicação. Este monitoramento vai
determinar futuras mudanças que devem ser feitas no software, como a
manutenção por acertos de falhas ou a evolução para adicionar novas
funcionalidades que permitam manter atual a aplicação ou dar-lhe um melhor uso.
A integração de todas as tarefas em um ciclo contínuo, permite às empresas que
desenvolvem sistemas, aproveitar as oportunidades do mercado de forma mais
rápida e reduzir o tempo para incluir respostas de clientes, melhorando a
experiência dos mesmos com o software que utilizam.
Vejamos os principais problemas que se apresentam no ciclo de vida de uma
aplicação.
………………………………………………………………………………………………………………………..……………………………………………………
2
Integração de mudanças
Code
Code
Test
Test
Salvo casos excepcionais, o desenvolvimento de software é uma tarefa de equipe.
Um dos principais problemas que precisa ser resolvido é a integração das
mudanças que cada desenvolvedor faz para a aplicação.
Cada desenvolvedor trabalha desenvolvendo uma funcionalidade, em um ciclo no
qual codifica e testa até que cumpra seu objetivo.
Agora, o que acontece quando queremos integrar o trabalho desses
desenvolvedores, de modo que as funcionalidades em que trabalharam sejam
incluídas na próxima liberação da aplicação?
Ambos vão tentar subir suas mudanças para GeneXus Server, mas certamente
haverá muitos conflitos e mais se estes desenvolvedores trabalharam de forma
independente por um longo período de tempo. Talvez ambos tenham definido
objetos com o mesmo nome e diferente propósito, ou talvez algum deles tenha
modificado objetos existentes, removendo funcionalidades que outro
desenvolvedor conta com elas.
………………………………………………………………………………………………………………………..……………………………………………………
3
Integração Contínua
• Integração frequente das alterações, pelo menos uma vez por dia
• Verificação da integração de forma automática
A ideia da integração contínua é que o trabalho se integre de forma frequente, se
possível mais de uma vez por dia, de maneira que evite conflitos e, em casos que
estes apareçam, sejam pequenos e fáceis de resolver.
Uma vez que se produz a integração, deve ser montada e testada a aplicação de
forma automática para detectar os erros de integração o mais rapidamente
possível. O teste automático também é útil para validar que não deixou de
funcionar algo que já estava funcionando bem, o que se chama teste de regressão.
………………………………………………………………………………………………………………………..……………………………………………………
Ferramentas para a integração contínua
Para isso, vamos usar GeneXus Server e Jenkins que é um motor de integração
contínua e é a ferramenta que vai orquestrar todo o processo.
………………………………………………………………………………………………………………………..……………………………………………………
5
Push object lists
1.1 – Check for Updates
Using GXServer Plugin
Start Job
1.2 – Update KB
2 – Build All
3 – Run Unit Tests
Em cada commit que faça cada desenvolvedor, será realizado pelo menos o
seguinte processo automático: Atualizar a KB, Build All e executar os testes.
Se tudo vai bem o build é bem-sucedido e é possível seguir adiante, caso contrário
tem que parar o processo e resolver o conflito.
………………………………………………………………………………………………………………………..……………………………………………………
6
Etapas do ciclo de vida de uma aplicação
Code Build Integrate Test Release Deploy
AGILE DEVELOPMENT
CONTINUOUS INTEGRATION
CONTINUOUS DELIVERY
CONTINUOUS DEPLOYMENT
Estas são as etapas do ciclo de vida de uma aplicação.
Se nosso processo é capaz de acelerar o processo de desenvolvimento e
construção, temos uma metodologia de desenvolvimento ágil.
Quando adicionamos ao nosso processo a automatização da integração e
validação, é que temos a Integração Contínua
Se a isso acrescentarmos a automação da montagem da release, de forma que, em
seguida, publicar a produção se possa fazer com um clique, chegamos a Entrega
Contínua
Quando nosso processo está tão acertado e automatizado que podemos chegar a
colocar em produção de forma automática, é que temos Colocação em Produção
Contínua.
………………………………………………………………………………………………………………………..……………………………………………………
7
Processo DevOps
E quando já incluímos em nosso processo a operação e monitoramento da
aplicação em produção, de forma que se gere informação que retroalimenta o
plano de quais funcionalidades convém desenvolver depois, é que chegamos a ter
um processo DevOps.
………………………………………………………………………………………………………………………..……………………………………………………
8
Criação e monitoramento de processos de Integração Contínua
Como vimos, para alcançar a metodologia DevOps, devemos ter certeza de
alcançar a Integração Contínua, isto é, após o desenvolvimento da aplicação,
automatizar a integração de mudanças e a validação.
É possível criar e monitorar processos de integração contínua (pipelines) a partir
do IDE de GeneXus e do console de GeneXus Server.
Uma vez que subimos a KB para GXserver, se vamos para Knowledge Manager /
TeamDevelopment, temos a aba "Continuous Integration" na qual podemos criar
pipelines, ver suas execuções, quais commits entraram em cada uma, o resultado
e o log completo de cada execução.
………………………………………………………………………………………………………………………..……………………………………………………
9
Mais informações:
[Link]
Para mais informações sobre o uso da metodologia DevOps em GeneXus, visite o
seguinte link da Wiki:
[Link]
………………………………………………………………………………………………………………………..……………………………………………………
[Link]
[Link]
[Link]/certifications
………………………………………………………………………………………………………………………..……………………………………………………
11