DevOps es un acrónimo de la lengua inglesa compuesto por los términos development (que se traduce como «desarrollo») y operations (referente a «operaciones»). El concepto refiere a las herramientas, las prácticas y los principios que posibilitan la integración y la automatización de los procesos llevados a cabos para el desarrollo de software.
Puede decirse que la metodología DevOps apunta a optimizar la colaboración entre los equipos dedicados a la programación y aquellos que ejecutan operaciones de tecnología de la información (TI). Así se logra incrementar la calidad de implementación y se reducen los tiempos.
La historia
La noción de DevOps surgió en 2008. Por aquella época comenzó a señalarse la falta de integración entre el desarrollo de software y las operaciones de TI. Hasta entonces, quienes se encargaban de la escritura del código no intervenían en la implementación y el mantenimiento del mismo.
Con dicho modelo de desarrollo de software, existían departamentos que actuaban con independencia y de manera aislada: por un lado los desarrolladores y por el otro lado, los responsables de las operaciones de TI. Poco a poco, diversos especialistas empezaron a promover un nuevo enfoque y así irrumpió la idea de DevOps.
Características de DevOps
La cultura DevOps se basa en la conformación de un equipo compuesto por expertos de operaciones de TI y programadores. Estos profesionales trabajan en conjunto y de forma coordinada durante la totalidad del ciclo de vida del producto: es decir, desde la etapa de desarrollo y la fase de pruebas hasta la instancia de implementación y las propias operaciones.
En este marco, el equipo de DevOps recurre a herramientas para la automatización de pruebas y favorecer la integración continua (CI) y la entrega continua (CD). La infraestructura como código (IaC) y la arquitectura de microservicios son otras prácticas de DevOps.
Este modo de trabajo permite mejorar la capacidad para brindar servicios y aplicaciones con rapidez y asegurando la calidad. De esta manera, la organización que trabaja con equipos de DevOps resulta más competitiva y atiende las necesidades de sus clientes con mayor eficiencia en comparación a las firmas que optan por el método tradicional de desarrollo de software.
Ciclo de vida
El ciclo de vida contemplado en la filosofía DevOps consta de ocho etapas. En todas ellas, que reúnen la totalidad de las capacidades, los procedimientos y los instrumentos que se necesitan para el desarrollo y las operaciones, los equipos cooperan entre sí y se comunican para una correcta coordinación.
- Descubrimiento: Consiste en las tareas de exploración y organización para llevar adelante el proyecto. Suele aplicarse la llamada metodología ágil (agile).
- Planificación: Partiendo de la metodología ágil, se divide el trabajo para optimizar la calidad y la velocidad.
- Compilación: Se gestionan y compilan las versiones, generalmente con alguna herramienta que automatiza estas tareas (como Git).
- Prueba: Puede usarse un repositorio compartido para el desarrollo de pruebas automáticas.
- Implementación: Se publican funciones periódicamente a través de la implementación automática.
- Operación: En este punto se concreta la prestación de los servicios al cliente, implementando, configurando y manteniendo la infraestructura de TI.
- Observación: Se procede a la identificación de eventuales incidencias para resolverlas con rapidez.
- Feedback continuo: Esta fase incluye la evaluación de informes y opiniones por parte de los equipos de DevOps para lograr mejoras en futuras versiones.
Ventajas de DevOps
El modelo DevOps aporta muchas ventajas a las compañías. Facilita avanzar rápidamente con las tareas, lo cual ayuda a responder con celeridad a los clientes y a adaptarse a los cambios que se producen en el mercado. De igual modo, ayuda a aumentar la frecuencia de nuevas versiones, una particularidad que propicia una resolución de errores más rápida y mayor innovación.
La posibilidad de operar a escala, la mayor fiabilidad gracias a las alternativas que brinda la entrega continua y la colaboración mejorada entre profesionales de operaciones y desarrolladores son otros beneficios de la filosofía DevOps.
La importancia de la seguridad
Para lograr un aprovechamiento de todo el potencial de la cultura DevOps, resulta imprescindible prestar atención a la seguridad a lo largo del ciclo de vida. Se conoce como DevSecOps al método que considera que la seguridad informática es una responsabilidad que comparten los equipos de desarrollo y operaciones de TI.
El concepto de DevSecOps supone analizar la seguridad de la infraestructura y las aplicaciones desde el inicio. Para que no se produzcan demoras en el flujo de trabajo, es posible apelar a la automatización de tareas de protección.
Se menciona como shift left y shift right a la visión que implica aplicar recursos de protección tanto en el área de desarrollo como en la puesta en marcha de las pruebas, las evaluaciones y el resto de las acciones que siguen a la producción.
DevSecOps, en definitiva, propone abordar la seguridad de manera integral, no solamente como un resguardo en torno de los datos y las aplicaciones. Con este enfoque, se evitan los ciclos extensos al verificarse las condiciones de seguridad de manera automática y constante.