DevOps: la fuerza impulsora para acelerar su transformación digital

Publicado: 2018-12-11

"Prácticamente todo el mundo realiza una integración continua. La implementación continua es como el Santo Grial" - Theo Kim, director de ingeniería de DevOps, GoPro

La competencia en el mercado del software ha obligado a las organizaciones a asignar sus mejores recursos para desarrollar y entregar software de alta calidad a un ritmo acelerado. La clave para este nivel de agilidad es establecer una relación comunicativa y de gran colaboración entre Desarrollo y Operaciones de TI.

El cambio moderno

El término “DevOps” surgió por primera vez en 2008 con el objetivo de permitir que los desarrolladores de software y los profesionales de operaciones de TI trabajen juntos para crear aplicaciones de manera rápida y eficiente. Diez años después, DevOps ha sido parte integral del éxito de muchas organizaciones, incluidas grandes empresas como Amazon, Netflix y Fidelity Worldwide Investments, organizaciones con enormes bases de clientes que exigen accesibilidad y servicios superiores.

En la superficie, DevOps no parece ser una tecnología innovadora: permitir que los equipos trabajen juntos para ofrecer mejores y más rápidos parece un objetivo obvio.

cambio

El proceso de desarrollo ágil reduce los tiempos de desarrollo al aumentar la comunicación entre el equipo de desarrollo y las partes interesadas del negocio. Pero los proyectos de software no están completos cuando se escribe la última línea de código y se pasa el último caso de prueba. Las aplicaciones deben empaquetarse para su lanzamiento, implementarse en producción, monitorearse para detectar posibles problemas y mejorarse con nuevas funciones y correcciones de errores necesarias.

Cada una de estas tareas posteriores al desarrollo lleva tiempo, lo que retrasa la entrega de nuevas características y funcionalidades comerciales a los usuarios. DevOps aporta un enfoque ágil en la comunicación y la colaboración entre los desarrolladores y el equipo de operaciones, dando al proceso después del desarrollo la misma capacidad de respuesta.

Hoy en día, DevOps se considera el método más eficiente para el desarrollo de software. Con DevOps, las organizaciones de software pueden reducir la complejidad del desarrollo, detectar y resolver problemas más rápidamente y ofrecer continuamente software innovador de alta calidad. La integración continua (CI), la entrega continua (CDE) y la implementación continua (CD) son algunas de las prácticas que ayudan a las organizaciones a ser rápidas sin comprometer la calidad.

Integración continua

La Integración Continua (CI) es una práctica de desarrollo ampliamente establecida en la industria del desarrollo de software que tiene como objetivo integrar los productos de trabajo de los desarrolladores individuales en un repositorio central temprano y con frecuencia. Los miembros del equipo integran y fusionan su trabajo de desarrollo con frecuencia. CI asegura la detección temprana de errores de integración, lo que resulta en una mejor colaboración dentro de los equipos, lo que lleva a un producto de mejor calidad.

CI hace que el proceso de integración sea simple, fácilmente repetible y permite a las organizaciones disfrutar de ciclos de lanzamiento más cortos y frecuentes, mejorar la calidad del software y aumentar la productividad general.

integración

Sin embargo, hay ventajas y desventajas que deben tenerse en cuenta. El proceso de CI no ofrece garantías de calidad adicionales. Muchas organizaciones consideran que dicha integración es costosa y, por lo tanto, prefieren los procedimientos manuales para garantizar que el nuevo código no introduzca nuevos errores, incluso si eso significa comprometer el tiempo. Para reducir la fricción durante las tareas de integración, CI se basa en conjuntos de pruebas y ejecución de pruebas automatizadas. Sin embargo, es importante darse cuenta de que las pruebas automatizadas son bastante diferentes de las pruebas continuas.

Entrega continua

La Entrega Continua (CDE) es una extensión natural de la Integración Continua, retomando donde lo dejó CI. La entrega continua tiene como objetivo garantizar que una aplicación esté siempre lista para producción después de pasar con éxito las pruebas automatizadas y los controles de calidad. CDE asegura que el software esté libre de errores mediante el empleo de un conjunto de prácticas para, por ejemplo, CI e implementación de automatización, entregando así el software automáticamente a un entorno similar a la producción.

La entrega continua depende de una canalización de implementación que utiliza el equipo para automatizar los procesos de prueba e implementación. La canalización en sí es un sistema automatizado que ejecuta un conjunto progresivo de conjuntos de pruebas contra la compilación. En cada segmento de la tubería, la compilación puede fallar en una prueba crítica, alertando así al equipo. De lo contrario, continúa con el siguiente conjunto de pruebas, y las sucesivas pasadas de prueba darán como resultado una promoción automática al siguiente segmento en la tubería. El último segmento de la tubería implementará la compilación en un entorno de producción equivalente.

proceso devops

Uno de los mejores ejemplos de una canalización de CI / CDE moderna está disponible en AWS. Amazon ofrece un impresionante entorno de canalización de CI / CDE y proporciona un procedimiento de recorrido en el que puede elegir entre muchos recursos de desarrollo y vincularlos en una canalización que se puede configurar y monitorear fácilmente.

Despliegue continuo

Si bien muchos confunden Continuous Deployment (CD) con lo mismo que Continuous Delivery, este proceso se distingue por ir un paso más allá al implementar de forma automática y continua la aplicación en producción. Con el objetivo de implementar de forma automática y constante cada cambio en el entorno de producción, la práctica de Implementación continua implica la práctica de Entrega continua, pero lo contrario no es cierto.

Si bien la implementación final en Continuous Delivery es un paso manual, es importante tener en cuenta que no hay pasos manuales en Continuous Deployment. Tan pronto como los desarrolladores comprometen un cambio, el cambio se implementa en producción a través de una canalización de implementación. Además, la práctica de Entrega continua se puede aplicar a todo tipo de organizaciones, mientras que la práctica de Implementación continua solo puede ser adecuada para ciertos tipos de organización.

despliegue continuo

Las organizaciones que emplean una metodología de CD se beneficiarán de los comentarios rápidos de los usuarios sobre sus nuevas implementaciones. Las funciones se entregan a los usuarios rápidamente y cualquier error o defecto que se haga evidente se puede manejar de inmediato.

Con el tremendo crecimiento en la adopción de DevOps, también ha habido un aumento significativo en las herramientas de automatización que ayudan con la implementación de canalizaciones de CI / CD. Estas herramientas se integran con varias herramientas para desarrolladores, incluidos los sistemas de depósito de código como Github y los sistemas de seguimiento de errores como Jira. Además, dado que SaaS se ha convertido en un modelo de entrega popular, la mayoría de estas herramientas se ejecutan en la nube. Algunas de las herramientas más populares son GitLab CI, TeamCity, Bamboo, GoCD, Jenkins y Circle CI.

información de devops