Desarrollo

El ciclo de vida del DevOps5 min read

29 junio, 2019 4 min read
Carla Alvarenga

author:

El ciclo de vida del DevOps5 min read



En el mundo del Desarrollo de Software existen muchísimas terminologías que han sido adoptadas del inglés. Esto no es una simple coincidencia. La mayoría de conceptos del entorno tecnológico suelen estar inspirados en este idioma que se utiliza a nivel global. Más que hablar de su origen, DevOps, es uno de los términos más mencionados en el entorno de tecnología informática (IT) y merece ser analizado.

Reading Time: 4 minutes

Antes de explicar el ciclo de vida del DevOs, nos detendremos a analizar un poco la importancia de esta práctica, sus beneficios y más datos interesantes. Continúa leyendo nuestro blog para conocer sobre ello:

Definición: ¿Qué es DevOps?

La palabra DevOps se compone de las palabras: Development y Operations. Lo que se traduce a Desarrollo y Operaciones. Esto hace referencia a una metodología para desarrollar software priorizando la fusión entre dos tipos de profesionales: Developers y profesionales de operaciones en el área IT (equipo de control de calidad (Quality Assurance) y Diseñadores UX/UI).

Esta metodología se puede entender como una manera más eficaz de organizar el trabajo, los equipos y garantizar los mejores resultados. De esta forma, se reducen los errores humanos y se asegura la creación de productos tecnológicos de calidad.

DevOps: Tres ideas importantes

  1. Es una metodología de creación de software
  2. Se basa en la integración eficiente de Developers y Operations
  3. Se reducen los errores humanos y se asegura la creación de productos tecnológicos de calidad

¿Cómo funciona el Ciclo Devops?

Un ciclo implica una serie de pasos que se construyen y se repiten. Esta serie de procesos no tiene un último paso, es algo que debe continuar. Desde el primer paso se promueve la mejora y la organización, lo que llevará nuevos features a producción de la manera más rápida y eficiente posible. Evitando bugs y todo tipo de fallos.

Toda la metodología inicia en el equipo de Developers. Los pasos en este departamento se reparten de la siguiente forma:

1) Plan
2) Create
3)Verify
4)Package

La segunda parte de la metodología DevOps sigue junto al equipo de Operations. Los pasos son los siguientes:

5)Release
6)Configure
7)Monitor

devops

A pesar de que estos pasos se muestran en un orden, los pasos están en un proceso reiterativo. A continuación explicamos cada uno de ellos:

Plan

Hay equipos que deciden utilizar metodologías como Waterfall o Agile. Cualquiera de los que elijan está bien. Únicamente debe ser seleccionado en base a su forma de trabajo y a su comodidad. Esta fase está para definir las tareas del equipo, los requerimientos, el tipo de plataforma o producto que se desea implementar.

Es importante utilizar herramientas que realicen un monitoreo del avance y los progresos en las tareas. Algunos de los boards que ayudan en este paso son: Trello o Asana.

Create/Desarrollo

En esta etapa se debe escribir el código que resolverá los problemas que plantean el paso anterior. Este código podrá almacenarse en un único lugar que servirá de repositorio (Github o Gitlab podrán ser útiles). De esta forma podrán utilizar herramientas de estas página y por el git en general: branchs, tags y muchos más.

Verify/Verificación

El paso más importante de esta etapa son las pruebas. Es recomendable que cada una de las piezas construidas incluyan sus propias pruebas automatizadas. Se deben escribir diferentes pruebas de software para disminuir la cantidad de bugs. Hacerlo durante esta etapa únicamente asegurará que se descubran los errores a tiempo. Esta fase implica una integración continua.

Estas pruebas deberán ser definidas con antelación. Algunas herramientas de Continuous Integration como TravisCI, CircleCI o Jenkins, serán de gran utilidad.

Package/Empaquetar

Desde la etapa de creación, al escribir el código, se puede utilizar en una infraestructura determinada. De forma empaquetada y lista se puede llevar a producción para no tener ningún tipo de complicaciones o errores. Es bastante usual utilizar contenedores como Docker en este paso.

Release/Despliegue

Intentar desplegar de forma automática el código es el objetivo. Se automatiza el proceso de enviar el código e iniciar el proceso de producción. Cada vez que se construye un feature y se elimina un bug, se pasa por las etapas anteriores. Esta etapa es una nueva versión del código disponible para hacerlo de una forma casi automática. La automatización de los despliegues por medio de herramientas y scripts permiten resumir la validación de todo proceso en un botón de aprobación.

Configure/Configuración

La siguiente fase consta en configurar la aplicación e infraestructura en la nube. El objetivo es proteger contraseñas e información que permitan iniciar sesión. Esto se hace mediante archivos .env o variables de entornos que pueden ser configuradas desde el panel de control de nuestra cloud provider o directamente desde la línea de comandos o shell.

En esta etapa es conveniente utilizar una plataforma que nos ayude a controlar el estado de la aplicación.

Monitor/Monitorización

Se deben revisar las métricas que indican el funcionamiento del código. Además de saber cómo se ve el producto a niveles estéticos, se debe realizar una revisión sobre el rendimiento que ocurre en los dispositivos de los clientes para tratar de optimizar su experiencia y mejorar el producto.

Al ser un modelo iterativo es importante estar siempre en este constante proceso, no podemos dar nunca por terminado el producto, esa es la manera en la que las empresas mueren.

DevOps: Una realidad en Elaniin Tech Company

En Elaniin, los procedimientos ordenados y el trabajo en equipo son la base de nuestros productos tecnológicos. Nuestro departamento de desarrolladores de software cuenta con programadores altamente capacitados. Cada equipo tiene líderes base, que ayudan a organizar los flujos de trabajo y a designar tareas según el talento de cada uno. Asimismo, al desarrollar un producto, el equipo de Diseñadores UX/UI se encargan de crear una plataforma bajo los estándares más altos sin perder de vista la experiencia del usuario. Todos los procesos se ven conectados y cuentan con la revisión de nuestro equipo de control de calidad (Quality Assurance) que se encarga de asegurar un producto de primer nivel.