DevOps Conceptos Básicos

DevOps Introducción, Principios, Roles y Ciclo de vida

¿Qué es DevOps?

El término "DevOps" generalmente se refiere a un movimiento profesional que aboga por una relación de trabajo colaborativo entre el Desarrollo y las Operaciones de TI, lo que resulta en un rápido flujo de trabajo planificado (es decir, altas tasas de despliegue), al tiempo que aumenta la confiabilidad, la estabilidad, la resistencia y seguridad del entorno de producción.


Diferencia con Agile


Uno de los principios del proceso de desarrollo de Agile es proporcionar software de trabajo en incrementos más pequeños y más frecuentes, en oposición al enfoque de "big bang" del método de cascada.

Esto es más evidente en el objetivo Agile de tener características potencialmente vendibles al final de cada sprint. Donde, como DevOps, se extiende y completa el proceso de integración y lanzamiento continuo asegurando que el código esté listo para la producción y proporcionando valor al cliente.

Aunque muchas personas ven DevOps como una reacción a ITIL (IT Infrastructure Library) o ITSM (IT Service Management).

DevOps informa cuál -ITIL e ITSM son las mejores metodologías de los procesos de negocio que sustentan las operaciones de TI y describen muchas de las capacidades necesarias para que las operaciones de TI admitan un flujo de trabajo al estilo de DevOps.


El objetivo de DevOps no es solo aumentar la tasa de cambio, sino desplegar funciones exitosamente en la producción sin causar caos e interrumpir otros servicios, a la vez que detecta y corrige incidentes rápidamente cuando ocurren.

Esto incluye las disciplinas de ITIL sobre diseño de servicios, incidentes y gestión de problemas.

¿Por qué se necesita DevOps?

Antes de DevOps, el equipo de desarrollo y operación trabajaba en completo aislamiento. Las pruebas y la implementación fueron actividades aisladas realizadas después de la creación del diseño. Por lo tanto, consumieron más tiempo que los ciclos reales de construcción.


Sin usar DevOps, los miembros del equipo dedican una gran parte de su tiempo a probar, desplegar y diseñar en lugar de construir el proyecto.


La implementación manual del código provoca errores humanos en la producción.

Los equipos de codificación y operación tienen sus cronogramas separados y no están sincronizados, causando más retrasos.

¿Por qué se usa DevOps?

DevOps permite a los equipos de desarrollo ágiles implementar la integración continua y la entrega continua. Esto les ayuda a lanzar productos más rápidamente en el mercado.

Otras razones importantes son:

Es Predecible: DevOps ofrece una tasa de fallas significativamente menor de las nuevas versiones.

  1. Reproducibilidad: Permite que la versión anterior pueda restaurarse en cualquier momento.
  2. Mantenimiento: Proceso de recuperación sin esfuerzo en caso de que una nueva versión falle o deshabilite el sistema actual.
  3. Tiempo de comercialización: DevOps reduce el tiempo de comercialización hasta un 50% mediante la entrega de software simplificada. Este es particularmente el caso de las aplicaciones digitales y móviles.
  4. Mayor calidad: DevOps ayuda al equipo a mejorar la calidad del desarrollo de aplicaciones ya que incorpora problemas de infraestructura.
  5. Riesgo reducido: DevOps incorpora aspectos de seguridad en el ciclo de vida de la entrega del software. Ayuda en la reducción de defectos en todo el ciclo de vida.
  6. Resistente: el estado operativo del sistema de software es más estable, seguro y los cambios son consultables.
  7. Eficiencia de costes: DevOps ofrece rentabilidad en el proceso de desarrollo de software, que siempre es una aspiración de la gestión de las empresas de TI.
  8. Rompe una base de código más grande en pequeños trozos: DevOps se basa en el método de programación ágil. Por lo tanto, permite dividir las bases de códigos más grandes en trozos más pequeños y manejables.

¿Cuándo no adoptar DevOps?

No debe usarse en una aplicación de misión crítica como bancos, energía y otros sitios de datos confidenciales.

Dichas aplicaciones necesitan estrictos controles de acceso en el entorno de producción, una política detallada de gestión de cambios, política de control de acceso a los centros de datos.

Principios de DevOps

Aquí, hay seis principios que son esenciales al adoptar DevOps:

  1. Acción centrada en el cliente: el equipo de DevOps debe tomar medidas centradas en el cliente para que constantemente inviertan en productos y servicios.
  2. Responsabilidad de extremo a extremo: el equipo de DevOps debe proporcionar soporte de rendimiento hasta que se ocurra el fin de vida. Esto mejora el nivel de responsabilidad y la calidad de los productos diseñados.
  3. Mejora Continua: la cultura DevOps se centra en la mejora continua para minimizar el desperdicio. Continuamente acelera la mejora del producto o los servicios ofrecidos.
  4. Automatiza todo: la automatización es un principio vital del proceso DevOps. Esto no es solo para el desarrollo de software, sino también para todo el panorama de la infraestructura.
  5. Trabajar como un solo equipo: en el rol de DevOps, el del diseñador, desarrollador y evaluador ya están definidos. Todo lo que tenían que hacer es trabajar como un equipo con total colaboración.
  6. Monitorea y pruebe todo: es muy importante que el equipo de DevOps tenga un sólido monitoreo y procedimientos de prueba.

El enfoque de DevOps necesita cambios frecuentes e incrementales en las versiones de código, lo que significa frecuentes despliegues y pruebas.

Aunque los ingenieros de DevOps necesitan codificar de vez en cuando desde cero, es importante que tengan las bases de los lenguajes de desarrollo de software.

Un ingeniero de DevOps trabajará con el personal del equipo de desarrollo para abordar la codificación y secuencias de comandos necesarias para conectar elementos de código, como bibliotecas o kits de desarrollo de software.

Roles, responsabilidades y habilidades de un ingeniero DevOps

Los ingenieros de DevOps trabajan a tiempo completo. Ellos son responsables de la producción y el mantenimiento continuo de la plataforma de una aplicación de software.

Los siguientes son algunos de los roles, responsabilidades y habilidades que se esperan del ingeniero DevOps:

  • Capaz de realizar la solución de problemas del sistema y la solución de problemas en los dominios de plataforma y aplicaciones.
  • Gestione el proyecto de manera efectiva a través de plataformas abiertas y basadas en estándares.
  • Aumentar la visibilidad del proyecto, la trazabilidad.
  • Mejore la calidad y reduzca los costos de desarrollo con la colaboración.
  • Analizar, diseñar y evaluar scripts y sistemas de automatización.
  • Garantizar la resolución crítica de los problemas del sistema mediante el uso de los mejores servicios de soluciones de seguridad en la nube.

El ingeniero de DevOps debe tener la habilidad suave de resolver problemas y aprender rápidamente.

Ciclo de vida DevOps

DevOps es una profunda integración entre desarrollo y operaciones. Comprender DevOps no es posible sin conocer el ciclo de vida de DevOps.

Aquí hay una breve información sobre el ciclo de vida de DevOps continuo:

1. Desarrollo

En esta etapa DevOps, el desarrollo del software se lleva a cabo constantemente. En esta fase, todo el proceso de desarrollo se divide en pequeños ciclos de desarrollo. Esto beneficia al equipo DevOps para acelerar el desarrollo de software y el proceso de entrega.

2. Prueba

El equipo de QA usa herramientas como Selenium para identificar y corregir errores en la nueva pieza de código.

3. Integración

En esta etapa, la nueva funcionalidad se integra con el código vigente y las pruebas se llevan a cabo. El desarrollo continuo solo es posible debido a la integración y pruebas continuas.

4. Despliegue

En esta fase, el proceso de implementación se lleva a cabo de manera continua. Se realiza de tal manera que cualquier cambio realizado en cualquier momento en el código, no debe afectar el funcionamiento del sitio web de alto tráfico.

5. Monitoreo

En esta fase, el equipo de operación se encargará del comportamiento inadecuado del sistema o errores que se encuentran en la producción.

Flujo de trabajo de DevOps

Los flujos de trabajo proporcionan una visión general de la secuencia en la que se proporciona la entrada. También le informa sobre las acciones que se realizan y el resultado se genera para un proceso de operaciones.

El flujo de trabajo permite separar y organizar los trabajos que son solicitados por los usuarios. También brinda la posibilidad de reflejar su proceso ideal en los trabajos de configuración.