Compartir a través de


¿Qué es DevOps?

DevOps combina el desarrollo (Dev) y las operaciones (Ops) para unir personas, procesos y tecnología en el planeamiento, desarrollo, entrega y operaciones de aplicaciones. DevOps permite la coordinación y la colaboración entre roles previamente siloados, como el desarrollo, las operaciones de TI, la ingeniería de calidad y la seguridad.

Los equipos adoptan la cultura, las prácticas y las herramientas de DevOps para aumentar la confianza en las aplicaciones que crean, responder mejor a las necesidades de los clientes y lograr objetivos empresariales más rápido. DevOps ayuda a los equipos a proporcionar valor continuamente a los clientes mediante la producción de productos mejores y más confiables.

DevOps y el ciclo de vida de la aplicación

DevOps influye en el ciclo de vida de la aplicación a lo largo de su planeamiento, desarrollo, entrega y fases de operaciones . Cada fase se basa en las demás fases y las fases no son específicas del rol. Una cultura DevOps involucra todos los roles en cada fase hasta cierto punto.

En el diagrama siguiente se muestran las fases del estilo de vida de la aplicación DevOps:

Diagrama conceptual que muestra el ciclo de vida de la aplicación de DevOps.

Objetivos y ventajas de DevOps

Cuando un equipo adopta la cultura, las prácticas y las herramientas de DevOps, pueden lograr cosas increíbles:

Acelerar el tiempo de comercialización

Gracias a una mayor eficiencia, la colaboración en equipo mejorada, las herramientas de automatización y los equipos de implementación continua pueden reducir rápidamente el tiempo desde el inicio del producto hasta el lanzamiento del mercado.

Adaptarse al mercado y a la competencia

Una cultura de DevOps exige a los equipos un enfoque primero en el cliente. Al casarse con agilidad, colaboración en equipo y centrarse en la experiencia del cliente, los equipos pueden ofrecer continuamente valor a sus clientes y aumentar su competitividad en Marketplace.

Mantenimiento de la estabilidad y confiabilidad del sistema

Al adoptar prácticas de mejora continua, los equipos pueden crear una mayor estabilidad y confiabilidad de los productos y servicios que implementan. Estas prácticas ayudan a reducir los errores y el riesgo.

Mejora del tiempo medio de recuperación

El tiempo medio para la métrica de recuperación indica cuánto tiempo se tarda en recuperarse de un error o una infracción. Para administrar errores de software, infracciones de seguridad y planes de mejora continua, los equipos deben medir y trabajar para mejorar esta métrica.

Adoptar una cultura DevOps

Para implementar completamente DevOps, debe adoptar una cultura DevOps. El desarrollo de una cultura de DevOps requiere cambios profundos en la forma en que las personas trabajan y colaboran. Cuando las organizaciones se comprometen con una cultura DevOps, crean un entorno para que los equipos de alto rendimiento se desarrollen. Al adoptar prácticas de DevOps automatiza y optimiza los procesos a través de la tecnología, sin necesidad de cambiar a una cultura de DevOps dentro de la organización y sus personas, no obtendrá las ventajas completas de DevOps.

En la imagen siguiente se capturan aspectos clave de la cultura de sitio en vivo de Microsoft.

Diagrama de la referencia cultural del sitio activo de Microsoft.

Los procedimientos siguientes son componentes clave de una referencia cultural de DevOps:

  • Colaboración, visibilidad y alineación: un distintivo de una cultura de DevOps saludable es la colaboración entre equipos. La colaboración comienza con visibilidad. El desarrollo, TI y otros equipos deben compartir sus procesos, prioridades y preocupaciones de DevOps unos con otros. Al planear su trabajo juntos, están mejor colocados para alinearse con los objetivos y las medidas de éxito a medida que se relacionan con la empresa.
  • Cambios en el ámbito y la responsabilidad: a medida que los equipos se alinean, toman posesión y participan en otras fases del ciclo de vida, no solo las que son fundamentales para sus roles. Por ejemplo, los desarrolladores se vuelven responsables no solo de la innovación y la calidad establecidas en la fase de desarrollo, sino también del rendimiento y la estabilidad que aportan sus cambios en la fase de funcionamiento. Al mismo tiempo, los operadores de TI están seguros de incluir gobernanza, seguridad y cumplimiento en la fase de planeamiento y desarrollo.
  • Ciclos de versión más cortos: los equipos de DevOps siguen siendo ágiles liberando software en ciclos cortos. Los ciclos de versión más cortos facilitan la planificación y la administración de riesgos, ya que el progreso es incremental, lo que también reduce el impacto en la estabilidad del sistema. Acortar el ciclo de lanzamiento también permite a las organizaciones adaptarse y reaccionar ante las necesidades de los clientes en constante evolución y la presión competitiva.
  • Aprendizaje continuo: los equipos de DevOps de alto rendimiento establecen una mentalidad de crecimiento. Fallan rápidamente e incorporan las lecciones aprendidas en sus procesos. Se esfuerzan por mejorar continuamente, aumentar la satisfacción del cliente y acelerar la innovación y la capacidad de adaptación del mercado.

Implementación de procedimientos de DevOps

Implemente DevOps siguiendo los procedimientos de DevOps (descritos en las secciones siguientes) durante el ciclo de vida de la aplicación. Algunas de estas prácticas ayudan a acelerar, automatizar y mejorar una fase específica. Otros abarcan varias fases, lo que ayuda a los equipos a crear procesos sin problemas que ayudan a mejorar la productividad.

Integración continua y entrega continua (CI/CD)

La integración continua (CI) es la práctica que usan los equipos de desarrollo para automatizar, combinar y probar código. CI ayuda a detectar errores al principio del ciclo de desarrollo, lo que hace que sean menos costosos de corregir. Las pruebas automatizadas se ejecutan como parte del proceso de CI para garantizar la calidad. Los sistemas de CI generan artefactos y los suministran a procesos de liberación para impulsar implementaciones frecuentes.

La entrega continua (CD) es un proceso por el que el código se compila, prueba e implementa en uno o varios entornos de prueba y producción. La implementación y las pruebas en varios entornos aumenta la calidad. Los sistemas de CD generan artefactos implementables, incluida la infraestructura y las aplicaciones. Los procesos de versión automatizados consumen estos artefactos para publicar nuevas versiones y correcciones en los sistemas existentes. Los sistemas que supervisan y envían alertas se ejecutan continuamente para mejorar la visibilidad de todo el proceso de CD.

Control de versiones

El control de versiones es la práctica de administrar código en versiones: realizar un seguimiento de las revisiones y el historial de cambios para facilitar la revisión y recuperación del código. Normalmente, esta práctica se implementa mediante sistemas de control de versiones como Git, que permiten a varios desarrolladores colaborar en el código de creación. Estos sistemas proporcionan un proceso claro para combinar los cambios de código que se producen en los mismos archivos, controlar conflictos y revertir los cambios a estados anteriores.

El uso del control de versiones es una práctica fundamental de DevOps, lo que ayuda a los equipos de desarrollo a trabajar juntos, dividir las tareas de codificación entre miembros del equipo y almacenar todo el código para una recuperación sencilla si es necesario. El control de versiones también es un elemento necesario en otras prácticas, como la integración continua y la infraestructura como código.

Desarrollo de software ágil

Agile es un enfoque de desarrollo de software que enfatiza la colaboración en equipo, los comentarios de los clientes y los usuarios, y la alta capacidad de adaptación para cambiar a través de ciclos de versión breves. Los equipos que practican Agile proporcionan cambios y mejoras continuos a los clientes, recopilan sus comentarios y luego aprenden y se ajustan en función de las necesidades y los deseos del cliente. Agile es sustancialmente diferente de otros marcos más tradicionales, como la cascada, que incluye ciclos de versión largos definidos por fases secuenciales. Kanban y Scrum son dos marcos populares asociados a Agile.

Infraestructura como código

La infraestructura como código define los recursos del sistema y las topologías de una manera descriptiva que permite a los equipos administrar esos recursos como lo harían. Esas definiciones también se pueden almacenar y versionar en sistemas de control de versiones, donde se pueden revisar y revertir, de nuevo, como código.

La práctica de la infraestructura como código ayuda a los equipos a implementar recursos del sistema de forma confiable, repetible y controlada. La infraestructura como código también ayuda a automatizar la implementación y reduce el riesgo de error humano, especialmente para entornos grandes complejos. Esta solución repetible y confiable para la implementación del entorno permite a los equipos mantener entornos de desarrollo y pruebas idénticos a la producción. La duplicación de entornos a diferentes centros de datos y plataformas en la nube también se vuelve más sencillo y eficaz.

Administración de configuración

La administración de configuración hace referencia a la administración del estado de los recursos en un sistema, incluidos los servidores, las máquinas virtuales y las bases de datos. Con las herramientas de administración de configuración, los equipos pueden implementar cambios de forma controlada y sistemática, lo que reduce los riesgos de modificar la configuración del sistema. Teams usa herramientas de administración de configuración para realizar un seguimiento del estado del sistema y ayudar a evitar el desfase de configuración, que es la manera en que la configuración de un recurso del sistema se desvía con el tiempo del estado deseado definido para él.

Junto con la infraestructura como código, es fácil crear plantillas y automatizar la definición y configuración del sistema, lo que ayuda a los equipos a gestionar entornos complejos a gran escala.

Supervisión continua

La supervisión continua significa tener visibilidad completa y en tiempo real del rendimiento y el estado de toda la pila de aplicaciones. Esta visibilidad va desde la infraestructura subyacente que ejecuta la aplicación hasta componentes de software de nivel superior. La visibilidad se logra a través de la recopilación de telemetría y metadatos y la configuración de alertas para condiciones predefinidas que garantizan atención de un operador. La telemetría consta de datos de eventos y registros recopilados de varias partes del sistema, que se almacenan donde se pueden analizar y consultar.

Los equipos de DevOps de alto rendimiento garantizan que establecen alertas útiles y significativas y recopilan telemetría enriquecida para que puedan obtener información de grandes cantidades de datos. Estas conclusiones ayudan al equipo a mitigar los problemas en tiempo real y a ver cómo mejorar la aplicación en ciclos de desarrollo futuros.

Planning

En la fase de planeación, los equipos de DevOps idean, definen y describen las características y funcionalidades de las aplicaciones y los sistemas que planean compilar. Los equipos realizan un seguimiento del progreso de la tarea en niveles bajos y altos de granularidad, desde productos únicos hasta varias carteras de productos. Teams usa las siguientes prácticas de DevOps para planear con agilidad y visibilidad:

Para obtener información general sobre las diversas lecciones aprendidas y prácticas que Microsoft adoptó para apoyar la planificación de DevOps en los equipos de software de la empresa, consulte Cómo Microsoft planifica con DevOps.

Desarrollo

La fase de desarrollo incluye todos los aspectos del desarrollo de código de software. En esta fase, los equipos de DevOps realizan las tareas siguientes:

Para innovar rápidamente sin sacrificar la calidad, la estabilidad y la productividad, los equipos de DevOps:

Para obtener información general sobre las prácticas de desarrollo adoptadas por Microsoft para admitir su cambio a DevOps, consulte Cómo microsoft desarrolla con DevOps.

Entregar

La entrega es el proceso de implementación coherente y confiable de aplicaciones en entornos de producción, idealmente a través de la entrega continua (CD).

En la fase de entrega, los equipos de DevOps:

  • Defina un proceso de administración de versiones con fases de aprobación manuales claras.
  • Establezca puertas automatizadas para mover aplicaciones entre fases hasta la versión final a los clientes.
  • Automatice los procesos de entrega para que sean escalables, repetibles, controlados y probados correctamente.

La entrega también incluye la implementación y configuración de la infraestructura básica del entorno de entrega. Los equipos de DevOps usan tecnologías como infraestructura como código (IaC),contenedores y microservicios para ofrecer entornos de infraestructura totalmente regulados.

Los procedimientos de implementación seguros pueden identificar problemas antes de que afecten a la experiencia del cliente. Estas prácticas ayudan a los equipos de DevOps a ofrecer con frecuencia facilidad, confianza y tranquilidad.

Los principales principios y procesos de DevOps que Microsoft ha evolucionado para proporcionar sistemas de entrega eficientes se describen en Cómo Microsoft entrega software con DevOps.

Operations

La fase de operaciones implica mantener, supervisar y solucionar problemas de aplicaciones en entornos de producción, incluidas nubes híbridas o públicas como Azure. Los equipos de DevOps tienen como objetivo la confiabilidad del sistema, la alta disponibilidad, la seguridad sólida y el tiempo de inactividad cero.

Las prácticas automatizadas de implementación y entrega segura ayudan a los equipos a identificar y mitigar los problemas rápidamente cuando se producen. Mantener la vigilancia requiere telemetría enriquecida, alertas accionables y visibilidad completa de las aplicaciones y los sistemas subyacentes.

Las prácticas que Microsoft usa para operar plataformas en línea complejas se describen en Funcionamiento de sistemas confiables con DevOps.

Pasos siguientes

Otros recursos

Formación y certificaciones