Organizando blueprints entre níveis
| Nível do blueprint | Quando usar | Exemplos |
|---|---|---|
| Enterprise | Padrão para toda configuração compartilhada | Python 3.12, Node 20, Go 1.22, Rust, scanners de segurança, certificados de CA corporativa, CLIs internas, configuração de proxy, tokens de registro compartilhado |
| organização | Somente quando algo não deve se aplicar a toda org | Um registro privado específico de uma equipe, ferramentas restritas a determinadas equipes, configuração de linting específica da org |
| repositório | Configuração por repo executada no diretório do repo | npm install, uv sync, itens do Knowledge específicos do projeto, arquivos .envrc no nível do repo |
Use os itens do Knowledge no nível certo
- Knowledge da Enterprise: Padrões de código da empresa, requisitos de revisão de segurança, links para a documentação interna.
- Knowledge da org: Convenções da equipe, padrões de uso de bibliotecas compartilhadas, procedimentos de deployment específicos da equipe.
- Knowledge do repo: Comandos de lint, teste e build para o projeto específico.
Gerenciamento de segredos em grande escala
Onde definir segredos
| Escopo do segredo | Use para | Exemplos |
|---|---|---|
| Enterprise | Credenciais compartilhadas por todas as org | Tokens de registro interno, autenticação de proxy corporativo, chaves de API compartilhadas para serviços internos |
| Organização | Credenciais específicas da equipe | Chaves de implantação da equipe, tokens de API para serviços da equipe, autenticação de registro específica da equipe |
| Repositório | Credenciais específicas do repo | Chaves de API por projeto, contas de serviço específicas do projeto |
Higiene de segredos
- Nunca coloque segredos em YAML. Sempre use a interface de gerenciamento de segredos. Segredos em YAML acabam em logs, artefatos de build e trilhas de auditoria.
- Rotacione segredos regularmente. Quando você rotaciona um segredo na interface, o novo valor passa a valer no próximo build. Nenhuma alteração no blueprint é necessária.
- Use nomes descritivos.
INTERNAL_NPM_TOKENé melhor do queTOKEN_1. Outros administradores (e você no futuro) precisam entender para que serve cada segredo. - Audite o uso de segredos. Revise periodicamente quais segredos existem e se eles ainda são necessários. Remova segredos não utilizados para reduzir sua superfície de ataque.
Se um segredo da org e um segredo do Enterprise tiverem o mesmo nome, o segredo da org prevalece. O mesmo vale para segredos de repositório substituindo segredos da org. Use isso intencionalmente. Por exemplo, uma org pode substituir o
token de registro do Enterprise por um token específico da equipe com permissões diferentes.
Monitoramento da saúde dos builds
Estabeleça uma cadência de revisão
- Builds com falha: Falhas críticas em blueprints da Enterprise ou da org que bloqueiam todos os repos.
- Builds parciais: Alguns repos com falha. Muitas vezes, isso indica um problema de dependência ou um blueprint desatualizado.
- Builds desatualizados: Orgs cujo build mais recente está excepcionalmente antigo, o que pode indicar uma fila de builds travada.
Responda a falhas no blueprint do Enterprise
- Avalie o alcance do impacto. Verifique quantas orgs foram afetadas na página Rollout.
- Reverta o blueprint do Enterprise para o último blueprint estável conhecido. Salve imediatamente. Isso aciona rebuilds em todas as orgs afetadas.
- Investigue de forma isolada. Teste suas alterações em uma única org piloto antes de implantá-las novamente.
Builds parciais são um sinal
- Um problema de dependência específico do repositório (arquivo de lock corrompido, pacote removido)
- Uma biblioteca de sistema ausente, necessária apenas para um dos projetos
- Um blueprint desatualizado, que não foi atualizado para acompanhar as mudanças no repositório
Quando fixar builds
Bons motivos para fixar builds
- Lançamento crítico em andamento. Você precisa de um ambiente estável e confiável pelas próximas 48 horas enquanto lança uma nova versão.
- Depuração ativa. Você está investigando um problema de build e não quer que atualizações automáticas alterem o ambiente durante a investigação.
- Rollback. Um novo build causou uma regressão, e você precisa reverter imediatamente enquanto corrige o blueprint.
Maus motivos para fixar
- Evitar uma correção. Se um build estiver com problema, corrija o blueprint. Fixar mascara o problema e, como pins não expiram automaticamente, um pin esquecido pode fazer com que você continue usando um ambiente desatualizado por tempo indeterminado.
- “Só por precaução.” As atualizações automáticas mantêm as dependências atualizadas e detectam problemas cedo. Desativá-las sem nenhum motivo específico só adia os problemas.
Migração da sua Enterprise
Padrões comuns de arquitetura
Organizações monorepo
npm install no diretório do frontend, uv sync no diretório do backend) no blueprint do repo. O blueprint da org só é necessário se esta org tiver ferramentas ou configurações que não devam se aplicar a outras orgs.
Organizações com vários repositórios
maintenance e knowledge. Isso evita duplicar comandos de configuração entre os repositórios.
Configuração: Uma org de plataforma ou de DevOps que fornece serviços compartilhados usados por outras equipes.
Abordagem: O blueprint Enterprise cobre a base comum. O blueprint da org de infraestrutura compartilhada instala as ferramentas específicas da plataforma (Terraform, kubectl e CLIs de nuvem) de que seus repos precisam. As outras orgs não recebem essas ferramentas. Elas recebem apenas o que está no blueprint Enterprise, além da configuração da própria org.
Orgs de projeto isoladas
Em caso de dúvida, coloque no blueprint Enterprise. Se uma org tiver um motivo específico para excluir algo (versões conflitantes de ferramentas, acesso restrito), ela poderá substituí-lo no nível da org. É
mais fácil ter uma base Enterprise completa do que duplicar a configuração em vários blueprints de org.
