Ambiente de integração contínua com Jenkins

Em um ambiente de produção de software, a prática da Integração Contínua(CI) é uma ótima opção da métodologia ágil para o processo como parte da rotina, para alterações de código na ramificação principal de um repositório, e testes nas alterações com o máximo de antecedência e frequência possível, onde os desenvolvedores integrem os códigos todos os dias, passado ao cliente a ideia de continuidade.

A vantegem de um ambiente com Integração Contínua é a disponibilidade de manter um fluxo minimamente controlado e chance de falhas quase inexistentes, controle de branches dos ambientes de desenvolvimento, homologação e produção separados com geração de versão disparada e disponibilizada automaticamente ou manualmente pelo servidor de automação, sem interrupção. 

Com ferramentas como o Jenkins, essa métodologia pode ser aplicada com maior facilidade. Baseado em Java, o Jenkins ajuda a automatizar o processo de desenvolvimento de software por integração contínua e facilita certos aspectos da entrega contínua. 

Vamos montar um servidor de CI com jenkis na Absam para o desemvolvimento de um projeto simples como exemplo.

Para isso iremos instalar o jenkis a partir de um docker, caso não tenha um docker instalado no seu servidor Cloud Server na Absam, você pode instalar seguindo esse tutorial: https://absam.io/faq/content/1/62/pt-br/como-instalar-docker-no-cloud-server-com-ubuntu.html

Utilize o comando para instalar o jenkis: 

> docker pull jenkins/jenkins:lts

Referência: https://hub.docker.com/r/jenkins/jenkins/

Em seguida para rodar: > docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts Pronto! jenkins esta instalado e rodando na porta 8080 do seu servidor Cloud Server, para acessar vá ao navegador e acesse pelo endereço ip do seu servidor dessa forma: http://<endereco_ip>:8080  Ao acessar a primeira vez o endereço ele ira solicitar uma chave para password do administrador, a qual você poderá adquirir no local indicado na tela por ele.

Na tela seguinte recomendo que você siga instalando os plugins sugeridos, depois você pode reavaliar e deixar só o que for usar:

Na próxima etapa você cria o seu usuário ou continua como admin e em seguida define as configurações da instancia do seu servidor de automação.

Navegue por Gerenciar Jenkins > Gerenciar Plugins > Acesse a aba disponíveis

Você deverá instalar e configurar:

Build Monitor View — Será possível acompanhar os builds dos jobs que você criar

Periodic Backup — Vai ajudar você a manter as configurações de todo o seu jenkins (configurações gerais, de jobs, plugins)

Publish Over SSH — Vai possibilitar comunicação SSH com servidores locais ou na nuvem

Role-based Authorization Strategy — Gestão mínima de credenciais ao Jenkins

xUnit — Vai possibilitar gravar seus reports de testes

E um plugin de notificação, existes no link https://plugins.jenkins.io/ui/search?query=notification a depender do seu gosto e do tipo de ferramenta que usa para sua equipe.

Com essas ferramentas instaladas você pode montar uma gama variada de testes e pipelines para seu projeto. 

Você pode montar incialmente um job “construir um projeto de software free-style”, primeira opção da lista de jobs, que pode montar um jenkis para seu projeto do git.

Selecione para isso nessa tela a opção git e adicione o endereço do repositório git do seu projeto com as credenciais para o mesmo adicionando no botão add em credentials. e a branch é dev que ira utilizar para o desemvolvimento.

Selecione nessa configuração por exemplo o consultar periodicamente, que definirá o tempo que o Jenkins verificará se existe algum código novo na branch especificada, a expressão que especifiquei não é recomendada pois a verificação acontece a todo segundo, na interrogação ao lado deste campo existem exemplos de como combinar uma expressão mais adequada.

Com estas configurações iniciais quaisquer alterações que forem feitas já estarão sendo capturadas pelo seu job, e você poderá acompanhar a entrega de seus artefatos, acompanhamento de builds, notificações, backup e relatório de testes com as configurões utilizando os plugins citados anteriormente.

Existem diversas possibilidades com Jenkins, algumas utilizam estratégias de pipelines, Jenkinsfile que são muito interessantes para serém implemetas no projeto de sua equipe. 

A documentação para o Pipeline do Jenkins pode ser acessada aqui: https://www.jenkins.io/doc/book/pipeline/ 

Esperamos que com essa pequena pratica lhe dê uma experiencia do poder que a Integração Contínua pode fazer para ajudar a equipe como um todo no desenvolvimento de boas praticas ágeis.

Como funciona um balanceador de carga

O balanceamento de carga é uma excelente maneira de dimensionar sua aplicação e aumentar seu desempenho e redundância. O servidor Load Balancer recebe o pacote TCP/UDP e distribui entre as máquinas que foram configuradas no balanceador. É uma técnica comumente usada para otimizar a utilização de recursos, maximizar o rendimento, reduzir a latência e garantir configurações tolerantes a falhas. 

O balanceamento de carga utiliza Nginx e usa um algoritmo round-robin por padrão.

Em Pool de Servidores nós adicionamos os IPs dos servidores que serão balanceados.

Se você deseja melhorar o desempenho e a disponibilidade de seu aplicativo da web, um balanceador de carga é definitivamente algo a se considerar.

É muito importante que sua aplicação esteja preparada para balanceamento de carga, junto com tratamento de sessão (para evitar que o usuário ao dar um refresh na página seja deslogado porque o balanceador trocou a instância).

O consumo de Nuvem teve um Aumento com a Pandemia

Diante da pandemia, muitas empresas tiveram de aderir ao home office, e devido a isso, serviços de nuvem, em essencial o Iaas (Infraestrutura como Serviço) aumentaram muito. Isso se dá devido justamente por conta da facilidade ao acesso de dados da empresa sem a necessidade da atuação presencial, além de garantir a segurança dos dados e informações da organização. Um estudo da Gartner, líder em pesquisa do segmento de tecnologia, apresentou dados que demonstram essa expansão: no primeiro ano da pandemia, 2020, o aumento global do consumo de nuvem (IaaS) foi de 40,7%. Outro estudo, de 2020, realizado pela IBM em conjunto com a IDC (International Data Corporation), apresentou dados exclusivos sobre o consumo da nuvem no Brasil. A pesquisa levantou que, dentre as empresas entrevistadas, 59% utilizam algum tipo de nuvem. Desse montante, 33% fazem uso de nuvem pública, 31% consomem nuvem privada on– premise e 27% apostam na nuvem privada com hospedagem em provedor. Após as experiências notadas no trabalho remoto durante a pandemia ficou claro o aumento do cloud computing e que a tendência é que as empresas invistam em tecnologia cada vez mais.

O foco mudou e as expectativas do mercado agora estão voltadas para a agilidade que o digital oferece, aliada à produtividade e facilidade de adaptação e migração. Diante deste cenário de amplo crescimento, em que todos os tipos de empresas, de diversos segmentos, têm procurado investimentos em tecnologia com especial destaque para a nuvem, fica claro que esta ferramenta é uma aposta certeira. A nuvem apresenta inúmeras vantagens e, além disso, se trata de uma tendência mundial para os próximos anos, no trabalho remoto e fora dele.

Por que a nuvem cresceu tanto?

O cloud computing ganhou esse destaque durante o período de pandemia e home office exatamente por facilitar o acesso aos dados da empresa sem a necessidade da atuação presencial e por oferecer isso garantindo a segurança dos dados e informações da organização. O cloud também permite o compartilhamento de forma eficaz e ágil, resultando no aumento da produtividade dos colaboradores, o que era um receio de líderes e diretores de empresa: a queda no rendimento do trabalho e, consequentemente, perda de prazos e trabalhos com menos qualidade.

As expectativas para o pós-pandemia

O foco mudou e as expectativas do mercado agora estão voltadas para a agilidade que o digital oferece, aliada à produtividade e facilidade de adaptação e migração da computação em nuvem. Essa nova forma de atuação inclui ainda um novo meio de trabalho, o modelo híbrido, que muitas organizações estão aderindo: uma parte do trabalho é feito presencialmente e outra parte via home office.

Então vale a pena investir na nuvem?

A nuvem apresenta inúmeras vantagens e ainda se trata de uma tendência mundial para os próximos anos, no trabalho remoto e fora dele. Independente do segmento da empresa, seja ela indústria, serviços, e-commerce, gastronomia, educação, a nuvem tem poder para atender às principais demandas de tecnologia inerentes à atuação dessa ferramenta, então respondendo a pergunta: com toda certeza.

Sair da versão mobile