DevOps es una de las tendencias clave en el desarrollo de software que han emergido recientemente. Pero a menudo este término no se entiende completamente.
Al mezclar el “desarrollo” (Development) con las “operaciones” (Operations), DevOps describe la estructura organizativa, las prácticas y la cultura necesarias para permitir un desarrollo ágil, rápido, así como operaciones escalables y confiables.
Como se puede apreciar, el concepto se refiere a la cultura, las prácticas de colaboración y la automatización que alinea equipos de desarrollo y operaciones para que tengan una mentalidad única sobre la mejora de las experiencias de los clientes, respondiendo más rápido a las necesidades empresariales y asegurando que la innovación se equilibre con las necesidades operativas y de seguridad.
Coincidencias y divergencias
Para los equipos del área de Desarrollo, DevOps normalmente significa estandarizar las plataformas, seguir un proceso de desarrollo ágil y participar en iniciativas impulsadas operativamente. Para los equipos de Operaciones, significa apuntar a una mejor estabilidad, reducir costes y mejorar la capacidad de respuesta.
Pero no todos están de acuerdo sobre la estructura organizativa y cómo se asignan las responsabilidades entre los equipos de desarrollo y operacionales.
Algunas personas hacen hincapié en la fusión de las personas y las responsabilidades operativas y de desarrollo para que un equipo de DevOps asuma ambas responsabilidades.
Esto tiene algunas ventajas culturales, ya que tanto los desarrolladores como los ingenieros se ven obligados a responder en equipo tanto a las necesidades operativas como a las de los negocios. Y esta estructura puede ser más eficiente, especialmente en las empresas más pequeñas que no pueden dedicar fácilmente recursos para centrarse en el desarrollo o las operaciones de forma independiente.
Muchas personas también argumentan que cuando se estandariza la infraestructura en la nube y se automatizan la mayoría de los flujos de trabajo, hay menos necesidad de tener conjuntos separados de personas con diferentes habilidades y responsabilidades.
En esta visión de transformación, DevOps tiene como objetivo reducir los conflictos que surgen cuando los desarrolladores se centran en satisfacer las demandas del negocio para agregar funcionalidad y mejorar la usabilidad de las aplicaciones, mientras que los equipos de operaciones tradicionalmente se centran más en la estabilidad y la seguridad de los entornos informáticos.
Se trata, pues, de educar a los desarrolladores sobre las responsabilidades operacionales y de educar a los equipos de Operaciones sobre cómo atender las necesidades del negocio de manera más inteligente y rápida.
Cuando hay un entendimiento compartido y una mejor alineación en las prioridades y el proceso entre el equipo de desarrollo y operaciones, surge una cultura de devotos centrada en el cliente.
Bajo un concepto técnico básico, se puede concluir que, a medida que DevOps automatiza más de las interacciones con la infraestructura desde la construcción, pruebas, implementación y supervisión, se pueden eliminar muchos defectos operativos y alinear mejor los procesos de desarrollo y operaciones.
Isaac Sacolick, CIO