DevOps: preparando o ambiente ideal para os desenvolvedores
Veja neste artigo como utilizar o NetBeans, Maven, GitHub, Jenkins e JUnit para melhorar o desenvolvimento em equipe.
Esta demonstração é feita através da implementação de um exemplo básico de um projeto Java utilizando diversas tecnologias, a saber: IDE NetBeans, versionamento de código com o Git e armazenamento deste em um servidor remoto GitHub, testes unitários com JUnit e integração contínua com o Jenkins.
Apesar de utilizar um grande número de ferramentas, o artigo tem foco em descrever a integração entre elas, possibilitando que um iniciante em programação possa utilizar todas elas sem que para isso precise ter conhecimentos avançados.
A arquitetura
obtida com essa integração faz com que o Jenkins verifique mudanças junto ao repositório
e, assim que detectá-las, construa o projeto e execute os testes, notificando a
equipe em caso de falhas ou sucesso.
Autores: Juliano Rodrigo Lamb, Everton Coimbra de Araújo e Evando
Carlos Pessini
No atual cenário de ascensão de novas soluções e tecnologias, pode-se citar a cultura DevOps entre os grandes destaques. Este novo conceito, que objetiva criar uma cultura de colaboração, permite aumentar o fluxo de trabalho contínuo, valendo-se principalmente da automação de tarefas.
Com este fluxo de trabalho, além da padronização das atividades de desenvolvimento, espera-se que o produto de software ganhe em estabilidade e robustez.
Ademais, a adoção deste quadro de trabalho que a cultura DevOps acaba criando contribui com a redução do tempo consumido no desenvolvimento, uma vez que um software pode ser pensado como um processo de fabricação em uma linha de montagem.
Neste momento vale ressaltar que a cultura DevOps não é composta por uma solução pronta e empacotada, mas sim pela adoção de diferentes opções do mercado.
Portanto, não é correto afirmar que exista a solução perfeita que resolva todos os problemas a que o DevOps se propõe. É necessária, então, a opção por um conjunto de ferramentas, dentre as diversas oferecidas pelo mercado, de acordo com as condições encontradas na empresa, como o escopo do projeto, o sistema operacional utilizado, a habilidade da equipe desenvolvedora, dentre outras variáveis.
Como opções mais comuns, podemos citar o Maven, JUnit, Jenkins e Git. Em conjunto, tais tecnologias proporcionam redução do tempo de desenvolvimento e automação de tarefas.
A aplicação dos princípios da cultura DevOps, por meio da incorporação de certas tecnologias no processo de desenvolvimento, impõe mudanças no fluxo de trabalho ao qual as equipes estão habituadas, uma vez que ajustes deverão ser feitos para adequar-se ao modo pelo qual as ferramentas interagem.
Os benefícios são observados em qualquer circunstância, mas ganham em importância quando o processo de desenvolvimento de software é realizado integrando equipes responsáveis pelo desenvolvimento (programadores, por exemplo) e infraestrutura (responsáveis por colocar a aplicação em execução), principalmente por oferecer mecanismos para resolver problemas observados nesta integração.
Estes problemas dizem respeito, em sua maioria, a erros que possam ocorrer durante o deploy, processo no qual uma equipe atribui à outra a responsabilidade: a equipe de desenvolvimento atribui o problema a uma infraestrutura inadequada para execução e a equipe de infraestrutura culpa a equipe de desenvolvimento por não implementar (ou comunicar) corretamente os requisitos da aplicação, por exemplo.
É possível observar, no entanto, a adoção de um quadro de trabalho diferente do tradicional, em novas empresas de desenvolvimento de software, pois uma única equipe é responsável por todo o processo, desde as fases de construção até a implantação da aplicação, devendo esta mesma equipe resolver qualquer problema que ocorra inclusive na disponibilização junto ao cliente.
A proposta do DevOps não atende exatamente a este cenário, e sim a um cenário com equipes distintas, cada uma com suas responsabilidades (desenvolvimento e infraestrutura, por exemplo).
De maneira geral, com base nas vantagens observadas com a utilização das tecnologias DevOps, pode-se dizer que muitos processos são simplificados (como o gerenciamento de código-fonte), que a comunicação entre os membros da equipe é melhorada (como no caso de falha ou sucesso ao executar um teste, em que toda a equipe é notificada imediatamente) e que a automação das atividades traz grandes benefícios.
Esta automação cria um ambiente formal, o qual possibilita que novas aplicações sejam criadas adotando as mesmas ferramentas já instaladas, configuradas e padronizadas. Deste modo, softwares são produzidos de modo repetitivo, em um ambiente controlado.
Considerando o cenário de desenvolvimento de software e os benefícios da cultura DevOps, este artigo apresenta uma proposta de integração de ferramentas sem se preocupar com o tamanho da aplicação a ser construída, pois a proposta atende a soluções de diferentes tamanhos e mantém o foco na arquitetura.
Criação de um projeto Maven
O Maven é uma ferramenta pertinente à cultura DevOps, pois seu propósito está na automação do processo de compilação de projetos, podendo ser utilizado com diferentes linguagens (sendo mais comum em projetos Java).
Além disso, o Maven é capaz de efetuar o gerenciamento de todas as dependências (ou bibliotecas) externas ao projeto, de maneira automatizada, bastando que o desenvolvedor especifique qual dependência deseja utilizar e sua versão.
E como mais uma facilidade, para seu uso no NetBeans não é necessária instalação, pois esta é ocorre junto com a instalação da IDE.
A criação de um projeto Maven gera uma estrutura de arquivos e pacotes pré-definida conforme o tipo de aplicação e suas configurações são especificadas no arquivo pom.xml. Este arquivo contém todas as informações do projeto e, de maneira simplificada, sua principal função está na especificação das dependências ao funcionamento e compilação do projeto. " [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo