Referência: como funciona o processo de Integração Contínua

Hoje veremos a história do termo, discutiremos as dificuldades de implementação de CI e forneceremos diversas ferramentas populares que ajudarão você a trabalhar com ele.

Referência: como funciona o processo de Integração Contínua
/flickr/ Altug Karakoc / CC BY / Foto modificada

prazo

Integração Contínua é uma abordagem para desenvolvimento de aplicativos que envolve construções frequentes de projetos e testes de código.

O objetivo é tornar o processo de integração previsível e detectar potenciais bugs e erros numa fase inicial, para que haja mais tempo para corrigi-los.

O termo Integração Contínua apareceu pela primeira vez em 1991. Foi apresentado pelo criador da linguagem UML Grady Butch (Grady Booch). O engenheiro introduziu o conceito de CI como parte de sua própria prática de desenvolvimento - Método Booch. Implicou um refinamento incremental da arquitetura ao projetar sistemas orientados a objetos. Gradi não descreveu nenhum requisito para integração contínua. Mas mais tarde em seu livro “Análise e Design Orientado a Objetos com Aplicativos“Ele disse que o objetivo da metodologia é agilizar a divulgação dos “releases internos”.

história

Em 1996, o CI foi adotado pelos criadores da metodologia programação extrema (XP) - Kent Beck (Kent Beck) e Ron Jeffries (Rony Jeffries). A integração contínua tornou-se um dos doze princípios-chave da sua abordagem. Os fundadores do XP esclareceram os requisitos da metodologia CI e observaram a necessidade de construir o projeto várias vezes ao dia.

No início dos anos 2000, um dos fundadores da Agile Alliance começou a promover a metodologia de integração contínua Martin Fowler (Martin Fowler). Suas experiências com CI levaram à primeira ferramenta de software nesta área – CruiseControl. O utilitário foi criado pelo colega de Martin, Matthew Foemmel.

O ciclo de construção na ferramenta é implementado como um daemon que verifica periodicamente o sistema de controle de versão em busca de alterações na base de código. A solução pode ser baixada hoje - é distribuído por sob uma licença semelhante ao BSD.

Com o advento dos softwares para CI, cada vez mais empresas começaram a adotar a prática. De acordo com pesquisa da Forrester [página 5 reportar], em 2009, 86% das cinquenta empresas de tecnologia pesquisadas usaram ou implementaram métodos de CI.

Hoje, a prática de Integração Contínua é utilizada por organizações de diversos setores. Em 2018, um grande fornecedor de serviços de nuvem realizou uma pesquisa entre especialistas de TI de empresas dos setores de serviços, educação e finanças. Dos seis mil entrevistados, 58% disseram que utilizam ferramentas e princípios de CI em seu trabalho.

Как это работает

A integração contínua é baseada em duas ferramentas: um sistema de controle de versão e um servidor CI. Este último pode ser um dispositivo físico ou uma máquina virtual em ambiente de nuvem. Os desenvolvedores carregam novos códigos uma ou mais vezes por dia. O servidor CI o copia automaticamente com todas as dependências e o constrói. Depois, executa testes de integração e unitários. Se os testes forem aprovados, o sistema CI implantará o código.

O diagrama geral do processo pode ser representado da seguinte forma:

Referência: como funciona o processo de Integração Contínua

A metodologia CI impõe uma série de requisitos aos desenvolvedores:

  • Corrija os problemas imediatamente. Este princípio veio para a CI a partir da programação extrema. Corrigir bugs é a maior prioridade dos desenvolvedores.
  • Automatize processos. Os desenvolvedores e gerentes devem procurar constantemente gargalos no processo de integração e eliminá-los. Por exemplo, muitas vezes há um gargalo na integração Acontece testando.
  • Realize assembleias sempre que possível. Uma vez por dia para sincronizar o trabalho da equipe.

Dificuldades de implementação

O primeiro problema são os altos custos operacionais. Mesmo que uma empresa utilize ferramentas abertas de CI (sobre as quais falaremos mais tarde), ela ainda terá que gastar dinheiro em suporte de infraestrutura. No entanto, as tecnologias de nuvem podem ser a solução.

Eles simplificam a montagem de configurações de computadores em diferentes escalas. Mais da empresa ser pago apenas pelos recursos utilizados, o que ajuda a economizar em infraestrutura.

De acordo com pesquisas [página 14 artigos], a integração contínua aumenta a carga sobre os funcionários da empresa (pelo menos no início). Eles têm que aprender novas ferramentas e os colegas nem sempre ajudam no treinamento. Portanto, você terá que lidar com novas estruturas e serviços em trânsito.

A terceira dificuldade são os problemas de automação. Organizações com uma grande quantidade de código legado que não é coberto por testes automatizados enfrentam esse problema. Isso leva ao fato de que o código é simplesmente reescrito antes da implementação completa do CI.

Referência: como funciona o processo de Integração Contínua
/flickr/ seu / CC BY-SA

quem usa

Os gigantes de TI foram dos primeiros a apreciar os benefícios da metodologia. Google usa integração contínua desde meados dos anos 2000. O CI foi implementado para resolver o problema de atrasos no mecanismo de busca. A integração contínua ajudou a detectar e resolver problemas rapidamente. Agora o CI é usado por todos os departamentos da gigante de TI.

A integração contínua também ajuda as pequenas empresas, e as ferramentas de CI também são utilizadas por organizações financeiras e de saúde. Por exemplo, na Morningstar, os serviços de integração contínua ajudaram a corrigir vulnerabilidades 70% mais rápido. E a plataforma médica da Philips Healthcare conseguiu dobrar a velocidade das atualizações de testes.

Ferramentas

Aqui estão algumas ferramentas populares para CI:

  • Jenkins é um dos sistemas CI mais populares. Suporta mais de mil plugins para integração com diversos VCS, plataformas em nuvem e outros serviços. Também usamos Jenkins na 1cloud: ferramenta incluído em nosso sistema DevOps. Ele verifica regularmente o branch Git destinado ao teste.
  • Construir bot — uma estrutura python para escrever seus próprios processos de integração contínua. A configuração inicial da ferramenta é bastante complicada, mas isso é compensado pelas amplas opções de personalização. Entre as vantagens do framework, os usuários destacam a baixa intensidade de recursos.
  • Saguão CI é um servidor da Pivotal que usa contêineres Docker. O Concourse CI integra-se a quaisquer ferramentas e sistemas de controle de versão. Os desenvolvedores observam que o sistema é adequado para trabalhar em empresas de qualquer porte.
  • CI do Gitlab é uma ferramenta integrada ao sistema de controle de versão GitLab. O serviço é executado na nuvem e usa arquivos YAML para configuração. Como Concourse, Gitlab CI aplica Contêineres Docker que ajudam a isolar diferentes processos uns dos outros.
  • Codificação é um servidor de CI em nuvem que funciona com GitHub, GitLab e BitBucket. A plataforma não requer uma configuração inicial longa - processos CI padrão pré-instalados estão disponíveis no Codeship. Para projetos pequenos (até 100 compilações por mês) e de código aberto, o Codeship está disponível gratuitamente.

Materiais do nosso blog corporativo:

Fonte: habr.com

Adicionar um comentário