Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eugeniobarrosjr/devops-challange-01
Desafio: Implementação de Práticas DevOps em um Ambiente Empresarial Fictício
https://github.com/eugeniobarrosjr/devops-challange-01
devops rocketseat
Last synced: 22 days ago
JSON representation
Desafio: Implementação de Práticas DevOps em um Ambiente Empresarial Fictício
- Host: GitHub
- URL: https://github.com/eugeniobarrosjr/devops-challange-01
- Owner: eugeniobarrosjr
- Created: 2024-08-15T23:25:28.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-08-15T23:25:53.000Z (6 months ago)
- Last Synced: 2024-11-22T23:09:48.210Z (3 months ago)
- Topics: devops, rocketseat
- Homepage:
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Desafio: Implementação de Práticas DevOps em um Ambiente Empresarial Fictício
## 1. Diagnóstico Cultural (C de CALMS)
### Identificação do Processo
**Processo Identificado:** Entrega de Código e Deploy.### Descrição do Processo Atual
- **Entrega de Código:** Os desenvolvedores preparam um pacote de implantação e o enviam à equipe de operações.
- **Deploy:** Deploy manual em ambientes de produção, sem procedimentos padronizados ou automação.
- **Testes:** Testes manuais realizados pela equipe de operações depois do deploy.
- **Monitoramento:** Controle manual dos logs do servidor após o deploy.### Pontos de Atrito e Oportunidades de Melhoria
- **Falta de Padronização:** A falta de padronização de processos resulta em inconsistências.
- **Demora para Deploy:** Leva cerca de 2 dias para entregar o valor.
- **Testes Ineficientes:** Testes manuais são demorados e podem conter erros humanos.
- **Monitoramento Reativo:** O monitoramento manual detecta problemas somente após a ocorrência.## 2. Automação (A de CALMS)
### Solução Proposta de Automação
**Ferramentas Sugeridas:**
- **CI/CD:** Jenkins ou GitLab CI para automação de builds.
- **Infraestrutura de Código (IaC):** Terraform ou Ansible, para padronizar e automatizar a configuração da infraestrutura.
- **Testes Automatizados:** Selenium ou JUnit para realizar testes de regressão e integração.
- **Monitoramento Automatizado:** Prometheus e Grafana para monitoração contínua e alertas em tempo real.### Plano de Implementação da Automação
1. **Configuração do CI/CD:**
- Configurar Jenkins ou GitLab CI para a configuração de build e deploy automáticos.
- Criar pipelines para testes automatizados.
2. **Padronização com IaC:**
- Aplicar a tecnologia Terraform ou Ansible para planejar e gerenciar a infraestrutura.
3. **Automatização de Testes:**
- Usar Selenium e JUnit nos pipelines de CI/CD para testes automatizados.
4. **Monitoramento Contínuo:**
- Configurar o Prometheus para a coleta de dados.
- Utilizar Grafana para design de dashboards e alertas em tempo real.## 3. Mensuração e Compartilhamento de Conhecimento (M e S de CALMS)
### Métricas Relevantes
- **Tempo de Deploy:** Verificar a diminuição do tempo de deploy.
- **Taxa de Sucesso do Deploy:** Aumentar a taxa de sucesso do Deploy em 95% ou superior.
- **Número de Incidentes Pós-Deploy:** Reduzir o número de incidentes após o deploy.
- **MTTR:** Diminuir o tempo médio de recuperação de incidentes.### Plano para Disseminação de Conhecimento
1. **Documentação:** Criar uma documentação detalhada para os novos processos automatizados.
2. **Workshops:** Realizar workshops para capacitar as equipes de desenvolvimento e operação nas novas ferramentas e procedimentos.
3. **Comunicação Contínua:** Realizar reuniões regulares para compartilhar feedback e melhorias constantes.## 4. Três Maneiras
### Primeira Maneira (Acelerar o Fluxo)
- **Automação do Processo:** Eliminar etapas manuais e diminuir o tempo de entrega.
- **Pipelines CI/CD:** Pipelines preparados para build, teste e deploy contínuos.### Segunda Maneira (Ampliar o Feedback)
- **Feedback Constante:** Coleta de métricas e logs em tempo real, com Prometheus e Grafana.
- **Feedback Automático:** Avisos automáticos em caso de falhas ou degradação de desempenho.### Terceira Maneira (Experimentar e Aprender)
- **Ambiente de Testes:** Criação de ambientes de testes automatizados para assegurar uma experiência segura.
- **Cultura de Aprendizado:** Incentivar retrospectivas regulares para analisar erros e identificar oportunidades de melhoria.