DBA
Schema, migrações, tuning.
O DBA é a persona que mantém os stores de dados operacionais rápidos, seguros e honestos sob mudança. Em um SDLC AI-nativo, o DBA opera um agente Schema Guard, quatro slash prompts e um catálogo validado de MCPs abrangendo Azure SQL Database e Azure Cosmos DB — não um laptop cheio de scripts SQL.
Resumo executivo
O DBA é dono da saúde dos bancos de dados operacionais — principalmente Azure SQL Database e Azure Cosmos DB — em evolução de schema, performance de queries e confiabilidade. Em um SDLC AI-nativo, o workflow é operacionalizado através de um agente Schema Guard com quatro slash prompts (/migrate-plan, /index-review, /query-tune, /rollback-script), instruções com escopo para SQL e arquivos de migração, e MCPs validados alcançando Azure Monitor, Application Insights e GitHub.
As entregas primárias são planos de migração reversíveis, workloads indexados e tunados, scripts de rollback validados em não-produção e um log de mudanças de schema que qualquer engenheiro pode ler. O DBA fecha a lacuna entre a evolução da aplicação e a realidade do banco de dados: migrações são entregues atrás de feature flags, com prova de que são reversíveis, e regressões de performance são capturadas no CI, não em produção.
O DBA é um colaborador com o Data Engineer e o Developer, não um gatekeeper. Seu poder é multiplicado por agentes que automatizam as partes chatas.
Papel e responsabilidades
Pense no DBA como o engenheiro-chefe de um navio. O capitão define o curso; o engenheiro-chefe garante que os motores nunca parem, as bombas continuem funcionando e cada linha de combustível seja testada antes da tempestade. Em um SDLC AI-nativo, o DBA mantém os motores de dados funcionando sob mudança constante.
Responsabilidades primárias:
- Revisar e fazer merge de cada migração de schema com um plano de rollback
- Manter a estratégia de índices para Azure SQL Database e a estratégia de partição para Azure Cosmos DB
- Tunar queries sinalizadas pelo Application Insights e Azure SQL Query Store
- Aprovar mudanças de acesso através do Microsoft Entra ID com padrões de mínimo privilégio
- Garantir que backups e simulações de restauração rodem trimestralmente
- Colaborar com o Data Engineer em schemas compartilhados e com o Developer em mapeamentos de ORM
- Operar o agente Schema Guard e os prompts
/migrate-plan,/index-review,/query-tune,/rollback-script - Manter o log de mudanças de schema e o dashboard de performance de queries
Jobs to be done
- Como DBA, eu quero cada migração revisada com um script de rollback gerado, para que nenhum passo adiante seja irreversível.
- Como DBA, eu quero sugestões de índices surfaceadas a partir de telemetria de workload real, para que o trabalho de otimização mire na dor real.
- Como DBA, eu quero queries de longa duração tunadas com análise assistida por agente, para que latências p99 fiquem dentro do SLA.
- Como DBA, eu quero partition keys do Cosmos DB revisadas em PRs de modelo de dados, para que hot partitions não apareçam em escala.
- Como DBA, eu quero mudanças de schema deployadas atrás de feature flags com backfill seguro, para que nenhum release seja bloqueado por uma operação DDL.
- Como DBA, eu quero verificações diárias de integridade e simulações de restauração evidenciadas no Azure Monitor, para que alegações de resiliência sejam verificáveis.
- Como DBA, eu quero revisões de acesso ao banco rodadas com Entra ID, para que mínimo privilégio seja o estado padrão.
- Como DBA, eu quero um log de mudanças de schema único publicado no Microsoft Teams, para que produto e engenharia vejam o que mudou em dados compartilhados.
Dores antes do AI-nativo
- Migrações somente para frente. Uma migração ruim em produção significa restaurar de backup, não reverter.
- Índices por adivinhação. Índices adicionados baseados em intuição do developer, não em evidência do Query Store.
- ORMs donos do schema. Schemas inferidos de anotações de código, se afastando do design pretendido.
- Hot partitions do Cosmos. Partition keys escolhidas para minimizar esforço; throttling de produção é o primeiro feedback.
- Concessões de acesso ad hoc. Permissões concedidas durante incidentes, nunca revogadas, se tornando o novo normal.
- Simulações de restauração puladas. “Temos backups” é acreditado até o dia em que precisamos usá-los.
- Silêncio de mudança de schema. Engenharia fica sabendo da nova coluna por erros de produção, não por revisões de PR.
Fluxo diário AI-nativo
O DBA trabalha a partir do Visual Studio Code com GitHub Copilot e do terminal com Claude Code, operando o agente Schema Guard ao longo do dia.
Setup da manhã
- Abra o Azure Monitor e o Azure SQL Query Store; revise queries de longa duração e alertas noturnos.
- Rode
/index-review --since=yesterday; o Schema Guard surfa recomendações de índice a partir de telemetria real. - Revise PRs de migração pendentes; confirme que cada um tem um
/rollback-script. - Verifique métricas do Cosmos DB para hot partitions e throttling; triar.
- Sincronize com o Data Engineer sobre quaisquer dependências cross-store em movimento hoje.
Execução no meio do dia
- Para cada PR de migração, rode
/migrate-plan; o Schema Guard verifica a reversibilidade e produz um plano de execução passo a passo com gating por feature flag. - Invoque
/query-tunepara as principais regressões identificadas pelo Application Insights. - Valide scripts de rollback em um banco de staging; anexe a evidência ao PR.
- Pareie com Developers em desalinhamentos ORM-para-schema.
Revisão no fim da tarde
- Publique o log diário de mudanças de schema no Microsoft Teams.
- Revise acesso ao banco mediado pelo Entra ID; feche concessões obsoletas.
- Verifique o status de simulação de restauração; se não está verde neste trimestre, agende e execute.
Primitivas recomendadas
Agente
| Agente | Arquivo | Propósito |
|---|---|---|
schema-guard | .github/agents/schema-guard.agent.md | Revisa migrações, planeja índices, tuna queries, escreve scripts de rollback |
Slash prompts
| Comando | Arquivo | Propósito |
|---|---|---|
/migrate-plan | .github/prompts/migrate-plan.prompt.md | Gerar um plano de migração reversível com gating e estratégia de backfill |
/index-review | .github/prompts/index-review.prompt.md | Surfar recomendações de índice a partir de telemetria do Azure SQL Query Store |
/query-tune | .github/prompts/query-tune.prompt.md | Tunar uma query lenta com análise de plano de execução e sugestões de reescrita |
/rollback-script | .github/prompts/rollback-script.prompt.md | Produzir e validar um script de rollback para uma migração |
Instruções com escopo
Escopo (applyTo) | Arquivo | Propósito |
|---|---|---|
migrations/**/*.sql | .github/instructions/migrations.instructions.md | Passos up e down obrigatórios, sem DDL destrutivo sem gate |
src/**/entities/** | .github/instructions/ormschema.instructions.md | Regras de alinhamento ORM-para-schema para Azure SQL |
cosmos/**/*.ts | .github/instructions/cosmos-dba.instructions.md | Revisões de partition key e política de índice para Azure Cosmos DB |
queries/**/*.sql | .github/instructions/queries.instructions.md | SARGabilidade, parametrização, política de query hints |
Hooks
pre-commit: lint de SQL, detector de DDL destrutivopre-push: dry-run de migração contra um shadow databasepost-merge: agendar execução de migração com gating por feature flagnightly: rodar/index-reviewcontra o Query Store e abrir issueson-deploy: publicar log de mudanças de schema no Microsoft Teams
MCPs validados
| MCP | Propósito | Dono |
|---|---|---|
| GitHub MCP Server | PRs, execuções do Actions, logs de mudança de schema | GitHub |
| Azure MCP Server | Consultar Azure SQL, Cosmos DB, Azure Monitor, Application Insights, Entra ID | Microsoft |
| Microsoft Learn Docs MCP | Referenciar orientação atualizada de Azure SQL e Cosmos DB | Microsoft |
| Azure DevOps MCP Server | Rastrear work items do DBA quando o time usa Azure DevOps | Microsoft |
| Playwright MCP | Validar fluxos de UX data-driven após migração | Microsoft |
Exemplos reais
Exemplo 1: migração segura atrás de feature flag
Um PR adiciona uma coluna preferred_currency a accounts. /migrate-plan gera um plano de dois passos: adicionar coluna nullable, backfill em lotes, depois flipar a feature flag. /rollback-script produz e valida o reverso. A migração roda em horário de baixa demanda; código da aplicação lê o novo campo somente quando a flag está ligada.
Exemplo 2: recomendação de índice a partir de telemetria
Durante a noite, /index-review surfa um índice não-clustered ausente em orders(customer_id, created_at) que direciona 62 por cento de CPU no workload de relatórios analytics. O DBA abre um PR; a migração é reversível; o índice aterrissa; na manhã seguinte, o Query Store confirma que p95 caiu de 3,4 s para 240 ms.
Exemplo 3: hot partition do Cosmos DB capturada cedo
Uma nova feature escreve telemetria com chave por country. /migrate-plan sinaliza a escolha como provável criadora de hot partitions (tráfego dos EUA domina). O Schema Guard sugere uma chave sintética combinando country e um hash de user_id. A mudança aterrissa antes do rollout para produção.
Anti-padrões
- Migrações somente para frente. Nunca faça merge de uma migração sem um script de rollback validado.
- ORM como fonte da verdade. O schema do banco de dados é a fonte da verdade; ORMs o refletem.
- Índice por feeling. Use telemetria do Query Store e Application Insights; não intuição.
- Permissões ad hoc. Todo acesso ao banco via grupos do Entra ID com donos nomeados.
- Simulações de restauração puladas. Se você não restaurou de backup neste trimestre, você não tem backups.
- DDL destrutivo sem gate.
DROP COLUMNem um PR sem revisão é um incidente esperando acontecer. - Mudanças de schema escondidas em PRs de app. Migrações vivem em
migrations/*e são revisadas com o dono do schema.
KPIs e métricas de impacto
| Métrica | Linha base (manual) | Meta (agêntico) | Fonte |
|---|---|---|---|
| Migrações com rollback validado | 30 por cento | 100 por cento | Verificação no PR |
| Regressão de query p95 em produção | 10 por trimestre | < 1 | Application Insights |
| Hot partitions observadas em escala | 3 por trimestre | 0 | Métricas do Cosmos DB |
| Conclusão de simulação de restauração | Anual | Trimestral | Relatórios do Azure Backup |
| Identidades de acesso ao banco obsoletas | 20 | 0 | Revisões de acesso do Entra ID |
| Recomendações de índice atendidas em 30 dias | 20 por cento | > 80 por cento | Histórico de /index-review |
| Log de mudanças de schema publicado | Ad hoc | Diariamente | Microsoft Teams |
Maturidade em quatro níveis
- L1 Manual: Scripts SQL por email, migrações somente para frente, índices por adivinhação.
- L2 Assistido: Copilot redige SQL, migrações rastreadas em ferramenta, mas rollback ainda é ad hoc.
- L3 Aumentado: Agente Schema Guard, quatro slash prompts, instruções com escopo, migrações com feature flag.
- L4 Autônomo: Revisão noturna de índices, rollbacks auto-validados, simulações de restauração agendadas e evidenciadas, log diário de mudanças de schema.
Integração com outras personas
- Com o Data Engineer: governança de schema compartilhada para datasets cross-store; revisão de migração.
- Do Developer: mudanças de entidade e ORM coordenadas através de PRs.
- Do Software Architect: escolhas de tecnologia de armazenamento e modelos de capacidade.
- Com o SRE: runbooks para incidentes de banco de dados e procedimentos de restauração.
- Com o InfoSec Officer: revisões de acesso, logging de auditoria, rotação de chaves de encriptação.
- Para o Compliance Auditor: evidência de controle de mudanças, revisões de acesso, postura de backup.
- Com o Product Owner: janelas de migração planejadas contra o calendário de releases.
Glossário
- Migração: uma mudança versionada e reversível no schema ou objetos do banco de dados.
- Script de rollback: um script validado que retorna o schema a um estado anterior.
- Query Store: feature do Azure SQL que captura planos de consulta e estatísticas de runtime.
- Partition key: a propriedade do Cosmos DB que determina a distribuição de dados.
- SARGable: um predicado de query que pode usar um índice eficientemente.
- Backfill: o processo de popular uma coluna nova ou alterada para linhas existentes.
- Simulação de restauração: um ensaio restaurando de backup para validar objetivos de tempo de recuperação.
Referências
- Documentação do Azure SQL Database — store relacional operacional
- Documentação do Azure Cosmos DB — store NoSQL globalmente distribuído
- Azure Monitor para bancos de dados — métricas, alertas, diagnósticos
- Application Insights — telemetria de dependência para tuning
- Autenticação Microsoft Entra ID para Azure SQL — acesso com mínimo privilégio
- Azure Key Vault para segredos de banco de dados — rotação e armazenamento
- GitHub Actions para deploys de SQL — CI/CD para migrações
- GitHub Actions — orquestração de CI e deploy em todo o stack
- Microsoft Learn Docs MCP — recuperação de documentação first-party no momento da implementação
- GitHub Advanced Security — CodeQL, Dependabot, Secret Scanning, Push Protection