Entre para a LISTA VIP da Black Friday

00

DIAS

00

HORAS

00

MIN

00

SEG

Clique para saber mais
Alura > Cursos de DevOps > Cursos de Builds > Conteúdos de Builds > Primeiras aulas do curso Integração Contínua: mais qualidade e menos risco no desenvolvimento

Integração Contínua: mais qualidade e menos risco no desenvolvimento

O que é integração contínua? - Introdução

Boas vidas ao curso de Integração Contínua da Alura, sou Nico Steppat e irei lhe acompanhar nas próximas aulas.

O que aprenderemos ao longo das aulas? O primeiro passo é entender o que a ação contínua tenta resolver, e quais são os ingredientes para chegar a resultados bem sucedidos.

É importante mencionar que o curso não é um laboratório, ou seja, não escolheremos nenhuma ferramenta específica para programar a integração contínua. Mencionaremos, sim, algumas ferramentas e aprenderemos boas e más práticas, mas sem efetivamente utilizar o controle do servidor de integração contínua.

Para esse curso ser proveitoso, é necessário que se tenha alguma noção de desenvolvimento e experiência em projetos. A ementa no nosso curso será, portanto:

Vamos lá?

O que é integração contínua? - Entendendo o problema

Nesta aula falaremos de práticas concretas relacionadas à integração contínua e quais são os problemas que ela busca resolver.

O software na atualidade não é criado a partir de um único desenvolvedor, as equipes são multifuncionais que alterarão a mesma base de código.

Cada desenvolvedor terá o seu código local em sua máquina, embora haja um repositório compartilhado. Muitas vezes o desenvolvedor deverá fazer alterações solicitadas pelo cliente, corrigir bugs e assim por diante.

As alterações, inicialmente, são feitas no código local de cada desenvolvedor e só então deverão ser aplicadas no repositório compartilhado. Neste momento é que temos o ponto crítico.

É comum que a sincronização da cópia local com o repositório demore, e então esta etapa é feita normalmente ao fim do processo de desenvolvimento.

No momento em que os desenvolvedores começam a sincronizar os códigos, aparecem os problemas. Trata-se de um evento especial, tanto que em alguns casos existe um desenvolvedor sênior que irá monitorar esse processo.

Como se trata de um processo demorado, outros ambientes ficam desatualizados, como o de teste. Muitas vezes testamos casos que não são mais reais dentro do projeto, por isso devemos conseguir acelerar esse processo.

Integração contínua, em outras palavras, nada mais é que integrar as atualizações frequentemente na base diária.

Temos o tempo, um sprint, em que existem várias interações. No fim desse sprint acontecem as integrações e isso aumenta o risco de problemas, exatamente pela sincronização se dar ao final do ciclo de software.

grafico

O código que planejamos localmente e funcionava, pode sofrer incompatibilidade com as alterações de outros desenvolvedores, além de problemas de versões e bugs. Tudo isso irá atrasar o projeto.

O ideal é tenhamos uma integração contínua, pequenas alterações todo o tempo, e assim garantir que o software funcione de maneira adequada. Dessa maneira teremos sempre um feedback rápido.

continuidade

Segundo a Thought Works, integração contínua é:

"Continouous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day."

Existem várias técnicas e ferramentas que podem ajudar a aplicarmos a CI. Ao longo do curso aprenderemos alguns recursos para de fato utilizar essa metodologia no dia a dia de desenvolvimento.

O que é integração contínua? - Sistema de controle de versão

Antes de passarmos para os modelos de integração, discutiremos brevemente sobre os VCS, Modelos de controle de versão.

Em uma equipe de desenvolvimento, precisaremos de uma ajuda para sincronizar e manter o histórico do código, de maneira concreta utilizamos ferramentas como Git e SVN.

A integração contínua não possui necessidade de muitas ferramentas, em tese, mas alguns auxílios que são padrão em práticas de desenvolvimento são requiridos.

O Git é o mais popular em integração hoje em dia, mas não precisamos utiliza-lo, basta que tenhamos algum modelo de controle de versão de nossa escolha.

A ferramenta em si não importa, mas o que devemos inserir em nosso sistema de controle? De maneira geral, deve conter tudo aquilo que é necessário para a construção do projeto.

Devemos definir uma formatação de código para a equipe. Para começarmos um projeto é necessário fazer o clone - a cópia local - e o comando unificado.

Não significa que devemos comitar o artefato de construção, ou seja, no caso de um desenvolvedor Ruby ou Gem não deveria estar dentro do repositório, o mesmo ocorre no mundo Java. Resultados da construção do software não são comitados como como gem, jar, image e modules.

Sabemos o que comitar e o que não comitar, então seguiremos estudando os modelos de repositório que exitem no mercado.

Sobre o curso Integração Contínua: mais qualidade e menos risco no desenvolvimento

O curso Integração Contínua: mais qualidade e menos risco no desenvolvimento possui 112 minutos de vídeos, em um total de 41 atividades. Gostou? Conheça nossos outros cursos de Builds em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Builds acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas