OpenWebinars

DevOps

Qué es DevOps: Fundamentos, beneficios y herramientas

Conoce la respuesta a esta pregunta que tanto intriga a muchos en el sector TI y seguramente te hayas hecho alguna vez.

Ximena Rodríguez

Ximena Rodríguez

Lectura 3 minutos

Publicado el 14 de mayo de 2019

Compartir

    Tabla de contenidos

Es una pregunta que ha estado intrigando a muchos en el sector de TI (Tecnologías de la Información) y que probablemente hayas escuchado, así que antes de comenzar a explicarte de que se trata primero quiero que conozcas por qué nace la necesidad de un DevOps en el mundo de TI.

En algunas compañías de TI suelen tener una gran muralla entre el área de desarrolladores de software y operadores de sistemas. Un desarrollador de software tiene como finalidad codificar y hacer sus correspondientes pruebas unitarias y generar lanzamientos de su aplicación (releases) en periodos cortos de tiempo, en cambio para el área de operaciones, su finalidad es mantener la plataforma estable y colaborar en el despliegue de esa aplicación, de tal manera que el usuario final la pueda ver en su pantalla.

Así que son dos áreas completamente distintas y que para cada una conlleva tareas de monitoreo, configuración e instalación, que no siempre será responsabilidad del desarrollador o del operador. En conclusión, el desarrollador no se responsabiliza de la estabilidad de la plataforma y el operador no le incumbe si la aplicación compilo bien o mal. (Problema común en las compañías de Software).

“La unidad es la fuerza…cuando hay trabajo en equipo y colaboración se pueden lograr cosas maravillosas”. Mattie Stepanek.

Después de todo esto, ¿dónde entra DevOps?:

DevOps es un rol, una cultura y una metodología de buenas practicas de software, que aplica distintas tecnologías y herramientas que conllevan a acelerar los tiempos de implementación y entrega continua de una aplicación. DevOps es el resultado de la unión entre desarrolladores y operadores de sistemas, simplemente es quien se preocupa porque la aplicación compile correctamente y que la plataforma se mantenga estable.

Así las responsabilidades ya no están separadas, un DevOps está entre los dos bandos y derrumba esta gran muralla de la que hablábamos, promueve trabajo en equipo y colaboración entre las dos áreas.

Fundamentos y beneficios de la metodología DevOps

Tenemos muchos beneficios de tener un DevOps en nuestro equipo, uno de ellos es dar pequeños adelantos de la aplicación en periodos cortos de tiempo y en lugar de demorarnos meses, lo podemos hacer en días :). También mejoramos notablemente la calidad de nuestro software, debido a que uno de los pilares DevOps es hacer pruebas de calidad automatizadas a nuestra aplicación.

Vamos a nombrar un tema adicional y no menos importante aquí y es la parte de infraestructura. Infraestructura es un conjunto de servicios, dispositivos físicos y componentes de hardware que cumplen una función específica y es el foco del área de operadores.

¿Pero que relación tiene lo anterior con un DevOps?

Pues DevOps debe tener conocimiento de Cloud Computing con el fin de dejar atrás la administración de máquinas físicas y enfocarnos en solo los servicios que necesitamos. A esto se le suma tecnologías de plataforma como servicio, software como servicio, infraestructura como servicio (PAAS, SAAS, IAAS ) que no es la finalidad de este articulo pero es importante nombrarlos, debido a que hacen parte de la adopción de DevOps a una compañía.

DevOps es el mejor amigo del Cloud Computing.

¿Qué hace un DevOps?

A continuación, listo algunos de los objetivos básicos y principales que debe tener un DevOps:

  • Lograr ciclos de desarrollo más cortos. Facilita a los desarrolladores una integración continua en sus códigos, CI (Continuos integration).
  • Hacer despliegue continuo, es decir pasar la versión de software a entorno de producción mucho más frecuentemente. Esto se llama CD (Continuos Deployment).
  • Mantener una plataforma estable con un 99% de disponibilidad.
  • Eficiencia y automatización. Eliminar tareas humanas y manuales.
  • Monitorear el performance de una aplicación y con base a los datos recopilados en determinado tiempo (métricas), tomar decisiones en el equipo para mejorar tiempos de respuesta.

¿Como implementar DevOps en tu empresa?

No es solo contratar un DevOps y listo, que haga maravillas, no funciona así. Una empresa tiene que empezar por adoptar bases de metodologías ágiles de software en su equipo. Al tener estos cimientos sólidos, se crea la necesidad de implementar metodologías DevOps para acelerar la entrega del software; esto genera la importancia de capacitar al equipo en herramientas de automatización y tecnologías con el fin de que NO exista la famosa muralla entre operaciones y desarrollo. Ahora todos son un solo equipo que va hacia un mismo objetivo, entregar software de calidad y mas rápido.

Herramientas DevOps

Existen muchísimas herramientas con la cual un DevOps puede trabajar, entre las más importantes están:

  • Manejar nuestra infraestructura en proveedores de nube como Amazon Web Service (AWS) y Google Cloud Computing. (Las más populares).
  • Herramientas de integración y despliegue continuo como Jenkins, CircleCI o Travis.
  • Lenguajes que apoyaran en la construcción de infraestructura como código, tenemos a Terraform y Chef que van muy bien.
  • Herramientas de monitoreo, entre otras como Cabot app, es una aplicación OpenSource en la que va bien y basta con que nos alerten cuando algún servicio está caído, Prometheus, Nagios o Zabbix.
  • Lenguajes que apoyaran a las tareas comunes de un DevOps: Bash scripting, Python, YAML entre las básicas.

¿Tiene futuro ser ingeniero DevOps?

¡Si y definitivamente si!, como un futuro DevOps tienes una visión más global de como funciona el desarrollo de un software, te sientes libre y más productivo. En mi caso personal, es muy reconfortante cuando libero cargas al equipo de desarrollo y operaciones, dando como resultado un trabajo en equipo. El ser productivo te hace sentir bien y que sientes que hiciste un gran trabajo. Además, la tendencia del sector de TI va hacia la aceleración, la innovación y entrega continua de software para ser más competitivos en el Mercado tecnológico. Un DevOps es súper activo en este proceso de transformación tecnológica en el que están muchas compañías en el sector TI, así que es un buen arranque y lo más importante es que lo disfrutes al hacerlo.

curso-devops

Compartir este post

También te puede interesar

Icono de la tecnología
Curso

Curso de Istio

Intermedio
3 h. y 7 min.

Aprende a crear y desplegar microservicios en resiliencia y tolerante a fallos.

Alex Soto Bueno
4.5