9 ideias e tópicos interessantes do projeto Jenkins [para iniciantes e experientes]

Publicados: 2020-09-10

Jenkins é uma ferramenta de código aberto popular entre os profissionais de DevOps. Ele facilita a integração contínua e é construído em Java. Se você está aprendendo sobre DevOps e automação, deve conhecer o Jenkins, pois está entre as ferramentas de equipes de DevOps mais famosas. As equipes de DevOps usam essa ferramenta durante todo o ciclo de desenvolvimento de um produto de software.

A melhor maneira de aprender sobre uma ferramenta como o Jenkins é trabalhando em seus projetos. É por isso que discutiremos nossas principais ideias de projetos Jenkins neste artigo. Nossos projetos são para vários níveis de habilidade para que você possa escolher de acordo com seus interesses e experiência. Vamos começar:

Índice

Nossas principais ideias de projetos Jenkins

Pré-requisitos

Observe que antes de começar a trabalhar em qualquer um dos projetos Jenkins a seguir, você deve ter conhecimento suficiente de Java. Jenkins é baseado em Java e, portanto, você deve estar familiarizado com sua sintaxe e implementações. Caso contrário, você teria dificuldades para concluir alguns dos projetos que discutimos abaixo. Alguns projetos requerem habilidades adicionais.

1. Oceano Azul

Este é um projeto sobre o qual você deve aprender enquanto trabalha com o Jenkins. O Blue Ocean permite que os usuários criem, diagnostiquem e visualizem Pipelines de CD (Entrega Contínua) por meio de gráficos. Ele simplifica o uso do Jenkins oferecendo uma interface gráfica única e fácil de usar. Se você é novo em pipelines de entrega contínua ou tem alguma experiência, você achará relativamente fácil de aprender.

Blue Ocean tornou-se parte integrante do Jenkins desde a sua chegada, e é por isso que você deve aprender sobre seu funcionamento. Aprender sobre o Blue Ocean garantirá que você saiba como o Jenkins funciona e como você pode usá-lo para entrega contínua. Seus recursos de visualização permitem que você represente pipelines de forma que você também possa mostrá-los a usuários não técnicos. A representação simples também facilita o diagnóstico de problemas. Você pode facilmente encontrar erros usando a visualização e corrigi-los rapidamente.

Em suma, aprender sobre o Blue Ocean o beneficiaria muito ao se familiarizar com o Jenkins.

2. Infraestrutura Jenkins

Jenkins é uma tecnologia de código aberto. Isso significa que seu código está disponível para todos abertamente. Se você é um programador experiente e deseja mostrar seus conhecimentos, pode contribuir com sua infraestrutura. Ficaria ótimo em seu currículo e ajudaria você a aprender muito sobre tarefas colaborativas. Você também poderá experimentar como as tecnologias de código aberto melhoram enquanto ajudam o Jenkins a melhorar.

Existem várias maneiras de contribuir para a infraestrutura Jenkins. Você pode contribuir para o site deles ou para a infraestrutura primária da tecnologia. Para contribuir com o site, você terá que usar HTML, enquanto você precisará implementar Ruby para contribuição de infraestrutura. Possui uma próspera comunidade de desenvolvedores e colaboradores, que terão prazer em ajudá-lo caso você enfrente algum problema. Você pode acessar aqui para saber mais sobre a infraestrutura Jenkins .

3. Projeto Remoto Jenkins

Esta é uma excelente ideia de projeto para estudantes e entusiastas de networking. Isso permitiria que você aprendesse os aplicativos de rede do Jenkins e visse como você pode aprimorar sua implementação. Jenkins Remoting é um arquivo e uma biblioteca para implementar uma camada de comunicação. Possui protocolos TCP, fluxo de dados, chamadas de procedimentos, etc. Por ser baseado em protocolos TCP, a falha do mesmo faz com que a conexão do agente também falhe. Os protocolos causam obstáculos quando vários agentes também se comunicam por meio dele. Essas desvantagens afetam a escala e a estabilidade do Jenkins.

Portanto, neste projeto, você pode melhorar o Jenkins Remoting. Você pode fazer isso tornando-o compatível com uma tecnologia de barramento/fila de mensagens (ActiveMQ ou RabbitMQ). Poderia atuar como a camada tolerante a falhas para Jenkins. Para concluir este projeto, você deve estar familiarizado com os conceitos básicos de rede, filas de mensagens e Java.

4. Melhore o Jenkins ATH

Jenkins ATH (Acceptance Test Harness) é uma ferramenta para testar bibliotecas DSL e Jenkinsfiles antes de implantá-los. No entanto, a versão antiga desta ferramenta tem várias desvantagens:

  • Ele precisa inicializar uma instância completa para cada método de teste, por isso é relativamente lento em desempenho
  • Ambientes reais geralmente requerem um conjunto exato de plugins e suas versões

Você pode melhorar o Jenkins ATH corrigindo esses dois problemas. Se você não trabalhou em nenhum projeto do Jenkins antes, pode começar a corrigir um desses problemas primeiro e depois passar para a solução do próximo. Para concluir este projeto, você deve estar familiarizado com o Docker e o Selenium, juntamente com o Java.

5. Plugin para a Etapa Descartar Builds

Neste projeto, você precisa criar um plug-in que dê aos usuários a capacidade de gerenciar sua política de retenção de dados de forma mais adequada. O plug-in deve permitir que os usuários implementem a política para construir artefatos, históricos e espaços de trabalho. Normalmente, os administradores de uma tarefa precisam lidar com esse problema, mas fornecer aos colaboradores do projeto a capacidade de implementar sua política de retenção de dados seria mais adequado. Seu plug-in deve permitir que os usuários criem e definam sua política de retenção de dados usando uma etapa de criação de pipeline.

Você pode melhorar o recurso Discard Old Builds e torná-lo mais adequado para código. Você pode se concentrar em oferecer mais recursos do que o atual recurso Discard Old Builds oferece. O funcionamento do seu plugin pode estar em duas seções. Primeiro, ele selecionaria as compilações a serem descartadas de acordo com o histórico de um determinado trabalho. Em seguida, ele deve descartar as compilações que adicionou à sua lista.

É um dos projetos Jenkins mais interessantes, e você aprenderia muito ao completá-lo. Você pode usar o Run Selector Plugin como base para seu projeto.

6. Cobertura do Código

Você pode construir um plugin que realiza cobertura de código. Embora esteja entre as ideias de projeto Jenkins mais comuns, você pode dar um passo adiante tornando sua ferramenta de cobertura de código única e poderosa. Por exemplo, você pode mesclar várias ferramentas de cobertura de código em uma e tornar seu plug-in mais versátil e prático. Se você é iniciante, pode construir apenas um plug-in de cobertura de código simples. Por outro lado, se você é um programador experiente do Jenkins, pode tornar o projeto mais desafiador seguindo a ideia que compartilhamos aqui, ou seja, combinar diferentes plugins em um só.

Além do Java, você também terá que implementar HTML e CSS neste projeto. Eles o ajudarão a tornar a estrutura e a aparência de sua ferramenta melhores e mais atraentes.

7. Ferramentas EDA

As ferramentas de Electronic Design Automation (EDA) são bastante populares entre os engenheiros devido às várias vantagens. Você pode construir um plugin que integre uma ferramenta EDA com Jenkins, melhorando o desempenho de ambas ao mesmo tempo. A integração da ferramenta EDA com o Jenkins permitirá que os usuários executem muitas tarefas que antes não conseguiriam. Por exemplo, eles podem publicar relatórios de tempo, usar outros plug-ins do Jenkins de acordo com seus requisitos, iniciar trabalhos do Pipeline com etapas etc.

Existem muitas ferramentas EDA de código aberto disponíveis no mercado. Você pode escolher qualquer uma dessas ferramentas de código aberto (FuseSoC, icetools, Yosys, etc.) Se você é iniciante, pode começar com uma ferramenta EDA e integrá-la ao Jenkins. Por outro lado, você pode tornar essa tarefa mais desafiadora integrando diferentes ferramentas EDA com vários plugins Jenkins. É um excelente projeto para aprender as aplicações de Jenkins no campo da engenharia.

8. Armazenamento externo para impressão digital Jenkins

O Jenkins armazena artefatos, credenciais, seu histórico de uso e outros dados relevantes por meio de seu mecanismo de impressão digital. O mecanismo possui um banco de dados XML com várias WebUIs para facilitar sua operação. Você pode criar um plugin Jenkins que permite que o mecanismo Jenkins Fingerprinting armazene seus dados de armazenamento externo.

Muitas organizações podem ter que exportar seus dados para outro armazenamento por vários motivos (por exemplo, pouco armazenamento no mecanismo). Sua solução permitiria que os usuários exportassem seus dados do mecanismo e os usassem para outros fins. Você deve ter alguma experiência em trabalhar em projetos Jenkins antes de começar a trabalhar neste.

Você teria que usar JavaScript, API REST e Java para concluir esta tarefa. Você também deve estar familiarizado com bancos de dados e suas operações, pois trabalharia com eles neste projeto.

9. Conversor de Trabalho para Jenkins

Jenkins é uma ferramenta para entrega contínua e, portanto, se concentra em pipelines para eficiência. No entanto, todos sabemos que muitos trabalhos são freestyle e não baseados em Pipeline. Você pode criar uma ferramenta para Jenkins que converte trabalhos de estilo livre em trabalhos de pipeline. O dispositivo teria que migrar os dados do trabalho de estilo livre para seu banco de dados e organizá-los em um trabalho de Pipeline.

Como iniciante, você pode manter o projeto simples criando uma ferramenta simples de migração e conversão. Por outro lado, você pode torná-lo mais desafiador, tornando-o capaz de migrar vários trabalhos de estilo livre e convertê-los em um único trabalho de Pipeline.

Sua ferramenta teria duas seções, uma para migração de dados e outra para conversão. Você deve estar familiarizado com Groovy (a linguagem responsável pelo Jenkins Pipeline), Python, Java, XML e Jenkins Pipelines para trabalhar neste projeto.

Saiba mais sobre Jenkins e entrega contínua

Chegamos ao fim da nossa lista. Esperamos que você tenha achado nossas ideias de projetos Jenkins úteis. Trabalhar nesses projetos o ajudará a se tornar um melhor usuário e desenvolvedor do Jenkins. Também lhe daria experiência em implementações de Entrega Contínua. Se você quiser saber mais sobre Jenkins e entrega contínua, recomendamos acessar nosso blog. Você encontrará muitos recursos valiosos e interessantes (como este) em nosso blog. Aqui estão dois para sua leitura adicional:

  • Salário Jenkins na Índia
  • O que é Jenkins? História, arquitetura e muito mais
  • Perguntas da entrevista de Jenkins

Se você estiver interessado em aprender mais sobre desenvolvimento full-stack, confira o PG Diploma in Full-stack Software Development da upGrad & IIIT-B, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos e atribuições , IIIT-B Alumni status, projetos práticos práticos e assistência de trabalho com as principais empresas.

Quais são seus pensamentos sobre este artigo? Qual ideia de projeto você mais gostou? Deixe-nos saber na seção de comentários abaixo.

Curso de Desenvolvimento de Software | Domine Java, C, Python e muito mais‎

APRENDIZAGEM CONFIÁVEL NA INDÚSTRIA - CURSO PRÁTICO - CERTIFICAÇÃO RECONHECIDA NA INDÚSTRIA.
Inscreva-se hoje