Trabajo en equipo (de verdad). Los administradores de sistemas participan en las reuniones de desarrollo desde el principio, de modo que la arquitectura se planifica en equipo (sistemas y desarrollo). Desarrolladores y sistemas usan las mismas herramientas (gestión de fallos, despliegue, repositorio de código…)
Compilación y pruebas automatizadas y continuas: cada vez que el código cambia, se construye el paquete y se realizan las pruebas automáticamente. Esta idea se puede extender a la liberación de código y al despliegue de la aplicación. Y al aprovisionamiento de recursos (en base a un modelo predictivo)
«Infraestructura como código» (IaC). Las tareas de administración se basan en herramientas de automatización de «alto nivel» (Salt, Puppet, Chef…). La configuración y los scripts también se gestionan con control de versiones.
«Crash tests» planificados: ser proactivo en la prueba real de fallos, caÃdas y recuperación. Se analizan las caÃdas de servicio y las conclusiones se integran en el proceso.
Margen de error mensual: el tiempo en que un servicio no está activo se descuenta de una cuota mensual. Mientras quede tiempo en esa cuota, se puede seguir experimentando y arriesgando. Cuando se agota, sólo se permite desplegar para corregir fallos crÃticos urgentes («Error Budget», en Google)