Consideraciones y control de calidad mínimo de plataformas cloud.

En este artículo me gustaría exponer, a modo de borrador y basado en mi propia experiencia, algunas de las consideraciones y controles de calidad mínimos que, en mi opinión, un equipo de plataformas debe tener en cuenta a la hora de organizarse y llevar a la práctica proyectos que impliquen el diseño, arquitectura e implantación de plataformas cloud.

[Update] 14/10/2025 - Ante todo recomiendo tener siempre presente la filosofía "Que lo simple triunfe sobre lo fácil"

Borrador a fecha de hoy ;)

Análisis de diseño y arquitectura inicial

  • Analizar el problema y las necesidades.
  • Proponer soluciones que faciliten la vida a los usuarios de la plataforma.
  • Tener en cuenta nuevas tecnologías.
  • Automatizar lo máximo que podamos.
  • Análisis de costes.
  • Valoración de tecnologías libres que impliquen la reducción de gastos.
  • No implantar sistemas con problemas de seguridad.
  • Consensuar el análisis con el equipo.
  • Cerrar arquitectura de una solución definitiva.

En general, antes y mientras estemos creando IaC...

  • Ceñirnos a la definición inicial consensuada.
  • Pensar en la reutilización.
  • Automatizar lo máximo que podamos.
  • Pensar en la facilidad de mantenimiento en el futuro.
  • No añadir complejidad global innecesaria.
  • Simplificar al máximo sin quitar funcionalidad.
  • Si se introducen mejoras personales fuera de la definición inicial que añada complejidad, valorar con el equipo.
  • Ajustar si es necesario el resultado funcional final.
  • Trabajar en un entorno de test pensando en que los cambios de producción tengan que ser mínimos (monitoring, recursos...)

Control funcional y seguridad

  • Tests de caos.
  • Tests de seguridad.
  • Tests de carga y escalado de la plataforma.
  • Tests de deploy de la aplicación.
  • Comprobar los logs de la plataforma sin errores (a nivel de sistemas).
  • Comprobar las alarmas del entorno de producción.
    • Alarmas básicas de sistemas.
    • Alarmas consensuadas con el equipo de desarrollo.
  • Comprobar los permisos necesarios por parte del desarrollador.
    • Logs.
    • Deploy.
    • Recursos de la plataforma necesarios.

Código (IaC)

  • Que contenga un README con la documentación interna para el equipo.
    • Descripción mínima.
    • Sólo con el detalle necesario.
    • Definición de scripts adicionales.
  • Coherencia y orden general de lo que estamos montando a nivel de ficheros/carpetas y código.
  • Sin comentitis. La mayoría de las veces el código se define solo.
  • Sin errores de sintaxis ni posibles futuras deprecaciones.
  • Sin código vulnerable.
  • Sin información sensible.
  • Respetando la lógica global de lo que ya tenemos montado.
  • Si se requieren cambios globales, valorar con el equipo.
  • Si no está desplegado o automatizado para que se despliegue, no tiene que estar en el código.
  • Cariño adicional en temas más concretos de código.

Entrega y comunicación con otros equipos

  • Avanzarnos a posibles problemas con otros equipos.
  • Antes de que otro pruebe la plataforma, tienes que haberla probado tú antes.
  • Conocimiento mínimo de la tecnología que implantamos.
  • Acompañar al desarrollador en sus primeros deploys.
    • Utilizar el entorno de test para poner en común todo lo necesario, antes del paso a producción.
    • Si no está todo listo en test no se puede desplegar en producción.
    • Comentar mejoras y añadirlas si es necesario.
    • Consensuar conjuntamente con el equipo de desarrollo el paso a producción.