Aunque es posible encontrar diversa literatura en internet que hace referencia a los principios DevOps, en este curso vamos a centrarnos en el modelo CAMS el cual nos permite explicar los pilares bajo los cuales se fundamenta DevOps.


Adaptarse a una cultura DevOps significa transformarse en una organización que se enfoca en brindar un servicio de alta calidad. El servicio no solo significa poner el producto a disposición del cliente, sino también garantizar que el producto esté en su mejor forma y cumpla constantemente con los requisitos de los clientes
La cultura es la parte más importante del movimiento DevOps. La cultura traerá todo un conjunto de prácticas como lo son:
La mentalidad de servicio es un aspecto crítico de la cultura DevOps, ya que los productos desarrollados con mentalidad de servicio cumplirán las siguientes condiciones:
Establecer una cultura de DevOps: los equipos de DevOps se basan en ciertos aspectos para centrarse en brindar un servicio de alta calidad a los clientes. Son una atmósfera que promueve el aprendizaje continuo, la autonomía para experimentar, una mentalidad de pensamiento de producto, una cultura de ingeniería y un enfoque en la calidad.
Las organizaciones deberían centrarse en crear un entorno que propague los aspectos anteriores.

Los avances tecnológicos están conduciendo a la automatización de tareas rutinarias
La automatización satisface muchas necesidades y resuelve muchos problemas, por supuesto. ¡Pero cuidado, solo representan el 25% del trabajo de DevOps!
En un ciclo de vida de entrega de software, muchas de las tareas se repiten y se vuelven rutinarias. Al entregar el proceso también al equipo de operaciones, identificamos muchas tareas que son rutinarias y redundantes. Las pruebas y los controles de rutina se pueden automatizar para mejorar la eficiencia de todo el proceso de entrega.
La automatización de las tareas de rutina dará como resultado un cambio, donde los miembros del equipo de Software Delivery ejecutarán principalmente tareas con alta variabilidad y alta capacidad de análisis. En otras palabras, tareas de ingeniería. Esto requiere que una organización se base en una estructura orgánica, con equipos de ingeniería en gran medida autónomos, multidisciplinarios y autoorganizados.
Los procesos automatizados son repetibles. El costo de la ejecución del proceso se minimiza. En otras palabras, la automatización da como resultado resultados predecibles y estandarizados. Estos conceptos se pueden aplicar a los procesos de entrega de software.
¿Por qué automatizar?
Sobre todo, para acelerar el flujo de información y evitar el reclutamiento de personas.
Acelerar el flujo de información, por supuesto, lleva el software al cliente antes, pero también ayuda a obtener resultados antes. Entonces, si un problema ocurre antes (como la detección de un error), cuesta mucho menos que si se descubre más tarde.
Evitar reclutar personas, ¿por qué? Por supuesto, por razones financieras, pero también para evitar posibles problemas de comunicación entre humanos, para evitar conflictos de personas y para evitar errores cometidos por humanos. Y sí, porque cuantos más humanos hay, más errores hay ...
Con la automatización, el equipo obtiene resultados más rápidos, más repetibles y más consistentes.

La medición es fundamental para ofrecer continuamente valor y mejora. Hacer un seguimiento de las métricas importantes y ofrecer comentarios ayuda a mejorar el proceso.
¿Cómo puede tener una mejora continua sin la capacidad de medir la mejora? ¿Cómo saber si una tarea de automatización vale la pena? Basar las decisiones en datos, más que en instinto, conduce a un camino de mejora irreprochable. Los datos deben ser transparentes, accesibles para todos, significativos y capaces de visualizarse de manera ad hoc
El proceso de mejora continua (Kaizen) está en el corazón de DevOps. Pero para eso, aún es necesario poder saber si uno ha mejorado y poder probarlo. No es un milagro, las medidas son la clave, porque las decisiones deben tomarse sobre hechos, datos, no opiniones.
¿Por qué medir? La mejor manera de saber si estamos mejorando es midiendo lo que hacemos.
No confiemos en el instinto, midamos lo que estamos haciendo para saber si estamos mejorando o empeorando.
Ejemplos técnicos:
Ejemplos de negocios:
Los desarrolladores son responsables de definir qué medir y la operación es responsable de monitorear
S = Sharing (Compartir):

DevOps, por definición, es la colaboración del desarrollo y las operaciones, y el intercambio es fundamental para esto. La implementación de DevOps implica una interacción constante y, lo más importante, el intercambio de conocimientos.
El éxito de DevOps en cualquier organización es compartir las herramientas, los descubrimientos y las lecciones. Al encontrar personas con necesidades similares en toda la organización, se pueden descubrir nuevas oportunidades para colaborar, se puede eliminar el trabajo duplicado y se puede crear un poderoso sentido de compromiso entre el personal. Fuera de la organización, compartir herramientas y códigos con personas de la comunidad ayuda a implementar rápidamente nuevas funciones en el software de código abierto. La participación en la conferencia deja al personal sintiéndose energizado e informado sobre nuevas formas de innovar.
Este principio tiene tres componentes fundamentales:
Visibilidad
Transparencia
Transferencia de conocimiento