Em artigo publicado na Edição 147 da Java Magazine, abordamos alguns dos pontos mais relevantes sobre desenvolvimento de software à luz de um paradigma que vem agitando o mercado no Brasil e no mundo: DevOps.
Naquela ocasião, algumas plataformas e ferramentas foram aplicadas – sempre sob a perspectiva ‘Dev’ desta nova cultura – na evolução de um projeto Java até o ponto ilustrado pela Figura 1. Por esta imagem, notamos que o trabalho que será realizado neste artigo será baseado em um projeto de software com uma estratégia sólida de versionamento de código, através do Git. Percebemos, ainda, que todo o seu ciclo de vida é gerenciado pelo Apache Maven, e que todo o trabalho é viabilizado a partir de uma IDE muito popular, o Eclipse.
Esta combinação de tecnologias, somada a uma equipe madura e bem qualificada, caracteriza um excelente ponto de partida na busca pela excelência na ‘camada’ de desenvolvimento, e nos permite abordar, ao longo do texto que se segue, aspectos fundamentais dentro de outra frente igualmente importante: operações.
Enquanto desenvolvimento é um termo que remete à construção do software em si, a frente de operações engloba aspectos vinculados à sua validação e utilização. Operadores estão, frequentemente, preocupados com o provisionamento e monitoramento de toda a infraestrutura necessária para todo o trabalho de criação e, também, homologação do software. São profissionais que atuam em contato tanto com a equipe de desenvolvimento quanto com clientes, com o principal objetivo de garantir a fluidez do projeto por meio do provisionamento de toda a infraestrutura necessária em ambas as pontas.

Figura 1. Situação do projeto tema ao início deste artigo.
A primeira questão que abordaremos neste artigo é a da Integração Contínua de software. Ao implementá-la, garantiremos que toda alteração realizada em nosso repositório de código resulte, imediatamente, em uma atividade de construção (build) do projeto com o objetivo de identificar os impactos das alterações submetidas, tanto sob a perspectiva da consistência estrutural (por meio de operações como a compilação de todo o código) quanto de comportamento (através da execução de suítes de testes automáticos).
A Integração Contínua de Software
Ao aplicar um conjunto de tecnologias no desenvolvimento de um projeto de software de qualidade em nosso ambiente de trabalho, estamos nos prevenindo contra uma série de fatores de risco. Um bom sistema de versionamento, por exemplo, nos torna capazes de administrar a evolução do código-fonte com muito mais precisão. Ao estabelecermos o Maven na gestão do ciclo de vida de um sistema, delegamos a execução de atividades como controle de dependências, compilação, empacotamento e testes – dentre outras – para uma plataforma de software, tornando-as muito menos propensas a falhas.
Entretanto, manter toda esta configuração distribuída, sob a responsabilidade individual de cada desenvolvedor no projeto, é insuficiente. É importante que essas mesmas características sejam espelhadas em um ambiente considerado oficial, do qual se possa extrair versões de um produto, submetê-las à avaliação de equipes de testes e, em última instância, aos próprios clientes. A integração contínua é o primeiro grande passo neste sentido, e é sobre isto que passaremos a conversar nesta seção.
Mas o que é integração contínua, afinal?
Integração contínua é um dos temas mais populares em Engenharia de Software na atualidade. Mas, afinal de contas, esta integração remete a que? E por que contínua? O que isto quer dizer? De que estamos falando, mais especificamente?
Estas podem ser perguntas recorrentes que, principalmente profissionais mais novatos – inundados por uma imensidão de novidades divulgada diariamente em nosso mercado – podem estar se fazendo. Vamos, então, avaliar o conceito por trás do tema.
Quando se fala em integração contínua (ou simplesmente CI), os holofotes estão direcionados essencialmente para o código-fonte. Integração, portanto, remete à prá ...
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais