banner

Acelerando o ciclo de Release Contínua com GitHub Flow

escrito por Jackson Oliveira

4 minutos de leitura

Programador trabalhando com código de software em vários dispositivos em escritório moderno.

Como a Virtual Software acelerou o seu fluxo de trabalho através da adoção de uma estratégia de branching alinhada com o seu modelo de trabalho, com o apoio da ilegra.

Com mais de 35 anos de atuação, a Virtual Software é referência no mercado de tecnologia para o setor financeiro. Consolidada como um parceiro estratégico, é especialista no desenvolvimento de soluções de tecnologia e sistemas de BackOffice essenciais para a gestão e operação de instituições financeiras de grande porte.

Seu portfólio abrange uma vasta gama de funcionalidades críticas, oferecendo suporte abrangente para:

  • Derivativos Financeiros: gestão completa de instrumentos financeiros complexos.
  • Renda Fixa: controle e acompanhamento de títulos de dívida.
  • Negociações de Balcão (OTC): apoio às operações diretas entre as partes, que acontecem fora das bolsas tradicionais.
  • Conta Corrente e Tesouraria: soluções para a administração financeira interna das instituições.
  • Operações no Mercado Internacional: ferramentas para otimizar transações e investimentos em outros países.

A qualidade e a profundidade de suas soluções garantem que a Virtual Software tenha entre seus principais clientes os maiores bancos e corretoras do Brasil, solidificando sua posição como líder no fornecimento de tecnologia para o exigente e dinâmico mercado financeiro nacional.

Desafio mapeado

Por atuar com soluções baseadas em software e atender um mercado que exige alta confiabilidade e agilidade, a Virtual Software precisava otimizar seu ciclo de desenvolvimento e entrega contínua. Na época, a empresa utilizava o Team Foundation Server (TFS), plataforma que passou a apresentar entraves importantes:

  • Colaboração distribuída limitada: a arquitetura do TFS dificultava o trabalho simultâneo de múltiplos times sobre a mesma base de código, impactando a escalabilidade.
  • Alto custo de manutenção: manter a infraestrutura on-premise do TFS exigia tempo e esforço da equipe interna, desviando o foco do core business.
  • Baixa rastreabilidade: o uso de ferramentas desconectadas tornava o processo de controle de versões manual e suscetível a falhas, especialmente crítico em um ambiente regulado como o financeiro.

Por que escolher a GitHub?

Com o objetivo de otimizar os seus processos de entrega contínua de soluções de tecnologia e modernizar suas práticas de engenharia, a plataforma GitHub se mostrou ideal em função de seu ecossistema robusto, disponível no formato open source e com forte investimento em inovação. As capacidades, apresentadas pelo time da ilegra, foram fundamentais na escolha da plataforma, uma vez que foi possível, além de realizar a migração dentro um curto espaço, otimizar o processo de releases das aplicações existentes.

Como a ilegra ajudou a solucionar o desafio?

Apesar de possível e extremamente efetiva em termos de custo, uma migração utilizando uma abordagem lift-and-shift não atenderia os desafios apresentados de maneira satisfatória. Durante a fase de planejamento, identificou-se a necessidade de modernizar também o processo de release. Desenhamos e implementamos uma nova estratégia de branching baseada no GitHub Flow, integrando práticas modernas de CI/CD desde o início da migração.

Fluxo de trabalho do GitHub

Entre os principais elementos do novo fluxo de trabalho, destacam-se:

  • Requisição de mudanças: clientes da Virtual Software fazem requisições de solicitações de novas funcionalidades via plataforma de atendimento.
  • Criação de backlog de trabalho: através da chamada de APIs, o sistema cria issues na Plataforma GitHub com a descrição do trabalho a ser feito.
  • Implementação: para cada issue, é criada uma feature branch, uma versão isolada da aplicação que receberá as novas funcionalidades. Estas branches são short-living, ou seja, existem apenas durante a implementação e validação.
  • Merge Request: momento em que as mudanças implementadas são submetidas e integradas ao código principal. Neste momento são aplicados os critérios de qualidade como testes de aceitação e revisão de código.
  • Geração de release: todas as funcionalidades implementadas são agrupadas na branch principal e geram uma tag do repositório. Nesta tag imutável é gerada uma nova versão de aplicação, bem como o artefato de release notes que contém todas as mudanças implementadas desde a última tag gerada.
  • Empacotamento: com base na tag gerada, um processo automatizado gera um pacote que será disponibilizado para os clientes poderem instalar a aplicação na sua infraestrutura.

Resultados obtidos

Com a migração concluída e o novo fluxo implementado, a Virtual Software reduziu mais de 200% do tempo de geração de releases. Com um processo integrado e automatizado, foi possível eliminar etapas manuais do processo anterior aumentando a rastreabilidade do processo ponta-a-ponta. Gustavo Cury, sócio-diretor da Virtual Software destaca a sua percepção do novo processo de liberação:

“Na plataforma TFS, o processo de geração de novas versões dependia de ferramentas customizadas que desenvolvemos. Detalhar quais as mudanças estavam em cada versão era uma tarefa manual que dependia da verificação de informações em diferentes sistemas e grupo de pessoas. O pipeline na plataforma GitHub automatizou 100% deste processo.”

Além disso, a facilidade de integração das diferentes soluções de GitHub baseada em APIs, como GitHub Actions, GitHub Projects, Issues e Pull Requests, permitiu que o time entrasse em operação como novo modelo de trabalho logo após os primeiros repositórios migrados.

Compartilhe esse post: