Organizar blueprints por nivel
| Nivel de blueprint | Cuándo usarlo | Ejemplos |
|---|---|---|
| Enterprise | Predeterminado para toda la configuración compartida | Python 3.12, Node 20, Go 1.22, Rust, escáneres de seguridad, certificados de AC corporativa, CLIs internos, configuración de proxy, tokens compartidos para registros |
| Organization | Solo cuando algo no deba aplicarse a todas las org | Un registro privado específico de un equipo, herramientas restringidas a ciertos equipos, configuración de linting específica de la org |
| Repository | Configuración por repo que se ejecuta en el directorio del repo | npm install, uv sync, elementos de Knowledge específicos del proyecto, archivos .envrc a nivel de repo |
Usa los elementos de Knowledge en el nivel correcto
- Knowledge de Enterprise: Estándares de codificación de toda la empresa, requisitos de revisión de seguridad y enlaces a documentación interna.
- Knowledge de la org: Convenciones del equipo, patrones de uso de bibliotecas compartidas y procedimientos de despliegue específicos del equipo.
- Knowledge del repo: Comandos de lint, pruebas y compilación para el proyecto específico.
Gestión de secretos a escala
Dónde definir los secretos
| Ámbito del secreto | Se usa para | Ejemplos |
|---|---|---|
| Enterprise | Credenciales compartidas entre todas las organizaciones | Tokens del registro interno, autenticación en el proxy corporativo, claves de API compartidas para servicios internos |
| Organización | Credenciales específicas del equipo | Claves de despliegue del equipo, tokens de API para servicios del equipo, autenticación en el registro del equipo |
| Repositorio | Credenciales específicas del repositorio | Claves de API por proyecto, cuentas de servicio específicas del proyecto |
Gestión segura de secretos
- Nunca incluyas secretos en YAML. Usa siempre la interfaz de gestión de secretos. Los secretos en YAML acaban en los registros, los artefactos de compilación y los registros de auditoría.
- Rota los secretos con regularidad. Cuando rotas un secreto en la interfaz, el nuevo valor entra en vigor en la siguiente compilación. No hace falta cambiar el blueprint.
- Usa nombres descriptivos.
INTERNAL_NPM_TOKENes mejor queTOKEN_1. Otros administradores (y tu yo del futuro) necesitan comprender para qué sirve cada secreto. - Audita el uso de los secretos. Revisa periódicamente qué secretos existen y si siguen siendo necesarios. Elimina los secretos que no se usen para reducir la superficie de ataque.
Si un secreto de la organización y un secreto de Enterprise tienen el mismo nombre, prevalece el secreto de la organización. Lo mismo ocurre cuando los secretos del repositorio reemplazan a los de la organización. Usa este comportamiento de forma intencional. Por ejemplo, una organización podría reemplazar el
token del registro de Enterprise por un token específico del equipo con permisos diferentes.
Supervisión del estado de las compilaciones
Establece una frecuencia de revisión
- Compilaciones fallidas: Fallos críticos en los blueprints de Enterprise o de las orgs que bloquean todos los repos.
- Compilaciones parciales: Algunos repos fallan. Suele ser señal de un problema de dependencias o de un blueprint desactualizado.
- Compilaciones desactualizadas: Orgs cuya compilación más reciente es inusualmente antigua, lo que puede indicar que la cola de compilación está atascada.
Responde a los fallos del blueprint de Enterprise
- Evalúa el alcance del impacto. Comprueba cuántas organizaciones se ven afectadas en la página Rollout.
- Revierte el blueprint de Enterprise al último blueprint que se sabe que funciona correctamente. Guarda de inmediato. Esto activa recompilaciones en todas las organizaciones afectadas.
- Investiga de forma aislada. Prueba tus cambios en una sola organización piloto antes de volver a implementarlos.
Las compilaciones parciales son una señal
- Un problema de dependencias específico de un repositorio (archivo de bloqueo dañado, paquete eliminado)
- Falta una biblioteca del sistema que solo necesita un proyecto
- Un blueprint desactualizado que no se ha ajustado a los cambios del repositorio
Cuándo fijar compilaciones
Buenas razones para fijar compilaciones
- Lanzamiento crítico en curso. Necesitas un entorno estable y validado durante las próximas 48 horas mientras lanzas una versión.
- Depuración activa. Estás investigando un problema de compilación y no quieres que las actualizaciones automáticas cambien nada en pleno proceso.
- Reversión. Una nueva compilación introdujo una regresión y necesitas revertirla de inmediato mientras corriges el blueprint.
Malas razones para fijar
- Evitar una solución. Si una compilación está rota, corrige el blueprint. Fijarla oculta el problema y, como las fijaciones no caducan automáticamente, una fijación olvidada puede hacer que sigas ejecutando un entorno obsoleto indefinidamente.
- “Por si acaso.” Las actualizaciones automáticas mantienen las dependencias al día y detectan los problemas pronto. Desactivarlas sin ningún motivo específico solo retrasa los problemas.
Migrar tu empresa
Patrones de arquitectura comunes
Organizaciones monorepo
npm install en el directorio del frontend, uv sync en el directorio del backend) en la blueprint del repositorio. La blueprint de la org solo es necesaria si esta org tiene herramientas o configuración que no deberían aplicarse a otras orgs.
Organizaciones con varios repositorios
maintenance y Knowledge. Esto evita duplicar comandos de configuración entre repositorios.
Configuración: Un org de plataforma o de DevOps que proporciona servicios compartidos que usan otros equipos.
Enfoque: El blueprint de Enterprise cubre la base común. El blueprint del org de infraestructura compartida instala las herramientas específicas de la plataforma (Terraform, kubectl y CLI de nube) que necesitan sus repos. Los demás orgs no reciben estas herramientas. Solo obtienen lo que incluye el blueprint de Enterprise, además de la configuración de su propio org.
Organizaciones de proyecto aisladas
En caso de duda, inclúyelo en el blueprint Enterprise. Si una organización tiene un motivo específico para excluir algo (versiones de herramientas en conflicto, acceso restringido), puede anularlo a nivel de la organización. Es
más fácil contar con una base de referencia Enterprise completa que duplicar la configuración en muchos blueprints de organización.
