DevOps (del inglés contracción de desarrollo, "desarrollo" , y operaciones, aquí similar a "poner en producción" o " despliegue ") es una metodología de desarrollo de software utilizado en Ciencias de la computación que tiene como objetivo la comunicación, colaboración e integración entre los desarrolladores y las operaciones de tecnología de la información (ti). DevOps tiene como objetivo abordar la interdependencia entre el desarrollo de software y las operaciones de TI al ayudar a una organización a desarrollar productos y servicios de software de manera más rápida y eficiente.
Las empresas que normalmente podrían beneficiarse más de una orientación DevOps son aquellas con versiones de software frecuentes. Flickr utilizó el método DevOps para soportar la necesidad de diez lanzamientos por día; este ciclo de lanzamiento puede ser más frecuente en organizaciones que producen aplicaciones multi - foco o multifunción, a menudo referidas como "implementación continua" y a menudo asociadas con el método lean startup. Grupos de trabajo, asociaciones profesionales y blogs han nacido sobre el tema desde 2009. El método DevOps ayuda a las empresas a gestionar las versiones estandarizando los entornos de desarrollo. Las empresas con problemas de automatización de versiones generalmente ya tienen un proceso automático en su lugar, pero les gustaría que fuera más flexible y controlable, sin tener que actuar como una línea de comandos para lograr esto. Idealmente, dicha automatización también podría ser utilizada por recursos no operativos (que no pertenecen a las operaciones de ti) en entornos que no son de producción, por lo que los desarrolladores tienen un mayor control de los entornos, dando a la infraestructura una vista más centrada en las aplicaciones. La integración de DevOps tiene como objetivo el lanzamiento de productos, las pruebas de software, la evolución y el mantenimiento (correcciones de errores y versiones menores) para aumentar la fiabilidad y la seguridad y acelerar los ciclos de desarrollo y lanzamiento. Muchas de las ideas que componen DevOps provienen de la gestión de sistemas empresariales y la metodología ágil. El término "DevOps" fue acuñado por Patrick Debois y popularizado a través de una serie de "DevOps Days" que comenzaron en 2009 en Bélgica. Desde entonces se han celebrado conferencias "DevOps Days" en India, Estados Unidos, Brasil, Australia, Alemania, Suecia y Suiza. Las metodologías de desarrollo (por ejemplo, la metodología ágil) que se implementan en las organizaciones tradicionales a través de distintas divisiones entre las operaciones de ti y el control de calidad, por un lado, y el desarrollo y la liberación, por el otro, carecen de una profunda integración interdepartamental. DevOps promueve un conjunto de procesos y métodos dirigidos a la comunicación y colaboración entre divisiones. La adopción de la metodología DevOps está impulsada por varios factores, tales como: la metodología DevOps a menudo se describe como una relación más colaborativa y productiva entre los grupos de desarrollo y operación. Esto aumenta la eficiencia y reduce el riesgo de cambios frecuentes en la producción. Para cuantificar este efecto, se están considerando algunos parámetros posibles. El papel de un profesional de DevOps es muy reminiscente de la figura del ingeniero jefe dentro del llamado "Toyota Production System" . Estas cifras son responsables del éxito del proyecto, pero sin ninguna autoridad formal sobre los diferentes grupos involucrados. Requieren conocimientos técnicos adecuados para convencer a los gerentes de cuáles son las necesidades y el apoyo de la administración empresarial puede ayudarlos. En cambio, en muchas organizaciones, el desarrollo de software y la gestión de sistemas se encuentran en diferentes divisiones, y debido a que el desarrollo generalmente está impulsado por las necesidades de los usuarios, para los cambios continuos y las versiones posteriores, los grupos de operaciones se centran en la disponibilidad y confiabilidad del servicio, así como en la gestión de costos. Esto produce una "brecha" entre el desarrollo y la gestión de servicios que ralentiza la transición a la producción. En muchas empresas, los lanzamientos de aplicaciones son eventos de alto impacto y riesgo, que involucran múltiples grupos de trabajo. Con la metodología DevOps, este riesgo se reduce por las siguientes razones: este es un papel relativamente nuevo en las empresas de TI, cuya tarea es coordinar las versiones en entornos de preproducción (prueba). La necesidad de tal figura es de: El papel del coordinador de la liberación (también conocido como el coordinador de la integración) es similar al de un controlador del vuelo para coordinar en tiempo real las actividades de diferentes grupos para lograr un objetivo (despegues y aterrizajes seguros) utilizando recursos compartidos (espacio, aire, senderos de vuelo, pistas y terminales). Esta coordinación no debe confundirse con la gestión de versiones, que se centra en la planificación de cambios en el software con miras a su aplicación directamente en la producción, mientras que el coordinador de versiones se ocupa de la labor sistemática y técnica inherente a la creación y publicación del software en los diversos entornos.