+Features no GitLab CI/CD
Tags: gitlab, git, beginners, devops
Published: 2021-12-15 17:41:27

## GitLab e AutoDevOps

O Auto DevOps oferece uma configuração de CI/CD predefinida que permite detectar, construir, testar, implantar e monitorar automaticamente seus aplicativos. Isso torna mais fácil configurar cada projeto de forma mais consistente.

Ele é ativado por padrão para todos os seus projetos, mas pode ser desativado pelo administrador no nível da instância. Ele pode ser desativado e ativado por usuários do [GitLab.com](http://gitlab.com/) no nível do projeto, e os usuários autogerenciados também podem ativá-lo no nível do grupo ou instância.

## Estágio de pacote do GitLab

O GitLab permite que as equipes empacotem seus aplicativos e dependências, gerenciem contêineres e criem artefatos com facilidade. O registro de contêiner privado e seguro e os repositórios de artefatos são integrados e pré-configurados para funcionar perfeitamente com o gerenciamento de código-fonte do GitLab e pipelines de CI / CD. Garanta a aceleração do DevOps com pipelines de software automatizados que fluem livremente sem interrupção.

## Gerenciamento de pacote aprimorado

O uso do sistema de pacotes do GitLab permite que os usuários pesquisem e utilizem artefatos de construção rapidamente, o que aprimora a reutilização em toda a organização. Isso torna mais fácil para todas as equipes colaborar e compartilhar as melhores práticas para minimizar o tempo de lançamento no mercado e aumentar a eficiência geral.

- **Registro de pacote** - Cada equipe precisa de um local para armazenar seus pacotes e dependências. O GitLab visa fornecer uma solução abrangente, integrada em nosso único aplicativo, que oferece suporte ao gerenciamento de pacotes para todas as linguagens e formatos binários comumente usados.
- **Container Registry** - um Container Registry * é um registro seguro e privado para imagens Docker integradas ao GitLab. A criação, envio e recuperação de imagens funcionam imediatamente com o GitLab CI/CD.
- **Helm Chart Registry** - as integrações de cluster do Kubernetes podem aproveitar as vantagens dos gráficos Helm para padronizar seus processos de distribuição e instalação. O suporte a um registro de gráfico de leme integrado permite uma orquestração de contêineres autogerenciada melhor.
- **Proxy de dependência** - o proxy de dependência * do GitLab pode servir como um intermediário entre seus desenvolvedores locais e automação e o mundo de pacotes que precisam ser buscados em repositórios remotos. Adicionando uma camada de segurança e validação a um proxy de cache, você pode garantir confiabilidade, precisão e capacidade de auditoria para os pacotes dos quais você depende.
- **Notebooks Jupyter** - Notebooks Jupyter são um tipo comum de código usado para casos de uso de ciência de dados. Com o GitLab, você pode armazenar e controlar a versão desses notebooks da mesma forma que armazena pacotes e códigos de aplicativos.
- **Git LFS** - Git LFS (Large File Storage) é uma extensão Git, que reduz o impacto de arquivos grandes em seu repositório baixando as versões relevantes deles lentamente. Especificamente, arquivos grandes são baixados durante o processo de checkout, e não durante a clonagem ou busca.

## Estágio de lançamento do GitLab

GitLab ajuda a automatizar o lançamento e entrega de aplicativos, encurtando o ciclo de vida de entrega, agilizando processos manuais e acelerando a velocidade da equipe. Com a entrega contínua sem toque (CD) embutida no pipeline, as implantações podem ser automatizadas em vários ambientes, como preparação e produção, e o sistema simplesmente sabe o que fazer sem ser informado - mesmo para padrões mais avançados como implantações canário. Com sinalizadores de recursos, auditoria / rastreabilidade integrada, ambientes sob demanda e páginas GitLab para entrega de conteúdo estático, você poderá entregar mais rápido e com mais confiança do que nunca.

![Estagios de lançamento](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sh3wl9avr68cuqgytjql.png)

##Conceitos que vão te ajudar no dia a dia

Agora um pouco de glossário de conceitos para ajudar no dia a dia =D

## Continuous Delivery
    
A prática de Entrega Contínua (CD) garante a entrega de código validado de CI para sua aplicação por meio de um pipeline de implantação estruturado.
    
Juntos, CI e CD agem para acelerar a rapidez com que sua equipe pode entregar resultados para seus clientes e partes interessadas. O CI ajuda a detectar e reduzir bugs no início do ciclo de desenvolvimento, e o CD move o código verificado para seus aplicativos com mais rapidez.
    
## Pages
    
GitLab Pages é um recurso que permite publicar sites estáticos diretamente de um repositório no GitLab.
    
Você pode usá-lo para sites pessoais ou comerciais, como portfólios, documentação, manifestos e apresentações comerciais. Você também pode atribuir qualquer licença ao seu conteúdo.
    
O Pages não suporta processamento dinâmico do lado do servidor, por exemplo, como requer .php e .asp. Consulte este artigo para saber mais sobre sites estáticos versus sites dinâmicos.
    
## Review Apps
    
Os aplicativos de análise do GitLab incluem:
    
**Visualização automática ao vivo** - Codifique, confirme e visualize seu branch em um ambiente ao vivo. Os aplicativos de revisão geram ambientes dinâmicos automaticamente para suas solicitações de mesclagem.
    
**Um clique para colaborar** - Os designers e gerentes de produto não precisarão verificar sua filial e executá-la em um ambiente de teste. Basta enviar um link para a equipe e deixá-los clicar.
    
**Totalmente integrado** - Com a revisão de código do GitLab, CI / CD integrado e aplicativos de revisão, você pode acelerar seu processo de desenvolvimento com uma ferramenta para codificação, teste e visualização de suas alterações.
    
**Flexibilidade de implantação** - Implante no Kubernetes, Heroku, FTP e muito mais. Você pode implantar em qualquer lugar onde possa fazer script com .gitlab-ci.yml e você tem controle total para implantar tantos tipos diferentes de aplicativos de revisão quanto sua equipe precisar.
    
## Lançamento incremental
    
Quando você tem uma nova versão do seu aplicativo para implantar na produção, pode usar uma implementação incremental para substituir apenas alguns pods pelo código mais recente. Isso permitirá que você verifique primeiro como o aplicativo está se comportando e, posteriormente, aumente manualmente a distribuição em até 100%.
    
## Feature flags
    
Feature flags permitem que as equipes obtenham o CD, permitindo que implantem recursos escuros na produção como lotes menores para testes controlados, separando a entrega do recurso do lançamento do cliente e removendo o risco da entrega.
    
## Release orchestration
    
Gerenciamento e orquestração de lançamentos como código baseado em notificações inteligentes, agendamento de entrega e recursos compartilhados, períodos de blackout, relacionamentos, paralelização e sequenciamento, bem como suporte para integração de processos e intervenções manuais.
    
## Release evidence
    
A evidência de lançamento inclui recursos como controles de segurança de tempo de implantação para garantir que apenas imagens de contêiner confiáveis sejam implantadas no Kubernetes Engine e, de forma mais ampla, inclui todas as garantias e coleta de evidências necessárias para que você confie nas mudanças que está entregando.
    

## Gerenciamento de segredos
    
O Vault é um aplicativo de gerenciamento de segredos oferecido pela HashiCorp. Ele permite que você armazene e gerencie informações confidenciais, como variáveis de ambiente secretas, chaves de criptografia e tokens de autenticação. O Vault oferece acesso baseado em identidade, o que significa que os usuários do Vault podem se autenticar por meio de vários de seus provedores de nuvem preferidos.
    

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wczshmpwfm7tc1iivcqd.png)

Vlw flw