Repositório base/template com CI/CD completo para qualquer tecnologia backend e frontend.
Inclui workflows de integração contínua, deploy, gerenciamento de dependências e monitoramento prontos para uso.
- Visão Geral
- 🚀 Roadmap de Estudos
- 📅 Cronograma de Estudos
- CI/CD e Workflows
- Instalação
- Como Usar
- Configuração
- Contribuições
- Artigos & Conteúdos
- Licença
- Contato
O dopBase é um repositório base/template completo com pipelines de CI/CD prontos para uso, suportando múltiplas tecnologias e frameworks. Este projeto fornece uma base sólida para iniciar qualquer aplicação com as melhores práticas de DevOps.
Este repositório serve como base para novos projetos. Para usá-lo:
-
Clone ou use como template:
# Opção 1: Clone direto git clone https://github.com/daniloopinheiro/dopBase.git meu-novo-projeto # Opção 2: Use o botão "Use this template" no GitHub
-
Adicione seu código: Os workflows detectam automaticamente a tecnologia e configuram tudo
-
Configure secrets (opcional): Para deploy automático
-
Comece a desenvolver: Os workflows funcionam imediatamente!
Nota: Arquivos de configuração específicos (como
k6-test.js,.pa11yci.json,sonar-project.properties) não estão incluídos. Você pode criá-los conforme necessário para seu projeto específico.
- 🔄 CI/CD Automático: Workflows prontos para build, teste e deploy
- 🌐 Multi-tecnologia: Suporta Node.js, Python, .NET, Java, Go e mais
- 🔒 Segurança: Scans automáticos de vulnerabilidades
- 📦 Gerenciamento de Dependências: Atualização automática e verificação de segurança
- 🤖 Automação de PRs: Labeling, validações e estatísticas automáticas
- 📊 Monitoramento: Performance, acessibilidade e qualidade de código
- 🚀 Deploy Automático: Integração com Vercel, Netlify, Heroku, AWS, Azure e mais
Este roadmap foi organizado de forma progressiva para garantir um aprendizado estruturado e eficiente. Siga a ordem sugerida para obter o melhor aproveitamento.
Informações importantes para um bom andamento do curso.
⚠️ Importante: Leia atentamente esta seção antes de iniciar os estudos. Ela contém informações essenciais sobre a estrutura do curso, metodologia e recursos disponíveis.
Status: ✅ Disponível | 📜 Certificado Disponível
Você vai aprender como criar e administrar ambientes isolados através de containers com o Docker.
Conceitos abordados:
- Containers e imagens
- Dockerfile e Docker Compose
- Volumes e networks
- Orquestração básica
Status: ✅ Disponível | 📜 Certificado Disponível
Como trabalhar com Gitflow e convenções de commits para padronização e facilitar CodeReviews. O manual para performance em equipe do Git.
Conceitos abordados:
- Gitflow workflow
- Convenções de commits semânticos
- Code reviews eficientes
- Branching strategies
Status: ✅ Disponível | 📜 Certificado Disponível
Performance, Escalabilidade e Resiliência são fundamentos essenciais para que um software seja construído da forma correta. É necessário entender os conceitos de fundamentos de arquitetura de software para se projetar e construir boas aplicações.
Conceitos abordados:
- Performance
- Escalabilidade
- Resiliência
- Princípios de design
Status: ✅ Disponível | 📜 Certificado Disponível
Existem cinco princípios de design que todo desenvolvedor precisa seguir para criar bons códigos. O SOLID Express trata de cada um desses princípios e como utilizá-los.
Conceitos abordados:
- Single Responsibility Principle (SRP)
- Open/Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
Status: 🔄 Em Progresso (24% Concluído)
REST, gRPC, GraphQL. Como utilizar protocolos distintos na sua aplicação para que se comuniquem de forma inteligente entre elas e externamente.
Conceitos abordados:
- REST API
- gRPC
- GraphQL
- Comparação de protocolos
- Quando usar cada abordagem
Status: ✅ Disponível | 📜 Certificado Disponível
Domain Driven Design (DDD) é um conceito capaz de mudar a forma que você projeta e constrói software.
Conceitos abordados:
- Bounded Contexts
- Ubiquitous Language
- Domain Models
- Strategic Design
Status: 🔄 Em Progresso (2% Concluído)
Como modelar um software utilizando DDD e como aplicar os principais patterns que estão em volta do conceito de modelagem.
Conceitos abordados:
- Entities e Value Objects
- Aggregates
- Domain Services
- Repositories
- Domain Events
Status: ✅ Disponível | 📜 Certificado Disponível
Envolva toda equipe de negócios e técnica, através de uma maneira colaborativa, prática e hands-on de apresentar todos os eventos do sistema.
Conceitos abordados:
- Workshop de Event Storming
- Identificação de eventos
- Mapeamento de domínios
- Colaboração entre equipes
Status: ✅ Disponível | 📜 Certificado Disponível
É possível organizar sua aplicação em camadas e responsabilidades. Ports and Adapters permite desacoplar a lógica de negócio das tecnologias.
Conceitos abordados:
- Ports (interfaces)
- Adapters (implementações)
- Desacoplamento de tecnologias
- Testabilidade
Status: 🔄 Em Progresso (27% Concluído)
É possível ter reusabilidade de código, coesão, independência de tecnologia e testabilidade. A arquitetura limpa é um padrão criado para isso.
Conceitos abordados:
- Camadas da Clean Architecture
- Dependency Rule
- Use Cases
- Frameworks independence
- Testabilidade
Status: 🔄 Em Progresso (1% Concluído)
Sistemas monolíticos podem não ser tão ruins, desde que criados de maneira correta, coesa e obedecendo alguns padrões importantes na criação do seu projeto.
Conceitos abordados:
- Quando usar monolitos
- Modularização de monolitos
- Padrões de organização
- Vantagens e desvantagens
Status: 🔄 Em Progresso (23% Concluído)
Os microsserviços permitem que um aplicativo grande seja separado em partes independentes menores, com cada parte tendo sua própria responsabilidade e autonomia de desenvolvimento.
Conceitos abordados:
- Princípios de microsserviços
- Decomposição de serviços
- Comunicação entre serviços
- Desafios e soluções
Status: 🔄 Em Progresso (0% Concluído)
Comunicação assíncrona com baixo acoplamento. Uma solução para a comunicação entre microserviços.
Conceitos abordados:
- Event-driven patterns
- Event sourcing
- CQRS
- Baixo acoplamento
Status: ✅ Disponível | 📜 Certificado Disponível
RabbitMQ é um dos sistemas de mensageria mais conhecidos, com intuito de facilitar a comunicação assíncrona de dados entre processos.
Conceitos abordados:
- Exchanges e Queues
- Routing patterns
- Message durability
- Clustering
Status: 🔄 Em Progresso (0% Concluído)
Veloz, escalável e versátil. Apache Kafka é mais uma ferramenta de mensageria porém com foco em grandes streams de dados e tempo real.
Conceitos abordados:
- Topics e Partitions
- Producers e Consumers
- Stream processing
- High throughput
Status: 🔄 Em Progresso (19% Concluído)
Autenticação e autorização se tornam fáceis ao utilizar o Keycloak. Através do SSO, é possível dar acesso a múltiplos serviços sem necessidade de reautenticação.
Conceitos abordados:
- OAuth 2.0
- OpenID Connect
- Single Sign-On (SSO)
- Identity and Access Management
Status: ✅ Disponível | 📜 Certificado Disponível
Entenda como irá funcionar toda arquitetura do projeto CodeFlix. O que podemos utilizar, como funciona o diagrama C4 e o que esperamos de resultado.
Conceitos abordados:
- Diagrama C4
- Arquitetura do projeto
- Decisões técnicas
- Estrutura de módulos
Status: 🔄 Em Progresso (5% Concluído)
Vamos criar todo backend para a gestão de conteúdos para a CodeFlix, utilizando .NET.
Status: 🔄 Em Progresso (1% Concluído)
Vamos criar todo backend para a gestão de conteúdos para a CodeFlix, utilizando Java.
Status: ✅ Disponível
Vamos criar todo backend para a gestão de conteúdos para a CodeFlix, utilizando PHP.
Status: ✅ Disponível
Vamos criar todo backend para a gestão de conteúdos para a CodeFlix, utilizando TypeScript.
Status: 🔄 Em Progresso (0% Concluído)
Vamos criar a interface do usuário para a CodeFlix.
Status: 🔄 Em Progresso (8% Concluído)
Vamos criar o painel administrativo para a gestão de conteúdos para a CodeFlix.
Status: 🔄 Em Progresso (5% Concluído)
Vamos criar o Encoder de Vídeos em Go Lang, responsável pela segurança e processamento dos vídeos em nossa plataforma.
Status: 🔄 Em Progresso (1% Concluído)
Microsserviço: API do Catálogo com .NET (Back-end)
Status: ✅ Disponível
Microsserviço: API do Catálogo com Java (Back-end)
Status: ✅ Disponível
Microsserviço: API do Catálogo com PHP (Back-end)
Status: ✅ Disponível
Microsserviço: API do Catálogo com Python (Back-end)
Status: ✅ Disponível
Microsserviço: API do Catálogo com TypeScript (Back-end)
Status: ✅ Disponível
Microsserviço: Assinaturas com Python (Back-end)
Status: ✅ Disponível | 📜 Certificado Disponível
Gerir um pipeline de CI, conseguindo automatizar vários processos é muito importante para trabalhar em ambientes críticos e aplicações de grande porte.
Conceitos abordados:
- Pipelines de CI
- Automação de testes
- Build automatizado
- Qualidade de código
Status: 🔄 Em Progresso (24% Concluído)
Orquestre seus containers e automatize grande parte de seus processos manuais para implantar, gerir e escalar grandes aplicações em containers.
Conceitos abordados:
- Pods, Services, Deployments
- ConfigMaps e Secrets
- Ingress
- Auto-scaling
- Health checks
Status: 🔄 Em Progresso (0% Concluído)
Controle como os microserviços compartilham dados entre si e além disso monitore e proteja seus containers no cluster.
Conceitos abordados:
- Service mesh architecture
- Traffic management
- Security policies
- Observability
Status: 🔄 Em Progresso (4% Concluído)
Um único ponto de entrada, transparência e segurança. Esses são os principais benefícios ao utilizar uma API Gateway em seu projeto.
Conceitos abordados:
- Padrão API Gateway
- Routing e load balancing
- Rate limiting
- Autenticação centralizada
Status: 🔄 Em Progresso (29% Concluído)
Como utilizar o Kong e Kubernetes para criar um único ponto de entrada, transparência e segurança em uma camada a mais em seu projeto utilizando API Gateway.
Conceitos abordados:
- Kong Gateway
- Plugins do Kong
- Integração com Kubernetes
- Configuração avançada
Status: 🔄 Em Progresso (11% Concluído)
Conceitos e práticas para monitorar e entender o comportamento de sistemas distribuídos.
Conceitos abordados:
- Logs, Metrics, Traces
- Distributed tracing
- Monitoring strategies
- Alerting
Status: ✅ Disponível | 📜 Certificado Disponível
Capture, metrifique, monitore os registros e traces de toda a sua aplicação utilizando um padrão.
Conceitos abordados:
- OpenTelemetry standard
- Instrumentação
- Exporters
- Integração com ferramentas
Status: 🔄 Em Progresso (19% Concluído)
Trabalhe com IaC e transforme todo seu ambiente cloud em algo descartável. Com o Terraform você será capaz de criar, alterar e criar versões de infraestrutura com segurança e eficiência.
Conceitos abordados:
- Infrastructure as Code
- Providers
- State management
- Modules
- Multi-cloud
Status: ✅ Disponível | 📜 Certificado Disponível
Automatize a implantação de seus projetos na nuvem. Provisione, gerencie toda configuração e orquestre intra-serviços utilizando o conceito de código declarativo e agentless.
Conceitos abordados:
- Configuration management
- Playbooks
- Roles
- Agentless architecture
Status: ✅ Disponível | 📜 Certificado Disponível
Entenda um modelo unificado de implantação, gestão e monitoramento em projetos em containers.
Conceitos abordados:
- GitOps principles
- ArgoCD / Flux
- Declarative deployments
- Version control for infrastructure
Status: 🔄 Em Progresso (32% Concluído)
Como utilizar os principais Cloud Providers para realizar deploy de suas aplicações.
Conceitos abordados:
- AWS, Azure, GCP
- Container services
- Serverless
- Best practices
┌─────────────────────────────────────────────────────────────┐
│ COMECE POR AQUI │
│ (Informações Importantes) │
└───────────────────────┬─────────────────────────────────────┘
│
┌───────────────┴───────────────┐
│ │
┌───────▼────────┐ ┌────────▼────────┐
│ Módulo 1 │ │ Módulo 2 │
│ Fundamentos │ │ Arquitetura │
│ Docker + Git │ │ de Software │
└───────┬────────┘ └────────┬────────┘
│ │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 3: DDD │
│ (Domain Driven Design) │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 4: Arquiteturas │
│ Hexagonal + Clean Arch │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 5: Arquiteturas │
│ Monolito + Microserviços │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 6: Mensageria │
│ RabbitMQ + Kafka │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 7: Segurança │
│ Keycloak + Autenticação │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 8: Projeto Prático │
│ Codeflix │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 9: CI/CD │
│ Integração Contínua │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 10: Orquestração │
│ Kubernetes + Istio │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 11: API Gateway │
│ Kong + Kubernetes │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 12: Observabilidade │
│ OpenTelemetry │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 13: IaC │
│ Terraform + Ansible + GitOps │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ Módulo 14: Cloud Deploy │
│ AWS, Azure, GCP │
└───────────────────────────────┘
| Ícone | Significado |
|---|---|
| ✅ | Conteúdo disponível e completo |
| 🔄 | Em progresso (com percentual de conclusão) |
| 📜 | Certificado disponível ao concluir |
| Atenção ou pré-requisito |
Para um planejamento detalhado e estruturado dos seus estudos, consulte o Cronograma de Estudos.
O cronograma inclui:
- 📅 Planejamento semanal de 60 semanas (cada semana em um arquivo na pasta
semanas/:semana-01.mdasemana-60.md) - ⏰ Estimativas de tempo por módulo
- ✅ Checklists de progresso
- 🎯 Metas intermediárias e checkpoints
- 💡 Dicas de estudo e boas práticas
- 📈 Acompanhamento de progresso
-
Escolha sua carga horária:
- Intensivo: 4-6h/dia (~4-5 meses)
- Moderado: 2-3h/dia (~8-10 meses)
- Leve: 1-2h/dia (~12-15 meses)
-
Siga o cronograma semana a semana
-
Marque as tarefas concluídas no checklist
-
Acompanhe seu progresso regularmente
📖 Acesse o Cronograma Completo para começar seus estudos de forma organizada!
Este projeto inclui workflows completos de GitHub Actions para automação de todo o ciclo de desenvolvimento.
- ✅ Detecção automática de tecnologias
- 🏗️ Build automático para backend e frontend
- 🧪 Execução de testes
- 📊 Análise de código (Linting)
- 🔒 Scan de segurança com Trivy
- 📈 Análise de qualidade com SonarCloud
- 🚀 Deploy automático para múltiplas plataformas
- 🐳 Build e push de imagens Docker
- 📝 Criação automática de releases
- 🏷️ Geração de changelog
- 🔍 Verificação de vulnerabilidades
- 📦 Detecção de pacotes desatualizados
- 🔄 Atualização automática de dependências
- ⚖️ Verificação de licenças
- 🏷️ Labeling automático
- 📏 Validação de título semântico
- 📊 Estatísticas de mudanças
- 🤖 Auto-merge de PRs do Dependabot
- 🔍 Lighthouse audit
- ⚡ Testes de performance com k6
- 🔒 Verificação de SSL
- 📊 Análise de cobertura de código
- 🏷️ Criação automática de tags quando há merge para
main - 📊 Versionamento semântico baseado em commits convencionais
- 🔄 Detecta automaticamente o tipo de versão (major, minor, patch)
- 🎯 Integrado com CD para releases automáticas
- 📖 Guia Completo - Documentação detalhada de todos os workflows
- 🚀 Quick Start - Comece em 5 minutos
- 🏷️ Auto Versioning - Tags e releases automáticas ⭐ NOVO
- 📦 Release Guide - Como criar releases
- 📛 Badges - Badges para seu README
| Categoria | Tecnologias |
|---|---|
| Frontend | Node.js, React, Vue, Angular, Svelte, Next.js, Nuxt.js |
| Backend | Node.js, Python, .NET, Java, Go |
| Gerenciadores | npm, yarn, pnpm, pip, Maven, Gradle, NuGet, Go modules |
| Containers | Docker, Docker Compose |
| Deploy | Vercel, Netlify, GitHub Pages, Heroku, AWS, Azure |
- Clone o repositório
- Os workflows já estão configurados em
.github/workflows/ - Faça seu primeiro push:
git add . git commit -m "feat: initial commit" git push origin main
- Veja os workflows em ação na aba Actions do GitHub
Este repositório possui um fluxo completo de automação:
1. Desenvolver → 2. PR → 3. Merge para main → 4. Auto Tag → 5. Auto Release
Exemplo prático:
# 1. Criar branch e desenvolver
git checkout -b feature/nova-funcionalidade
git commit -m "feat: adiciona funcionalidade incrível"
# 2. Criar PR e fazer merge para main
# 3. Automação acontece:
# ✅ Auto Tag detecta "feat:" e cria tag v1.1.0
# ✅ CD detecta tag e cria release automaticamente
# ✅ Changelog gerado com base nos commitsPara mais detalhes, consulte o Auto Versioning Guide.
Forneça instruções claras sobre como instalar o seu software.
Inclua pré-requisitos, como dependências de software ou bibliotecas necessárias.
Exemplo:
$ git clone https://github.com/seu-usuario/nome-do-projeto.git
$ cd nome-do-projetoExplique como usar o seu software em detalhes. Forneça exemplos de código, comandos de linha ou capturas de tela para demonstrar o uso típico do software.
Exemplo:
# Exemplo de execução
dotnet runIsso iniciará o servidor de desenvolvimento.
Se o seu software requer configuração adicional além da instalação padrão, explique aqui como configurá-lo. Isso pode incluir variáveis de ambiente, arquivos de configuração ou qualquer ajuste necessário para personalizar o comportamento do software.
Explique se você está aberto para contribuições e como outros desenvolvedores podem ajudar. Inclua orientações para quem deseja reportar bugs, enviar solicitações de novos recursos ou fazer alterações no código.
MIT License © 2025 LICENSE.md — por Danilo O. Pinheiro
Para questões técnicas, problemas ou sugestões:
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Danilo O. Pinheiro
Especialista em .NET, Clean Architecture e Interoperabilidade em Saúde
- Email Pessoal: daniloopro@gmail.com
- Email Empresarial: devsfree@devsfree.com.br
- Consultoria: contato@dopme.io
- LinkedIn: Danilo O. Pinheiro