header_conceptos
Conceptos > DevOps: la cultura ágil para la entrega de Software  

DevOps: la cultura ágil para la entrega de software

DevOps es una tecnología de la que muchas personas están hablando que permite mejorar la velocidad en el despliegue en ambiente de producción y crea una cultura de colaboración entre todos los participantes de cada proyecto.

04_pp

Hace unos años, las empresas de tecnología solían demorarse meses o inclusos años en salir a producción lo que hacía que se perdieran oportunidades en el mercado, afectaba la medición del ROI y la toma de decisiones se tardaba más al no tener un análisis rápido sobre el despliegue de un producto.

Sin embargo, la implementación de las metodologías ágiles, ha implicado que dichos lanzamientos se realicen en horas, días o semanas y que se creen nuevas estrategias y herramientas para que haya agilidad en la entrega de valor para los clientes.

Uno de esos conceptos es DevOps que busca busca entregar productos finales completamente funcionales y de alta calidad, de forma más rápida y rentable. Este término fue introducido por primera vez en la conferencia Agile 2008 en Toronto, en la charla sobre "Infraestructura Ágil" de Yhens Wasna y Patrick Debois,

A partir de entonces DevOps se popularizó en el mundo de la tecnología y logró unir a los desarrolladores y operadores que antes trabajaban de manera independiente. Además, DevOps ha logrado ser aplicado en otras industrias como sectores financieros, retail, educación, telecomunicaciones y energético.

¿Qué es DevOps?

01_pp

DevOps es un conjunto de prácticas y conceptos que propone un cambio cultural en las organizaciones, promoviendo la comunicación e integración entre equipos de desarrollo y operaciones.

Tiene como objetivo mejorar los tiempos de entrega de nuevas versiones de software de manera ágil asegurando el mayor tiempo en línea y calidad del software, basándose en la automatización de tareas, las pruebas de calidad y una adecuada administración de la infraestructura.

Si quieres conocer por qué es tendencia, te invitamos a ver este webinar:

 

 

DevOps y agilismo

Hay 3 razones para implementar DevOps en una empresa que busca ser ágil

1. Automatización de Tareas

Durante el ciclo de vida del desarrollo de un producto hay tareas que pueden ser ejecutadas de manera automática, por ejemplo, el despliegue en los ambientes de QA y producción o la fase de pruebas de los desarrollos realizados.

Si estas pruebas fallan, el despliegue se detiene, o por el contrario se procede a desplegar. De esta manera se logran optimizar los tiempos de automatización.


2. Entrega Continua

La entrega continua se refiere a que una iteración de entrega de una nueva funcionalidad se cumpla de forma segura en un corto periodo de tiempo. Para este proceso dicha entrega se apoya en el concepto de Pipeline que permite llevar un control de cada paso o etapa que debe ser completada para que una funcionalidad o bug sea pasado a producción.


3. Configuración de Infraestructura

La adopción de infraestructura en la nube o a través de código, adquirir, configurar y potencializar máquinas deja de ser un cuello de botella para el desarrollo de un producto.

 

Beneficios de DevOps

DevOps, trae muchos beneficios para la entrega de software más seguro y rápido:

1. Incremento de la velocidad de entregas y despliegues en un ambiente de producción.

2. Disminución de errores en el ciclo de desarrollo a través de la automatización.

3. Mejorar el control del ciclo de desarrollo de un producto.

4. Mejorar la confiabilidad del producto entregado.

5. Mejorar la comunicación de las diferentes áreas que están involucradas en la construcción y entrega del producto.

6. Escalabilidad de las aplicaciones y recursos.

Modelo de implementación

DevOps1-1

 

Tips para comenzar a trabajar con DevOps

Para comenzar a implementar esta herramienta en una organización que desea ser ágil, se deben tener en cuenta estos 4 Tips para comenzar a trabajar con DevOps:

1. Definición de mejora en el proceso

Se debe hacer una reflexión sobre cuáles son los puntos del ciclo de desarrollo de productos que se realizan en la organización y de esta manera se definan en qué momentos se tienen cuellos de botella o se han encontrado errores que no permiten avanzar en el proyecto.

2. Descripción de los problemas a solucionar

Cada empresa deberá definir cuál es el punto en el que desea hacer énfasis y mejorar. Esta muy ligada a los beneficios propios de implementar esta herramienta. 

Es importante que las empresas no solo adopten la última tecnología, sino también de cambien la cultura organizacional, por ello te invitamos a escuchar el siguiente podcast:

3. Plan de implementación de DevOps

En este punto se debe definir:

  • Qué se espera mejorar al finalizar esta implementación.
  • Qué conocimientos se necesitan para implementar estos cambios.
  • Qué tecnologías podemos usar para mejorar el proceso.
  • Cómo podemos verificar que logramos el objetivo.

En este punto se recomienda el uso de tableros Kanban. Además te invitamos a conocer más sobre esta metodología de trabajo: 

 

 

 

4. Definición de herramientas

grafica_devops_con_herramientas

Actualmente se cuentan con múltiples herramientas que facilitan la implementación de DevOps en cualquiera de los ciclos de desarrollo, por lo que se debe definir cuál es la mejor para cada proyecto. 

Tecnologías de código abierto para implementar DevOps

Un elemento fundamental del modelo DevOps es la Integración Continua, mediante la cual los desarrolladores agrupan las nuevas funcionalidades en un repositorio central de forma periódica, seguidamente se ejecuta una serie de tareas automatizadas que conllevan a acelerar notablemente el proceso de despliegue.

Para lograr esta integración continua se deben cubrir algunos aspectos fundamentales:

Repositorio de código:

Es necesario contar con un sistema de versionamiento que nos permita centralizar y gestionar los diversos cambios sobre el producto de software.

Orquestador de tareas - Servidores de integración

Se hace necesario contar con una herramienta que tenga la capacidad de dirigir de forma ordenada la secuencia de tareas necesarias para completar el proceso de despliegue de forma correcta.

Repositorio de artefactos

Se requiere de una herramienta que almacene y brinde un acceso rápido y seguro a todos los recursos, de tal manera que se agilicen los despliegues.

Análisis de código

Se requiere de una herramienta que nos permita garantizar que el código cumpla con ciertos estándares mínimos de calidad.

Para profundizar más te invitamos a leer: Tecnologías de código abierto para implementar DevOps


Herramientas para la integración y entrega continua con DevOps

03_pp

La integración continua se implementa dentro de los proyectos de software para unificar la parte de los desarrolladores con la infraestructura generada por el área de operaciones, lo cual ayuda a mejorar en tiempo de entrega del producto desarrollado.

Existen varias herramientas en el mercado que nos pueden ayudar a implementar la integración y despliegue continuo:

  • Jenkins
  • Travis CI
  • AWS
  • Azure DevOps
  • GitLab
Jenkins Travis AWS Azure Pipelines Gitlab CI
1-2 2-5 3-1 4-1 5
Configuración de Pipeline por medio de Jenkinsfile Configuración de Pipeline por medio de archivos yml Configuración de Pipeline por medio de archivo yml o por medio de la interfaz gráfica (GUI) Configuración de Pipeline por archivo YAML o por editor clásico (GUI) Configuración de pipeline por archivo yml
Múltiples ejecuciones de pipelines al tiempo Versión Open Source hasta 5 pipelines al tiempo Una sola ejecución de un pipeline al tiempo Una sola ejecución de un pipeline al tiempo Múltiples ejecuciones de pipelines al tiempo
Compatible con múltiples sistemas de control de versiones Compatible más que todo con GitHub y BitBucket Compatible con GitHub, GitHub Enterprise, BitBucket pero prioriza AWS CodeCommi Compatible con diferentes sistemas de control de versiones, pero prioriza a Azure Repos Tiene su propio sistema de control de versiones
Es open source, por tanto en completamente gratuita. Proporciona capa gratuita con limitaciones, superadas estas se incurre en gastos Proporciona capa gratuita con limitaciones, superadas estas se incurre en gastos Proporciona capa gratuita con limitaciones, superadas estas se incurre en gastos Proporciona capa gratuita con limitaciones, superadas estas se incurre en gastos

 


Si quieres profundizar en la descripción de estas herramientas te invitamos a leer: 5 herramientas para la integración y entrega continua con DevOps

Como vemos existen muchas herramientas para trabajar con DevOps, y Amazon Web services,  el más grande proveedor de nube de la actualidad no podía quedarse atrás, para ello ofrece un conjunto de servicios que pueden cumplir todas las necesidades en cuanto al ciclo de vida de un desarrollo de software se refiere. Por eso te invitamos a leer: Cómo trabajar DevOps con AWS

Además, si deseas ver un ejemplo práctico del uso de estas herramientas te recomiendo este webinar, donde te enseñamos cómo usar Azure Pipelines y Azure Repos para salir a producción en PlayStore.

 

 

Nueva llamada a la acción