Você está na página 1de 40

Uma proposta para centralizar práticas DevOps com uso do gitlab

Uma proposta para centralizar práticas DevOps com uso do gitlab
Uma proposta para centralizar práticas DevOps com uso do gitlab
Uma proposta para centralizar práticas DevOps com uso do gitlab

Contexto

Computação em nuvem;

Entrega contínua de software;

Processos e Ferramentas.

Motivação

Centralização de Ferramentas;

Diminuição de Custos;

Otimização de Processos.

Objetivos

Estudo sobre processos DevOps;

Estudo sobre ambientes de entrega contínua;

Propor uma infraestrutura que centraliza processos DevOps em uma única ferramenta. Diminuir custos ao aderir os processo de CI e CD. E demonstrar como utilizar a ferramenta open source do gitlab, o gitlab-ce (Community Edition) e aws.

Conceitos

DevOps

Aproximação de desenvolvimento e operações;

Automatização de tarefas operacionais;

Agilidade na entrega;

Economia com despesas operacionais;

Redução do tempo de operação;

Continuous Integration

Revisões e boas práticas;

Detecção de bugs;

Validações;

Releases.

Continuous Delivery

Build e execução da suíte de testes;

Deploy para Estágios de Teste e Produção.

Continuous Delivery

Docker

Grande força DevOps;

Plataforma de containers;

Funciona em diferentes ambientes.

Detalhando os Processos de CD

Detalhando os Processos de CD

1. Definição de Pipeline;

Detalhando os Processos de CD 1. Definição de Pipeline;

Detalhando os Processos de CD

2. Ferramenta de controle de versão;

Git

SVN;

Detalhando os Processos de CD

2. Builds automáticos;

Make;

Ant;

Mave;

Docker.

Detalhando os Processos de CD

3. Commit Stage;

Revisão de código;

Relatórios de falhas;

Construção e validação das alterações;

Detalhando os Processos de CD

3. Testes de Aceitação;

Deploy automático em servidores de teste;

Testes de aplicação em ambiente próximo a produção.

Garantia de requisitos;

Candidato a produção;

Detalhando os Processos de CD

3. Deploy em produção;

Deploy a partir de um botão;

Diminuição de falhas;

Principais Desafios

Aplicações massivas e monolíticas;

Ambientes limitados;

Desafios técnicos.

Principais Desafios

Desafios Técnicos:

Falta de ferramentas robustas;

Diversas implementações;

Limitações em serviços de terceiros;

Principais Desafios

Desafios Técnicos: Jenkins

Grande quantidade de plugins;

Falta de documentação;

Fraco suporte ao Docker.

Falta de ferramenta para commit stage;

Principais Desafios

Desafios Técnicos: Travis-CI e CodeShip

Suporte docker limitado;

Falta de ferramenta para commit stage;

Alto custo.

Proposta

Proposta

Gitlab-CE:

Ferramenta dividida em micro serviços;

Commit stage;

Suporte a CI e CD;

Gitlab Runner;

Suporte docker;

Autoscaling;

Proposta

Proposta Gitlab-CE:

Gitlab-CE:

Proposta

AWS EC2:

Serviço de VM;

Suporte docker;

Autoscaling;

Proposta

Proposta Arquitetura:

Arquitetura:

Proposta

Gitlab-server:

Gitlab-server:
Proposta Gitlab-server:

Proposta

Gitlab-Runner:

Proposta

Descrição do Pipeline

gitlab-ci.yml

Proposta

Visões da Ferramenta:

Proposta Visões da Ferramenta:

Proposta

Visões da Ferramenta: Pipelines
Visões da Ferramenta: Pipelines

Proposta

Visões da Ferramenta: Builds

Proposta Visões da Ferramenta: Builds

Proposta

Visões da Ferramenta:

Proposta Visões da Ferramenta:

Proposta

Comparação de custos: Máquinas Small

Serviço

concorrencia

custo

Travis-CI

2

129$

CodeShip

2

150$

Gitlab-CE e AWS

2

49$

Proposta

Comparação de custos: Detalhes Gitlab-CE

Serviço

VM

custo

GitLab-Server

1

16.56$

Gitlab-Runner

2

16.56$

   

49.68$

Conclusões

Uso de ferramenta Open Source;

Baixo custo, comparado ao Travis-CI e CodeShip;

Centralização de ferramentas e processos;

Dúvidas?

Obrigado!