Vamos falar sobre GitLab.
A plataforma baseada na web para DevOps, GitLab, oferece um conjunto completo de ferramentas para o desenvolvimento de software, controle de versão, integração contínua, entrega (CI/CD) e comunicação. Baseado no Git, o bem conhecido sistema de controle de versão distribuído, fornece uma solução de gerenciamento de repositório centralizado.
O GitLab permite que equipes gerenciem eficientemente seus projetos de desenvolvimento de software, rastreiem mudanças e comuniquem-se sobre o código. Ele oferece ferramentas para gerenciamento de projetos, bem como funcionalidades como repositórios de código, rastreamento de problemas, revisões de código, integração contínua e implantação.
Principais Características do GitLab
- O sistema de controle de versão do GitLab, que usa o Git como base, permite que desenvolvedores rastreiem mudanças de forma eficiente, criem branches e gerenciem merges.
- O GitLab oferece um sistema de gerenciamento de repositório centralizado que permite aos programadores armazenar, organizar e gerenciar eficazmente sua base de código.
- Rastreamento de Problemas: Usando o sistema integrado de rastreamento de problemas do GitLab, equipes podem criar e rastrear problemas, atribuí-los a membros da equipe e monitorar seu progresso.
- O GitLab fornece uma poderosa pipeline CI/CD que automatiza os processos de build, teste e implantação. Permite que equipes mesclem mudanças de código instantaneamente, realizem testes automatizados e implantem aplicativos.
- Ferramentas de colaboração como revisões de código, comentários e conversas embutidas facilitam a cooperação entre os membros da equipe e a contribuição de ideias sobre mudanças no código.
- O GitLab possui ferramentas de gerenciamento de projetos como marcos, quadros, Kanban e quadros ágeis, permitindo que as equipes planejem e acompanhem com sucesso o progresso de seus projetos.
- Segurança e Controle de Acesso: Para garantir a integridade do código e proteger contra possíveis preocupações de segurança, o GitLab oferece várias capacidades de segurança, como controle de acesso baseado em função, aprovações de solicitação de mesclagem e gerenciamento de vulnerabilidades.
Figura 1 Arquitetura de Pipeline CICD do GitLab
O GitLab está disponível em várias edições, desde uma edição comunitária gratuita até uma versão premium com mais funcionalidades e opções de suporte. Pode ser usado como serviço baseado em nuvem através do GitLab.com ou hospedado localmente.
Integração Contínua e Entrega Contínua (CI/CD) do GitLab
O GitLab CI/CD é uma plataforma de integração contínua e entrega contínua robusta oferecida pelo GitLab, uma ferramenta de gerenciamento de repositórios Git baseada na web. As equipes podem automatizar cada etapa do ciclo de vida do desenvolvimento de software com o GitLab CI/CD, desde o commit de código até a implantação, usando um conjunto de pipelines.
Uma visão geral do processo CI/CD do GitLab é fornecida abaixo:
- Configuração do GitLab: Antes de começar, você deve ter um repositório GitLab configurado e pronto. Você pode configurar sua própria instância autohospedada do GitLab ou usar a versão hospedada na nuvem.
- .gitlab-ci.yml: O principal mecanismo por trás do GitLab CI/CD está contido no arquivo .gitlab-ci.yml. Este arquivo, que descreve o pipeline de CI/CD, pode ser encontrado na raiz do repositório do seu projeto. É composto por vários passos, tarefas e instruções que definem como seu código deve ser criado, examinado e lançado. A linguagem utilizada para escrevê-lo é YAML.
- Pipelines: No GitLab CI/CD, um pipeline é uma coleção de estágios e trabalhos que especificam as ações a serem tomadas para um determinado branch ou tag em seu repositório. Você pode automatizar os processos de teste e implantação ao iniciar cada pipeline quando ocorre um novo commit ou merge request.
- Jobs e Stages: Os estágios refletem os passos do pipeline, incluindo build, teste e deploy. Você especifica um ou mais trabalhos — unidades individuais de trabalho — dentro de cada nível. Os trabalhos podem operar em runners separados (como máquinas virtuais, contêineres ou pods do Kubernetes), seja de forma concorrente ou sequencial.
- Runners: O GitLab CI/CD utiliza runners para executar as tarefas listadas em seu pipeline. O GitLab oferece runners compartilhados e runners personalizados que você pode configurar em sua própria infraestrutura. Suas builds e testes sempre serão executados, pois os GitLab Runners monitoram por novos trabalhos e os executam em ambientes seguros e isolados.
- Artefatos e Relatórios de Job: O GitLab CI/CD permite que você salve artefatos produzidos dentro do pipeline, como resultados de cobertura de código, relatórios de testes ou binários criados. Você pode baixar esses artefatos e usá-los para implantação ou investigação adicional.
- Integrações e Implantação: O GitLab CI/CD oferece inúmeras integrações para implantar seu código em vários ambientes, incluindo clusters Kubernetes, infraestrutura em nuvem como Azure, AWS ou Google Cloud, ou até mesmo servidores personalizados. Temos a opção de criar seus próprios scripts de implantação ou usar modelos de implantação predefinidos do GitLab.
- Monitoramento e Feedback: O GitLab CI/CD oferece acesso a informações sobre o status e o desenvolvimento de seus pipelines através da interface do usuário do GitLab. Podemos verificar logs, acompanhar como cada trabalho está sendo executado e receber notificações quando uma execução de pipeline é bem-sucedida ou falha.
O GitLab CI/CD inclui uma variedade de capacidades, como caching, variáveis de ambiente, gerenciamento de segredos e muito mais, permitindo que você personalize e melhore seus fluxos de trabalho CI/CD de acordo com suas necessidades.
No geral, o GitLab CI/CD simplifica o processo de criar, testar e implantar software, permitindo que equipes desenvolvam aplicativos de alta qualidade de forma mais rápida e eficiente.
GitLab CI: Processamento Paralelo
Para um desenvolvedor, poucas coisas são mais irritantes do que ter que esperar muito tempo para que tudo termine após enviar novo código. Este manual demonstra passo a passo como o processamento paralelo pode reduzir significativamente os tempos de implantação.
A great approach to decrease deployment times and give your development and quality assurance teams faster feedback is to run your automated deployments in parallel as part of our Gitlab CICD pipeline. Running your deployment in parallel cuts down on wait times and makes it possible to send bug fixes and upgrades to production more quickly without sacrificing the number of tests you run.

Figura 2 Execução Simultânea de Trabalhos no GitLab
Executar a automação de implantação paralela com o GitLab CI/CD é bastante simples, mas existem alguns parâmetros de configuração que você precisa estar ciente. Neste tutorial, passaremos por todos os passos para configurar a execução paralela para acelerar as implantações e como comunicar os resultados à equipe de SRE. Então, vamos começar!
Figura 3 GitLab – Implantações Paralelas com Regiões
Fluxo de Trabalho de Implantações Paralelas do GitLab
Para melhorar os tempos de execução, devemos executar vários trabalhos de implantação simultaneamente. Em cada instância de trabalho de implantação, devemos então executar determinadas instruções, como criar várias seções de um site, integrar servidores web e fazer atualizações de configuração.
Temos mais de XX trabalhos nos pipelines que usamos para construir e implantar nosso aplicativo GitLab. Nem todos esses cargos são iguais. Alguns são operações rápidas que levam apenas alguns segundos para serem concluídas, enquanto outras são processos longos que devem ser cuidadosamente otimizados. As mudanças feitas por membros da equipe e contribuintes da comunidade maior são representadas por cada um desses pipelines. Para garantir que a atualização funcione como pretendido e seja integrada ao restante do produto, todos os contribuintes do aplicativo/projeto devem esperar que os pipelines sejam concluídos. Para manter a produtividade de nossas equipes alta, queremos que nossos pipelines sejam concluídos o mais rapidamente possível.
Como resultado, estamos constantemente monitorando o comprimento de nossos pipelines. Por exemplo, séries bem-sucedidas de pipelines levaram aproximadamente 53,8 minutos para serem concluídas na versão anterior.
Supondo que executamos aproximadamente 100 a 200 pipelines por dia, queremos investigar se podemos otimizar nosso processo para alterar a forma como os trabalhos de longa duração são executados.
Figura 4 GitLab – Execução Sequencial de Trabalhos
Neste ponto, você explorou a execução sequencial de trabalhos. No segundo parte desta série, você aprenderá como resolvemos trabalhos de gargalo executando-os em paralelo.
Source:
https://dzone.com/articles/how-to-use-gitlab-for-simultaneous-execution-of-jo