04 · Pipelines como produto
Os times escrevem só o que é específico da aplicação; build, scans, publicação e deploy vêm de templates versionados do projeto platform.
Mecanismo de imposição
- Pipelines de aplicação usam
extendspara um template doplatform, referenciado por tag (ref: refs/tags/v3). - Required template check em Environments, service connections e agent pools de produção: um pipeline que não estende o template aprovado não consegue fazer o deploy.
- Classic pipelines desabilitados na organização; somente YAML.
- Parâmetros tipados no template expõem o que o time pode escolher (linguagem, testes extras) e escondem o que não pode (scans, assinatura).
# azure-pipelines.yml de uma aplicação
resources:
repositories:
- repository: templates
type: git
name: platform/pipeline-templates
ref: refs/tags/v3
extends:
template: java/servico.yml@templates
parameters:
jdk: 17
testesIntegracao: true
Build pipeline (CI)
- Restore com feeds internos (sem acesso direto à internet).
- Compilação e testes unitários com cobertura.
- SAST, SCA, secret scanning e IaC scanning.
- Geração de SBOM e de provenance.
- Publicação do artefato imutável, versionado e assinado.
Deployment pipeline (CD)
- Deployment jobs apontando para Environments, consumindo o artefato do CI pelo ID do run.
- Configuração por ambiente injetada no deploy (variable groups ligados ao Key Vault), nunca recompilada.
- Smoke test após cada deploy e verificação de saúde antes de promover.
Quality gates
| Ponto | Gate | Mecanismo |
|---|---|---|
| Pull request | CI verde, revisão, scans sem críticos novos | Branch policies + build validation |
| Publicação | Quality gate de cobertura e duplicação | Sonar (ou equivalente) no template |
Entrada em hml | Sem vulnerabilidade crítica conhecida | Consulta ao Dependency-Track |
Entrada em prd | DAST ok, aprovação, janela permitida | Environment checks |
Artifact repository
- Azure Artifacts para pacotes (Maven, npm), com upstream sources e views
@prerelease/@releasepara promoção. - Registry de imagens com retenção e bloqueio de tag mutável em produção.
Indicadores: D3 · Pipelines como produto