¿Qué es DevOps?

  Este término, como todo lo creado en informática, es un acrónimo de dos conceptos en inglés:
  • "Development": Desarrollo.
  • "Operations": Operaciones.
   Este acrónimo indica una práctica de ingeniería de software que tiene como objetivo unificar el desarrollo de software (Dev) y la operación del software (Ops). La principal característica de este movimiento es defender enérgicamente la automatización y el monitoreo en todos los pasos de la construcción del software, desde la integración, las pruebas, la liberación hasta la implementación y la administración de la infraestructura. DevOps apunta a ciclos de desarrollo más cortos, mayor frecuencia de implementación, lanzamientos más confiables, en estrecha alineación con los objetivos comerciales.

   Como DevOps pretende ser un modo de trabajo interfuncional, en lugar de una sola herramienta existen conjuntos ("toolchains", en inglés) de múltiples herramientas.​ Se espera que tales herramientas encajen en una o más de estas categorías, que reflejen los aspectos clave del proceso de desarrollo y entrega:
  •   Código: Desarrollo y revisión de código, herramientas de administración de código fuente, fusión de código.
  •   Construcción: Herramientas de integración continua, estado de compilación
  •   Prueba: Herramientas de prueba continuas que brindan retroalimentación sobre los riesgos comerciales.
  •  Paquete: Repositorio de artefactos, distribución previa a la implementación de la aplicación
  •   Lanzamiento: Gestión de cambios, aprobaciones de versiones, automatización de versiones.
  •   Configurar: Configuración y gestión de la infraestructura (entendida como código).
  •   Monitor: Monitorización del rendimiento de las aplicaciones, experiencia del usuario final.
  Los objetivos de DevOps, que abarcan todo el proceso de entrega, incluyen:
  •   Frecuencia de despliegue mejorada.
  •   Llegada al mercado más rápida.
  •   Baja tasa de errores de nuevas versiones.
  •   Tiempo de entrega más corto entre parches.
  •   Tiempo de recuperación más rápido (en caso de que una nueva versión falle).
  Mediante este enfoque, los procesos simples se vuelven cada vez más programables y dinámicos.​ DevOps tiene, pues, como objetivo maximizar la previsibilidad, eficiencia, seguridad y mantenimiento de los procesos operativos. Muy a menudo, la automatización apoya este objetivo.

  La integración de DevOps se enfoca en la entrega de productos, pruebas continuas, pruebas de calidad, desarrollo de características y versiones de mantenimiento para mejorar la confiabilidad y la seguridad y proporcionar ciclos de desarrollo e implementación más rápidos. Muchas de las ideas (y personas) involucradas en DevOps provienen de la administración de sistemas empresariales y los movimientos ágiles de desarrollo de software.
  Este tipo de enfoque permite a las empresas digitales brindar alta disponibilidad y estabilidad a sus aplicaciones; esto se debe a que todas las partes de las aplicaciones (base de datos, back-end, frontend, etc.) son independientes y, si una de ellas falla, no implica que toda la aplicación se caiga, en lugar de eso, las otras partes continuarán trabajando mientras se restaura el componente afectado.​ Los ingenios de DevOps requieren de microservicios para optimizar sus desarrollos, y dejar atrás arquitecturas monolíticas.
 Sin embargo, no se debe tomar DevOPs como una cultura en sí misma, sino como una metodología informática que requiere de un fuerte cambio cultural y organizativo para su implementación. Dicho cambio cultural debe realizarse hacia la colaboración, la comunicación, y, en último término, la completa integración entre las antiguas áreas de desarrollo y sistemas. Mas, es tan complicado de conseguir en algunas organizaciones, que son muchos los que lo identifican directamente con DevOps.
   Tampoco consiste en aumentar la responsabilidad de los desarrolladores, confundiéndolo con modelos que algunas empresas emergentes se ven abocadas a adoptar en sus inicios, en los que todos los miembros del equipo técnico tienen un amplio abanico de habilidades informáticas (de desarrollo, de sistemas, de modificación de rendimiento, de bases de datos, etc.).
  Por último, DevOPs no es una profesión per se, puesto que, estrictamente hablando, no existen ni perfiles DevOps ni ingenieros DevOps, sino ingenieros de sistemas que poseen capacidades específicas (programación de guiones, don de gentes, reingeniería de procesos, y experiencia con herramientas específicas) para integrarse en equipos que empleen esta metodología.
  Aguardo que la presente entrada haya sido interesante para el lector. De ser así, espero que este la comente y/o a comparta, por favor.

1 comentario:

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.