A medida que avanza la tecnología, podemos pasar tanto tiempo enfocándonos en el «cómo» que olvidamos el «por qué». Si bien es importante comprender cómo implementar diferentes lenguajes y tecnologías, comprender los conceptos y principios de estos enfoques puede conducir a decisiones más inteligentes.
Por ejemplo, quiero escribir un programa JavaScript simple que imprima los números del uno al siete en la consola. Podría escribir siete declaraciones diferentes de console.log con cualquier otro número que lograra mi objetivo.
console.log(1);
console.log(2);
console.log(3);
console.log(4);
console.log(5);
console.log(6);
console.log(7);
Sin embargo, el principio clave de la programación es Don’t Repeat Yourself (DRY), lo que significa que su código debe ser lo más económico y reutilizable posible. Puedo ahorrar tiempo creando un ciclo y dándole los argumentos apropiados como se ve a continuación:
for (let i = 1; i <= 7; i++) {
console.log(i);
};
Esto no solo me evita tener que escribir (o copiar y pegar) siete declaraciones de diario diferentes, sino que también es más escalable. Si luego decido que quiero los números del 1 al 100, solo necesito actualizar el límite exterior en mi declaración en lugar de enumerar las 100 declaraciones en console.log. Incluso puedo hacer que este ciclo forme parte de una función y empaquetarlo como un módulo que se usará en toda mi aplicación.
Cuando se usa en varias aplicaciones que usamos todos los días, el principio DRY se traduce en una mayor eficiencia y comodidad para el usuario. Encontramos la información que necesitamos más rápido y experimentamos menos frustración.
Políticas y prácticas de DevOps
Como hemos visto, ambos métodos en el ejemplo inicial lograrían el mismo resultado, pero el último está en línea con las prácticas DRY. Si bien esto puede no parecer crítico en programas simples, imagine una gran aplicación llena de extraterrestres consola.log informes. Más código significa archivos más grandes y archivos más grandes significan tiempos de carga más largos.
Cuando se trata de DevOps, las reglas también sirven como guía para el equipo de DevOps de la misma manera que DRY guía las decisiones de los desarrolladores. Sin estas prácticas centrales para guiarnos, los diversos aspectos técnicos y operativos de DevOps pueden abrumarnos rápidamente. En otras palabras, estamos perdiendo el bosque por los árboles.
Sin embargo, al utilizar DevOps como marco, podemos juzgar las decisiones no solo en función de su valor operativo (p. ej., tiempos de respuesta más rápidos), sino también si acercan al equipo a las prácticas (p. ej., automatización). Estos llamados a juicio y las reglas detrás de ellos ayudan a dar forma a las mejores prácticas de su equipo.
Alinear su enfoque de DevOps con los siete principios de DevOps que discutimos a continuación garantizará el éxito de su equipo.

7 principios de DevOps
- Cooperación
- Toma de decisiones basada en datos
- Toma de decisiones orientada al cliente
- Mejora continua
- Responsabilidad durante todo el ciclo de vida
- Automatización
- El fracaso como oportunidad de aprendizaje
1. Colaboración
DevOps en su forma más pura es la integración de equipos de desarrollo (Dev) y operativos (Ops). Esto significa que la colaboración es fundamental para los cimientos de DevOps. Al trabajar juntos, los desarrolladores pueden configurar mejor el software para la fase operativa y las operaciones pueden probar el software con anticipación para asegurarse de que cumple con los requisitos.
La cooperación también depende de buenas prácticas de intercambio de información. El problema encontrado durante la implementación de la aplicación debe registrarse correctamente para que el equipo de desarrollo pueda incluirlo en compilaciones futuras.
En la misma línea, las opiniones también deben compartirse con todo el equipo. Los comentarios positivos elevan la moral y recuerdan al equipo por qué su trabajo es importante. La retroalimentación negativa es aún más importante para la mejora continua de la entrega de software.
2. Toma de decisiones basada en datos
Otro principio importante de DevOps es comunicar decisiones utilizando datos. Ya sea que esté seleccionando la pila de tecnología correcta o seleccionando herramientas para mejorar su flujo, siempre debe recopilar datos sobre cada decisión para asegurarse de que su selección esté en línea con las métricas y los datos históricos de su equipo.
Por ejemplo, un indicador clave de rendimiento (KPI) para muchos equipos es el tiempo que lleva resolver un problema. Cuanto más tiempo exista el defecto, más daño puede causar.
Conocer el tiempo promedio para resolver problemas lo ayudará a tomar decisiones informadas al introducir nuevas herramientas o procedimientos en su canalización. Puede comparar sus resultados con el promedio de comparación y ver si la nueva incorporación finalmente ayudará o dañará a su equipo.
3. Toma de decisiones orientada al cliente
El cliente debe ser el punto focal del ciclo de vida de DevOps. Tan importante como los datos, las decisiones deben sopesarse con la pregunta «¿Se beneficiará el cliente de esto?» La recopilación de comentarios de los clientes sobre un producto existente guiará la optimización futura.
Los equipos de DevOps también usan estrategias de monitoreo en vivo para solucionar problemas antes de que se conviertan en un problema para el cliente. Otras herramientas permiten al equipo medir las interacciones del usuario final con la aplicación en tiempo real para ver si encuentran áreas de fricción. La velocidad del ciclo de vida de DevOps permite que el equipo envíe actualizaciones para solucionar estos problemas.
4. Mejora continua
DevOps se centra en la mejora continua, que es la idea de que el equipo debe centrarse constantemente en nuevas funciones y actualizaciones. Otra idea clave proviene de la metodología Agile para el gasto incremental.
Las estrategias de desarrollo de software anteriores se centraban en ofrecer el producto perfecto de una sola vez. Si bien suena perfecto, la ejecución a menudo significaba que la entrega del software se retrasaría durante mucho tiempo mientras se resolvían los problemas. En cambio, los lanzamientos incrementales permiten que el equipo se concentre en lograr el Producto Mínimo Rentable (MVP) para cumplir con el caso de uso principal del cliente lo más rápido posible.
Una vez que se entrega el MVP, el equipo pasa al desarrollo de funciones para agregar valor adicional al producto y trabaja para crear el software perfecto. Mientras tanto, el cliente puede usar la herramienta más rápido y aprender nuevas funciones a medida que estén disponibles, en lugar de tener que aprender toda la plataforma al final del ciclo de entrega en cascada.
5. Responsabilidad durante todo el ciclo de vida
En los modelos tradicionales de desarrollo de software, el equipo de desarrollo codifica y construye la aplicación. Luego lo entregan al equipo operativo para que lo pruebe, implemente y entregue al cliente. Cualquier error encontrado en la segunda fase se deja al equipo de operaciones, no a los desarrolladores que escribieron el código.
DevOps nos muestra un enfoque más lógico: la responsabilidad a lo largo del ciclo de vida. Todo el equipo es responsable del producto desde la planificación inicial hasta el final de su vida útil. Durante todo este proceso, los equipos de desarrollo y operativos trabajan mano a mano para actualizar el software y resolver problemas.
Los más familiarizados con el código fuente son los mismos desarrolladores que actualmente están trabajando para mejorarlo y agregar nuevas funciones. Esto pone un nuevo énfasis en la creación de código de alta calidad y la depuración proactiva, lo que lleva a mejores resultados para los clientes.
6. Automatización
La ventaja clave del enfoque DevOps es la velocidad: velocidad de entrega de software, velocidad de actualizaciones, velocidad de parches. Este impulso se logra a través de la automatización. Los equipos de DevOps se esfuerzan por automatizar cada fase del proceso, desde la revisión del código hasta la carga, el uso compartido y la implementación.
Esto no solo permite que el flujo se mueva más rápido, sino que también conduce a una mayor satisfacción laboral entre los miembros del equipo. Ya no tienen que hacer tareas manuales y tediosas. En su lugar, pueden concentrarse en tareas de nivel superior, como la planificación de mejoras futuras y la investigación de nuevas tecnologías para implementar en el software.
La forma más fácil de automatizar es a través de herramientas DevOps especialmente diseñadas.
7. El fracaso como oportunidad de aprendizaje
DevOps es un enfoque flexible para el desarrollo. Los procesos se refinan constantemente, al igual que el software en sí mismo se mejora constantemente. Parte de mantener esta flexibilidad es ver el fracaso como una oportunidad para aprender y mejorar. En lugar de tratar de evitar el fracaso a toda costa, fomente la toma de riesgos en el contexto adecuado.
El riesgo está asociado con la posibilidad de fallar, pero también puede conducir al éxito. Independientemente de cómo vaya su experimento, tendrá una mejor comprensión de lo que funciona y lo que no. Esta experiencia lo ayudará a planificar estrategias futuras y actuará como su próximo punto de datos para la toma de decisiones.
Por supuesto, las pruebas tempranas permitirán fallas rápidas donde la falla no tiene impacto en el cliente. Este es el momento perfecto para encontrar problemas en lugar de fallas. después de la implementación. Esta estrategia forma parte del concepto conocido como «desplazamiento a la izquierda» del que hablaremos a continuación.
¿Por qué DevOps recomienda una política de prueba de desplazamiento hacia la izquierda?
El énfasis de DevOps en las pruebas es un diferenciador crítico de otras estrategias de desarrollo de software. Mientras que otras estrategias se centran en la codificación posterior y las pruebas de desarrollo, DevOps implementa el principio de «deslizar hacia la izquierda». Si visualiza el proceso de desarrollo como una línea recta, moverse hacia la izquierda significa mover la prueba lo más hacia la izquierda posible hacia el inicio del proceso.
Las pruebas durante la fase de desarrollo del ciclo de vida de DevOps brindan beneficios tangibles. En primer lugar, es más fácil, rápido y económico detectar los defectos en las primeras etapas del proceso, antes de que se escriba más código. Más dependencias significa más complejidad, y esto aumenta la probabilidad de que arreglar una parte del código rompa otra.
Otro beneficio del enfoque de «cambio a la izquierda» para las pruebas es que el equipo de desarrollo ahora se enfoca en crear código de alta calidad desde cero, en lugar de esperar hasta una etapa posterior para encontrar defectos. El producto se entrega al cliente más rápido y con menos errores (si los hay). Todos se benefician de este enfoque.
Implementación de políticas de DevOps
Estas siete reglas de DevOps están destinadas a servir como su estrella polar al ajustar su canalización. Tenga en cuenta que DevOps es tanto una cultura como una estrategia de desarrollo, y la colaboración es la base de la cultura y las prácticas de desarrollo.
La conclusión principal es que debe practicar el enfoque colaborativo mientras trabaja para adoptar estos principios de DevOps en su equipo. Después de todo, su equipo está formado por partes interesadas individuales que tienen sus propias perspectivas, habilidades e ideas para contribuir. Además, centre su motivación en el servicio al cliente y concéntrese en la calidad en cada etapa.








