Artigo no estilo Mentoring

Mentoring:DevOps é um dos termos mais populares do momento no mercado da Tecnologia da Informação. Muito se fala a respeito, e a expectativa quanto aos benefícios de sua adoção é alta. Com base nisso, este artigo visa contribuir com a discussão e disseminação de alguns dos elementos básicos que o constituem, a partir de um misto de impressões, constatações de âmbito cultural e, também, tutoriais que, em uma abordagem essencialmente prática, introduzirão algumas das tecnologias e plataformas mais populares empregadas nesse contexto.

Em artigo publicado na edição 149 da Java Magazine, aprendemos a construir um ambiente de integração contínua baseado em Maven e Jenkins, suportado por medições estáticas de qualidade a partir de uma plataforma chamada Sonar Qube. O objetivo principal de todo o artigo foi, a partir de um tutorial prático, introduzir algumas das ferramentas mais populares do mercado contemporâneo para o desenho de processos dinâmicos de desenvolvimento de software, com foco na prática DevOps.

O resultado desse trabalho, que servirá de ponto de partida para este artigo, foi resumido na Figura 1. Nela, vemos a máquina de desenvolvimento, configurada com uma IDE (neste caso, o Eclipse), Git e Maven. Uma vez que parte do código do software tenha sido escrito, ele passa por uma validação local, realizada a partir da execução de testes unitários. Então, esse mesmo código é submetido a um controle local e, a seguir, remoto, de versão.

Quando esse repositório remoto, hospedado em uma conta GitHub, recebe esse conteúdo, dispara uma requisição de execução do primeiro de uma cadeia de jobs em um servidor de integração contínua (Jenkins), hospedado em um gear OpenShift. A partir desse primeiro job, todos os demais são executados sequencialmente, e o resultado final é um build completo, associado a uma análise estática da qualidade do projeto. Essa análise é feita por uma instância do Sonar Qube, também hospedada em um gear OpenShift.

No artigo de hoje, retomaremos muitos dos pontos que acabamos de citar, estendendo-os e refinando-os para oferecer, ao final, um processo alinhado aos principais fundamentos e práticas do que hoje se rotula como DevOps no mercado de TI. Obviamente, por ser esse um tema ainda em franca evolução, a visão levantada ao longo deste material será, naturalmente, fonte para uma série de discussões complementares. Saiba que esse não é um material definitivo sobre DevOps, mas uma introdução que visa trazer ao leitor informações que o ajudem a adotá-lo em seu cotidiano.

Estrutura de Integração Contínua e Análise Estática do projeto-guia
Figura 1. Estrutura de Integração Contínua e Análise Estática do projeto-guia.

Entendendo o nosso ponto de partida

O projeto-guia de todo este artigo, bem como daquele publicado na edição 149, consiste em uma aplicação Java, stand-alone, para o cálculo de resistências elétricas a partir de um padrão de faixas e cores. Esse projeto apresenta, além do código principal, testes unitários que validam todos os requisitos levantados. Todo esse conteúdo está devidamente salvo em um repositório público no GitHub, podendo ser visto e baixado pelo leitor a partir da referência que se encontra na seção Links.

A primeira grande decisão que tivemos de tomar, antes mesmo de iniciar a escrita do software em si, relacionou-se à plataforma de gerenciamento do ciclo de vida desse projeto. Esse é um ponto bastante importante, e qualquer escolha que se tome nesse instante refletirá, posteriormente, em todo o andamento do trabalho.

Por ciclo de vida de projeto, devemos entender atividades que vão desde o gerenciamento de dependências do produto até operações básicas como compilação, teste, empacotamento, implantação e, inclusive, execução.

Nesse contexto, o Maven ainda é uma ferramenta muito popular. É fato que, há alguns anos, vem disputando espaço com outras plataformas bem interessantes, como o Gradle, mas seu índice de utilização ainda é muito expressivo, sobretudo, no mundo corporativo. Ao final do artigo, na seção Links, recomendamos uma leitura complementar sobre esse tema.

Foi essa grande popularidade, aliada à maior familiaridade de toda a comunidade com ...

Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO

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
até 50% OFF
A partir de
R$ 79 /mês
Assinar agora