una mirada holística

DEVOPS
¿Qué es?

DevOps surge de la necesidad de mejorar el proceso de gestión de las operaciones en los equipos de desarrollo de software. Está basado en un modelo iterativo, donde en cada ciclo tenemos las fases de construcción del producto junto con las de distribución y monitorización. De esta forma, al finalizar el ciclo, cada incremento de producto puesto a disposición de los usuarios está debidamente probado y monitorizado. 

Con DevOps hablamos, por tanto, de ganar velocidad rompiendo silos y aplicando una mirada holística al ciclo natural de creación de soluciones software con una mirada Customer Centric.

¿Por qué devops?

6

Aumento de la velocidad de respuesta al cambio

El feedback recogido se traslada rápidamente al producto, mejorando la experiencia del usuario. Para el 70% de las empresas, este es el principal beneficio de Agile*.

Llegada más rápida al cliente

Los equipos DevOps publican software con mayor velocidad, calidad y frecuencia. El 60% de las empresas que aplican Agile se benefician de una reducción del Time-to-Market*.

Aumento de la colaboración y confianza en la organización

El cambio cultural conlleva en los equipos una responsabilidad compartida, transparencia y feedback rápido.

Mejora de la gestión del trabajo

La automatización de procesos y la visibilidad del trabajo favorecen una mejor organización del trabajo.

El ciclo de devops

Cada ciclo de DevOps consta de 8 fases:

Planificación

Al igual que en otras metodologías ágiles, comenzamos elaborando un plan para alcanzar el objetivo marcado. Todas las personas involucradas trabajarán durante la iteración para lograr el objetivo. Deberá estar suficientemente claro para abordarlo sin dudas.

Desarrollo

En esta fase construimos el software y se definen las pruebas que deberá pasar para dar por buena la solución. En el lado de operaciones se construyen todos los automatismos necesarios para la distribución y mantenimiento del software. 

Construcción

Una vez construido la solución, es el momento de crear los nuevos artefactos que componen nuestro software incluyendo las nuevas funcionalidades. Este proceso es crítico, ya que un error en la fusión del software puede provocar que deje de funcionar. 

Pruebas

Aquí es el momento de ejecutar todas las pruebas que verifiquen el correcto funcionamiento de todas las características. En esta fase es importante contar con unas buenas pruebas para verificar que todas las funcionalidades que ya existían siguen operativas. En el caso en que alguna prueba no sea satisfactoria, habremos de realizar la corrección volviendo a la fase de desarrollo.

Release

Una vez nuestra aplicación ha pasado todas las pruebas, podemos crear una versión de nuestro software. Esta versión se marca para indicar que ha pasado todas las validaciones previas y se podría poner a disposición de los usuarios en un futuro.

Despliegue.

En DevOps el ciclo no acaba cuando tenemos una versión lista para los usuarios. Continuamos realizando la integración del nuevo software en cada uno de los entornos que necesitemos, hasta servirlo al cliente. Cada entorno tiene un propósito y en él se realizan un tipo de pruebas. Será en este momento cuando se verifiquen que las automatizaciones que se realizaron en la fase de desarrollo funcionan correctamente, permitiendo la instalación del nuevo software en los entornos. El último despliegue será en el entorno de producción, poniendo el software a disposición de los usuarios.

Operación

Nuestro sistema necesita de actualizaciones en función de su uso. Esta fase del personal de operaciones mide los recursos disponibles y los ajusta en función de las nuevas necesidades del software. Se elaboran nuevas métricas con las que vigilar el sistema.

Monitorización

Aquí estableceremos qué parámetros de nuestra aplicación vamos a vigilar. Toda la información recogida a lo largo de un periodo de tiempo nos permite realizar ajustes que se reflejarán en la siguiente fase de planificación.

¿QUÉ PODEMOS HACER POR TI?

En Enciende la Luz te ayudamos a implantar DevOps en tus equipos y hacerlo funcionar de forma excelente. ¿Qué significa tener DevOps funcionando de manera excelente?:

Al finalizar cada ciclo el equipo ha creado un incremento de producto, lo ha probado y lo ha puesto a disposición de los usuarios junto con un sistema de monitorización. 

Aumentamos la automatización de los procesos y disminuimos las intervenciones manuales para evitar un gran número de errores.

Analizamos el comportamiento del usuario con nuestro producto para detectar nuevas necesidades de negocio

El equipo completo se involucra para encontrar solución a los nuevos retos que se presentan, fomentando una cultura de aprendizaje y colaboración.

Sabiendo que puedes obtener estos resultados, ¿qué hemos hecho en otros clientes para conseguirlo?:

Asesorar sobre los perfiles adecuados para un excelente equipo con prácticas DevOps.

Diseñar un modelo operativo sencillo para que el equipo comience a incorporar las prácticas de forma incremental de manera sólida y sin fisuras, adaptado a la realidad de su empresa.

Acompañar al equipo durante algunas iteraciones para ajustar su modelo operativo y convertirles en una auténtica referencia de buena praxis.

Formar a los miembros del equipo en las áreas que sean necesarias.

Tanto si quieres montar equipos nuevos como si crees que tus equipos aún pueden dar más de sí y no sabéis cómo, ¡pregúntanos sin compromiso!

las prácticas de devops

Desde sus orígenes, se han ido incorporando multitud de prácticas, que podemos agrupar en tres grandes bloques junto con algunas prácticas recomendadas.

Flujo de trabajo

 El objetivo es disminuir el tiempo que requiere poner a disposición de los usuarios los cambios e incrementar la confiabilidad y calidad del servicio. Esto requiere acelerar el flujo entre Desarrolladores y Operaciones para entregar valor a los clientes rápidamente. Para lograr este objetivo tan grande, se divide en pequeños objetivos: para los desarrolladores puede ser crear métricas de trabajos finalizados; para operaciones serían métricas como la disponibilidad del sistema. Se trabajan dos aspectos fundamentales en el flujo: 

    • Visibilizar el trabajo: Esto lo conseguimos reduciendo el tamaño de las tareas y los intervalos de trabajo; además, aumentando la calidad, evitando que los errores lleguen a los clientes. 
    • Aumentar la velocidad en el flujo.

Algunas prácticas para el flujo de trabajo:

Continuous integration

Cuando un desarrollador acaba una nueva funcionalidad, debe añadirla al producto. Este proceso es crítico ya que un error puede suponer que el producto deje de funcionar. Este proceso necesita del equipo de operaciones para manejar la inclusión del nuevo código. Además, suele provocar que el acceso al código del producto esté bloqueado mientras dura la integración.

DevOps propone automatizar este proceso con el fin de añadir código de manera contínua sin afectar al resto.

Continuous testing

Cada funcionalidad debe ser probada varias veces para comprobar su correcto funcionamiento. Estas pruebas se propone realizarlas en diferentes momentos, para detectar riesgos antes de poner el producto a disposición del cliente.

Para evitar que los desarrolladores tengan que realizar esas pruebas, DevOps recomienda automatizar los diferentes test. Además se aconseja diseñar las funcionalidades pensando en las pruebas.

Continuous delivery

Con las prácticas anteriores, ya hemos automatizado la integración de cada nueva funcionalidad al producto y la verificación su funcionamiento. Si todo es correcto, se puede poner a disposición del cliente. Normalmente esto requiere que el personal de operaciones distribuya el nuevo software y realice los cambios necesarios en la infraestructura. Para ello, vuelve a sernos útil automatizar este proceso.

Esta práctica nos permite servir el producto de manera segura al usuario, minimizando la intervención de desarrolladores u operaciones.

Infrastructure as code

Durante mucho tiempo, la creación y mantenimiento de las máquinas sobre las que se ejecuta el software requerían de muchas tareas manuales. Cada máquina era configurada de forma única por el equipo de operaciones. Sin embargo, en DevOps proponen que la creación y mantenimiento se realice mediante código. La mayor ventaja es que una vez creado el código, podemos ejecutarlo en todas las máquinas que necesitemos con la misma configuración. Además, este código puede ser almacenado en el repositorio mediante prácticas de integración continua.

Los beneficios son una reducción de costes, un aumento de la velocidad de ejecución y una disminución de riesgos.

Feedback

Este principio busca la rapidez del feedback desde el cliente al negocio. El objetivo es lograr un sistema más seguro y flexible. Sin embargo, el desarrollo de software es un sistema complejo, donde un error puede tener muchas consecuencias dañinas para la empresa. Para ello necesitamos crear rápido, frecuentemente y con calidad, haciendo que la información fluya por la organización. Y ante cualquier problema, resolverlo cuando es pequeño y más fácil de abordar, evitando que se convierta en una catástrofe. Cada fallo y accidente se convierte en una oportunidad de aprender, evitando el castigo y la culpa.

Para este segundo principio recomendamos la práctica de monitorización y registro.

Monitorización y registro

Para conocer el estado del sistema necesitamos establecer métricas y conocer el comportamiento de los usuarios. Para lo primero elaboramos estadísticas a partir de los datos obtenidos de la infraestructura. Para lo segundo, en el código crearemos logs o trazas que nos permitan identificar las funcionalidades utilizadas por los usuarios. 

Esta práctica de DevOps nos permite crear un sistema para monitorizar el producto, con el que conoceremos su estado en cada momento.

Aprendizaje continuo

El tercer bloque pretende crear una cultura de aprendizaje continuo y experimentación. Cada conocimiento que un individuo adquiere, es conocimiento para su equipo y la organización. En el desarrollo de software se requiere promover el aprendizaje activo, ya que el software está en continua evolución. Este aprendizaje surge de los logros y los errores, identificando las ideas que funcionaron y las que no. Cada día hay que habilitar tiempo para aprender y obtener aprendizajes: qué le ocurre al sistema si lo estresamos con muchos datos, realizar simulaciones de comportamientos del usuario, pruebas de error en sistemas críticos, … Ante todo esto, el equipo tiene que estar preparado para adaptarse rápida y automáticamente a un entorno cambiante como es el software. 

En este último principio cobran importancia prácticas de Comunicación y Colaboración.

Comunicación y Colaboración

Uno de los objetivos de DevOps es fomentar la colaboración y la comunicación entre los diferentes equipos de una organización. Todas las personas de una organización trabajan juntas para lograr el mismo objetivo. Por lo que esta práctica pretende que se pongan a disposición de los equipos herramientas que favorezcan la colaboración y comunicación.

¡conócenos sin compromiso!

Hazlo antes que tus competidores. ¡Nosotros invitamos al café!

¡Síguenos en nuestras redes!

Icono ELL blanco transparente
Logo The Agile Program

Aceptarás nuestra política de cookies si continúas navegando.

ACEPTAR
Aviso de cookies