| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Software Deployment | ||||||||||||||||||||||||||
2 | Onboarding | Continuous Integration - Sync | Continuous Integration - Async | Ship | Validate | Promote | |||||||||||||||||||||
3 | Provision | Environments | Config Mgmt | Data Mgmt | Hack | Sync | Finish | Build | Packaging | Publish | Staging Provision & Deployment | Data Management | Validate 3º Level Acceptance Performance | Validate 4º Level Security (Dast) | Deploy Production | Rolling Back Plan | |||||||||||
4 | Scaffold Work In Progress Setup | Conventional Code | Conventional Doc | Conventional Conversation | Commit Often | Validate 1º Level | Auto Pull/Merge Request | Validate 2º Level | Dependency Managment | Environment Variables Management | |||||||||||||||||
5 | Excelência | Toda a infraestrutura (redes, servidores, storage, permissões) é declarativa e versionada em código. O desenvolvedor pode provisionar seu ambiente de desenvolvimento com um simples comando (CLI), pipeline automatizado ou interface web self-service. | Ambientes são criados dinamicamente sob demanda (por feature branch, PR, ticket) e destruídos automaticamente após o uso. | Todas as configurações são armazenadas em um sistema centralizado, versionado e gerenciado de forma dinâmica sem exigir redeploys. Feature flags são usadas para ativação gradual de mudanças. | Banco de dados como código (DBaaS), provisionado automaticamente junto ao ambiente. Dados são versionados, mascarados e carregados dinamicamente para testes e desenvolvimento. | Code & Infra as Templates + Automação do Bootstrap + Ambientes Ephemerais + Code On-Demand O projeto começa com um esqueleto funcional e configurado, evitando setups manuais; O código base inclui padrões e melhores práticas embutidas (CI/CD, linting, estrutura modular); Permite personalização mínima para diferentes necessidades (ex: APIs, front-end, microsserviços). Permite iniciar o desenvolvimento com mínima configuração manual; Suporte a hot reload, ambientes isolados e persistência automática do estado de trabalho; Código, dependências e ambiente são restauráveis de qualquer lugar, permitindo interrupção e retomada sem fricção. | Código Autoexplicativo + Padronização Rigorosa + Automatização de Qualidade Todo código segue convenções bem definidas para manter legibilidade e manutenibilidade; Linters, formatters e análise estática garantem que todos os commits sigam padrões; Automação de boas práticas evita a necessidade de revisões manuais para estilo de código; | Documentação Vivo-Dependente do Código + Autogerada A documentação é parte do código e se mantém atualizada automaticamente; Uso de arquivos Markdown versionados no repositório ou geração automática de docs a partir do código; Arquitetura Documentada como Código permite evolução sem desatualização. | Decisões Estruturadas e Rastreáveis Discussões seguem um fluxo assíncrono e registrado em canais apropriados; Uso de ADR (Architecture Decision Records) para decisões técnicas importantes; Integração entre Pull Requests, Issues e Chats para rastreabilidade completa. | Commits Atômicos e Organizados Cada commit representa uma única mudança lógica e pode ser revertido sem impactos colaterais; O histórico do repositório é limpo e sem ruído, facilitando debugging e revisão; Uso de convenções de mensagens de commit para clareza e rastreabilidade; Antes de um commit ser feito, verificações automáticas garantem qualidade e padronização; Linting, testes e análise estática são executados automaticamente antes do commit ou push. Cada commit gera feedback imediato através de pipelines de CI/CD; Uso de branching strategy otimizada para manter o fluxo ágil. Garante sempre a última versão da Release em andamento no trabalho do desenvolvedor. | Garante a corretura local sempre atualizado com a última versão da Release em andamento Toda branch feature/hotfix tem sua pipeline acionada automaticamente ao abrir um PR para dev (o comando Finish aciona o fluxo de abertura); Execução inclui linting, análise estática, testes unitários e integração, evitando merges inseguros; Se um PR falhar na pipeline, ele não pode ser mesclado até que os problemas sejam resolvidos. | PRs são abertos automaticamente assim que um branch atinge um critério definido (ex: testes passaram, feature pronta); PRs passam por revisão automática antes de precisar de revisão humana; PRs podem ser atualizados automaticamente quando o branch base muda, evitando conflitos manuais; Bots avaliam código com base em linters, testes, padrões e histórico do projeto; PRs são mesclados automaticamente quando atingem critérios como testes aprovados, revisões necessárias e conformidade com regras do repositório; Revisores são sugeridos automaticamente com base no histórico de commits. | Utliza os mesmos critérios do primeiro nível com o adicional de validar o código após a junção de todos Se a pipeline pós-merge for aprovada, o código pode ser implantado automaticamente em staging ou produção; Feature Flags permitem ativar/desativar novas funcionalidades sem precisar reverter código; Monitoramento contínuo verifica erros, consumo de recursos e comportamento de usuários após o merge; | Dependências são checadas e atualizadas automaticamente para evitar versões obsoletas ou inseguras; Atualizações sem impacto são aplicadas automaticamente; Dependências são escaneadas regularmente para identificar falhas de segurança; Se uma vulnerabilidade for encontrada, patches são aplicados automaticamente; Políticas de segurança bloqueiam dependências inseguras; Uso de lockfiles (package-lock.json, yarn.lock, Pipfile.lock) para garantir que todos usem as mesmas versões; Ambientes isolados (Docker, virtualenv, nvm) evitam conflitos entre projetos; Cache de dependências otimiza builds e instalações; Versões problemáticas são bloqueadas até que haja compatibilidade confirmada. | Variáveis sensíveis (ex: API_KEYS, DATABASE_URL) não ficam no código, mas são armazenadas em serviços seguros; Controle de acesso é baseado em privilégios mínimos, permitindo que apenas sistemas ou pessoas autorizadas acessem dados críticos; Logs e auditoria monitoram quem acessa ou altera variáveis; Variáveis de ambiente são versionadas, garantindo rollback seguro em caso de erro; Cada ambiente (Dev, Staging, Prod) possui configurações isoladas e bem definidas; Alterações são rastreadas, garantindo transparência e controle; Variáveis são injetadas automaticamente no CI/CD, sem serem expostas nos logs; Ambientes efêmeros recebem configurações dinâmicas, evitando hardcoded secrets; Integração com Feature Flags permite alterar comportamento sem precisar redeploy. | O processo de empacotamento é completamente automatizado dentro do pipeline de CI/CD, garantindo consistência entre as versões; O pacote gerado inclui todos os binários, dependências e configurações necessárias para o funcionamento correto do aplicativo; A automação impede erros manuais e reduz inconsistências entre ambientes de desenvolvimento, staging e produção; O versionamento de pacotes segue regras claras (ex: SemVer - Semantic Versioning) para garantir compatibilidade entre diferentes versões do código e dependências; Dependências externas e internas são gerenciadas de forma precisa para evitar problemas de incompatibilidade; Cada versão do pacote é gerada com base em tags de release e possui uma documentação clara sobre alterações. | O processo de publicação é totalmente automatizado e integrado ao pipeline de CI/CD, permitindo a publicação contínua assim que o código passa pelos testes de qualidade; O código é empacotado e validado antes da publicação, garantindo que apenas versões estáveis sejam distribuídas; O processo inclui verificação de segurança, garantindo que não haja vulnerabilidades antes de ser publicado. As versões de pacotes ou aplicações publicadas são rastreáveis e organizadas com base em convenções como Semantic Versioning (SemVer), garantindo que consumidores saibam o que esperar em cada release; A publicação sempre inclui notas de versão detalhadas, que documentam as alterações feitas, melhorias, correções de bugs e atualizações de segurança; A integração com sistemas de gerenciamento de releases permite que cada nova versão seja disponibilizada para os usuários de maneira controlada e previsível; A aplicação ou pacote é publicada automaticamente em repositórios públicos ou privados, como npm, PyPI, Docker Hub, após passar pelos testes de qualidade; Repositórios de containers e pacotes são configurados com políticas de segurança, controlando quem pode subir novos pacotes e quem pode baixá-los. | O ambiente de staging é provisionado automaticamente como parte do pipeline de CI/CD, sempre que houver uma nova versão ou mudança no código; Usando Infraestrutura como Código (IaC), o provisionamento é completamente reproduzível, garantindo que todos os membros da equipe ou sistemas possam recriar o ambiente facilmente; Recursos e configurações (servidores, banco de dados, redes) são configurados de maneira automática e consistente, sem intervenção manual; O ambiente de staging é uma réplica o mais fiel possível do ambiente de produção, incluindo servidores, banco de dados e configurações específicas; Mocks e fakes podem ser usados para dados sensíveis ou sistemas externos, mas as interações são tão próximas quanto possível à produção real; Feature Flags permitem validar comportamentos específicos sem impactar todos os usuários; Toda mudança de código ou nova versão é automaticamente implantada no ambiente de staging, onde é validada por testes automatizados antes de ser promovida para produção; Deploys incrementais ou de canário podem ser usados para testar mudanças gradualmente e reduzir riscos; O rollback automático é configurado, caso algo falhe no ambiente de staging; O ambiente de staging é monitorado em tempo real, com alertas automáticos em caso de falhas de performance ou problemas críticos; O feedback dos testes de integração e performance é enviado diretamente para as equipes de desenvolvimento, permitindo ajustes rápidos antes da produção; Testes de carga e stress podem ser executados em staging para validar a escalabilidade do sistema. | Durante o processo de deploy, qualquer alteração no banco de dados ou estrutura de dados (como migrar esquemas, adicionar colunas, ou alterar índices) deve ser realizada de forma não-destrutiva para garantir que os dados existentes não sejam corrompidos ou perdidos; Migrations devem ser projetadas para permitir backwards compatibility, garantindo que o código antigo ainda funcione enquanto o novo código e banco de dados são implantados; Scripts de migração são automatizados e executados como parte do processo de deploy, integrando-se ao pipeline de CI/CD Durante o processo de deploy, é essencial que qualquer alteração em dados seja sincronizada entre os diferentes componentes do sistema (ex: bancos de dados, caches, sistemas de filas) de forma transparente para os usuários finais; Eventos de dados podem ser usados para sincronizar atualizações entre sistemas diferentes sem interrupção, garantindo que as novas versões do aplicativo e dados associados estejam sempre consistentes; A sincronização de dados em tempo real pode ser feita com o uso de sistemas de mensageria e event sourcing, que garantem que todas as atualizações sejam refletidas de forma rápida e precisa. | Os dados no banco de dados, após a migração ou atualização, continuem válidos e consistentes com as regras de integridade definidas (ex: tipos de dados corretos, dados obrigatórios não nulos, etc.); Testes de aceitação e validação de dados são executados automaticamente para garantir que as operações no banco de dados não resultem em falhas ou inconsistências; Testes de aceitação em dados reais, garantindo que a nova versão do sistema ou banco de dados funcione conforme esperado com dados em produção; Feedback de usuários e stakeholders é coletado para validar se as mudanças no sistema foram eficazes e não geraram problemas; Testes de carga são feitos para verificar como o sistema lida com grandes volumes de dados e tráfego; Testes de performance para medir a latência e o tempo de resposta das consultas de banco de dados e operações do sistema; Otimização de banco de dados (índices, queries otimizadas) e cache de dados para garantir que o acesso a dados não cause lentidão; Monitoramento em tempo real do desempenho pós-deploy para garantir que o sistema continue operando dentro das expectativas de desempenho. | Ferramentas de DAST são rodadas no pipeline para escanear a aplicação em execução e detectar falhas de segurança em tempo real;Se nenhuma vulnerabilidade crítica for encontrada, a aplicação é implantada em produção. | Zero-Downtime Deployments: Uma das práticas essenciais é garantir que o deploy não cause interrupções no serviço. Técnicas como blue-green deployment ou canary releases são utilizadas para garantir que uma nova versão da aplicação seja implantada sem impacto. Blue-Green Deployment: Duas versões do ambiente de produção são mantidas, e o tráfego é direcionado para a nova versão (blue) enquanto a versão anterior (green) permanece ativa como fallback. Canary Release: A nova versão é liberada para uma pequena porcentagem dos usuários para monitorar o impacto antes de liberar para todos. | Minimizar o impacto do erro: A principal meta é restaurar a aplicação à sua condição funcional anterior rapidamente. Garantir continuidade do serviço: A reversão deve ser feita sem grandes interrupções no serviço ou degradação da experiência do usuário. Preservar dados: O rollback deve ser cuidadosamente planejado para garantir que dados importantes não sejam perdidos ou corrompidos no processo. | ||||
6 | Habilidade | Terraform provisionando a aplicação com uma massa de dados padronizada | |||||||||||||||||||||||||
7 | Assessment | N/A | |||||||||||||||||||||||||
8 | Recomendação | ||||||||||||||||||||||||||
9 | Atividades | ||||||||||||||||||||||||||
10 | Resultados | ||||||||||||||||||||||||||
11 | Métricas | Lead Time for Change Reaction Time | Lead Time for Change Reaction Time | Lead Time for Change Reaction Time | Lead Time for Change Reaction Time | Lead Time for Change Reaction Time | Lead Time for Change Reaction Time | Lead Time for Change Reaction Time Mean Time to Recovey *Availability | Lead Time for Change Reaction Time Mean Time to Recovey *Availability | Lead Time for Change Change Fail Rate Release Frequency | Lead Time for Change Change Fail Rate Release Frequency Mean Time to Recovey Rate of Return | Lead Time for Change Change Fail Rate Release Frequency | Lead Time for Change Change Fail Rate Release Frequency Mean Time to Recovey Rate of Return | Lead Time for Change Change Fail Rate Release Frequency | Lead Time for Change Change Fail Rate Release Frequency | Lead Time for Change Change Fail Rate Release Frequency | Lead Time for Change Change Fail Rate Release Frequency | Change Fail Rate Release Frequency | Change Fail Rate Release Frequency | Change Fail Rate Release Frequency Rate of Return | Change Fail Rate Release Frequency Rate of Return | Mean Time to Recovey Availability | Mean Time to Recovey Availability | ||||
12 | |||||||||||||||||||||||||||
13 | |||||||||||||||||||||||||||
14 | DORA | ||||||||||||||||||||||||||
15 | Change Fail Rate | ||||||||||||||||||||||||||
16 | Release Frequency | ||||||||||||||||||||||||||
17 | Mean Time to Recovey | ||||||||||||||||||||||||||
18 | Lead Time for Change | ||||||||||||||||||||||||||
19 | Availability | ||||||||||||||||||||||||||
20 | |||||||||||||||||||||||||||
21 | DORA Extendido | ||||||||||||||||||||||||||
22 | Rate of Return | ||||||||||||||||||||||||||
23 | Reaction Time | ||||||||||||||||||||||||||
24 | |||||||||||||||||||||||||||
25 | |||||||||||||||||||||||||||
26 | |||||||||||||||||||||||||||
27 | |||||||||||||||||||||||||||
28 | |||||||||||||||||||||||||||
29 | |||||||||||||||||||||||||||
30 | |||||||||||||||||||||||||||
31 | |||||||||||||||||||||||||||
32 | |||||||||||||||||||||||||||
33 | |||||||||||||||||||||||||||
34 | |||||||||||||||||||||||||||
35 | |||||||||||||||||||||||||||
36 | |||||||||||||||||||||||||||
37 | |||||||||||||||||||||||||||
38 | |||||||||||||||||||||||||||
39 | |||||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||
43 | |||||||||||||||||||||||||||
44 | |||||||||||||||||||||||||||
45 | |||||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||
100 | |||||||||||||||||||||||||||