Tenho trabalhado em vários projetos nos quais movi aplicativos de PoC para Produção.
Estas são as listas de verificação que preparei para mim e minha equipe para garantir que estamos prontos para a produção.
Aqui as listas de verificação estão em foco, pois o aplicativo está na linguagem de programação Python e implantado na AWS via Kubernetes.
Nem todos são obrigatórios, mas são os que considero mais úteis.
1. Alertas e métricas
- [ ] Existem alertas configurados para problemas de infraestrutura (por exemplo, aumento de uso de memória ou CPU, indisponibilidade de serviço)?
- [ ] Existem alertas configurados para falhas lógicas críticas específicas de aplicativos?
- [ ] Podemos visualizar dados históricos (últimas horas/dias) de infraestrutura e uso de recursos?
- [ ] Existe um painel de monitoramento em tempo real?
2. Painel e POP
- [ ] Existe um documento SOP para lidar com alertas e problemas conhecidos?
- [ ] Existem runbooks disponíveis para cenários comuns?
- [ ] Existe um plano de resposta a incidentes em vigor?
3. Mapeamento e cadência de plantão
- [ ] Existe um mapeamento de pessoas de plantão para problemas no nível do aplicativo?
- [ ] Existe um mapeamento de plantonistas para questões relacionadas à infraestrutura?
- [ ] Existe um cronograma de rotação e uma política de escalonamento definidos?
4. Implantação
- [ ] O tipo de instância apropriado (GPU ou CPU) foi determinado?
- [ ] O tipo de servidor necessário foi especificado?
- [ ] Existe suporte de zona de multidisponibilidade para failover?
- [ ] Há suporte para múltiplas regiões?
- [ ] O escalonamento automático está configurado (por exemplo, HPA, Keda) para picos de tráfego?
- [ ] As verificações de integridade estão configuradas para o servidor?
- [ ] Os limites de recursos foram definidos e documentados?
- [ ] Existe uma estratégia de implantação azul-verde ou canário em vigor?
- [ ] Existe um plano e procedimento de reversão definidos?
5. Observabilidade e rastreamento
- [ ] Existe um painel que mostra métricas relevantes (por exemplo, contagem de solicitações, códigos de status HTTP, uso)?
- [ ] Podemos rastrear uma única solicitação de ponta a ponta para fins de depuração?
- [ ] Existe um sistema de agregação e análise de logs?
- [ ] O rastreamento distribuído está implementado?
6. Testes de carga
- [ ] O planejamento de capacidade foi realizado para determinar as capacidades de manipulação de carga do servidor?
- [ ] Existem benchmarks de desempenho definidos?
- [ ] Foram realizados testes de estresse?
7. Qualidade
- [ ] Existem testes de unidade automatizados?
- [ ] Existem testes de integração automatizados?
- [ ] A análise estática de código (por exemplo, verificações de complexidade) é realizada?
- [ ] A cobertura do código é medida e está em um nível aceitável?
- [ ] Existem casos de teste de sanidade de produção?
- [ ] Existe um pipeline de CI/CD em vigor?
- [ ] As verificações de segurança e avaliações de vulnerabilidade são realizadas regularmente?
8. Liberação
- [ ] A documentação do Swagger/OpenAPI está disponível e atualizada?
- [ ] Existe um sistema de versionamento para APIs e releases?
- [ ] Existe um canal de comunicação estabelecido para manutenção programada?
- [ ] Existe um processo de gerenciamento de mudanças?
- [ ] Os sinalizadores de recursos são usados para implementação gradual de novos recursos?
9. Recuperação de Desastres e Continuidade de Negócios
- [ ] Os procedimentos de backup e restauração estão implementados e testados?
- [ ] Existe uma estratégia de replicação de dados?
- [ ] O Objetivo de Tempo de Recuperação (RTO) e o Objetivo de Ponto de Recuperação (RPO) foram definidos?
- [ ] São realizados exercícios regulares de recuperação de desastres?
10. Conformidade e Segurança
- [ ] Os dados são criptografados em repouso e em trânsito?
- [ ] Existem mecanismos de controle de acesso e autenticação?
- [ ] São realizadas auditorias de segurança regulares?
- [ ] O aplicativo está em conformidade com os padrões relevantes do setor (por exemplo, GDPR, HIPAA)?
11. Documentação
- [ ] A documentação da arquitetura do sistema está disponível e atualizada?
- [ ] A documentação da API está completa e atualizada?
- [ ] Os procedimentos operacionais estão documentados?
- [ ] Existe um guia abrangente de solução de problemas?