El rol del ingeniero DevOps

Publicación
03 de abril de 2023
Lectura: 4 minutos
Ingeniero DevOps

Un ingeniero de DevOps debe tener habilidades que abarquen tanto el desarrollo como las operaciones, así como habilidades interpersonales para ayudar a cerrar las brechas entre los equipos aislados.

Cuando una organización está arraigada en una estructura aislada donde el desarrollo y las operaciones funcionan por separado, la implementación de DevOps a menudo implica una revisión organizacional. Se necesitan las personas, la cultura y las herramientas adecuadas para implementar DevOps con éxito. Sin embargo, uno de los obstáculos más comunes para implementar DevOps es la falta de habilidades de los empleados.

<< Conoce ahora todas las empresas en las que puedes trabajar con Adecco >>

¿Qué es un ingeniero DevOps?

Un ingeniero DevOps es un generalista de TI que debe tener un amplio conocimiento tanto del desarrollo como de las operaciones, incluida la codificación, la gestión de la infraestructura, la administración del sistema y las cadenas de herramientas de DevOps. Los ingenieros DevOps también deben poseer habilidades interpersonales, ya que trabajan en los silos de la empresa para crear un entorno más colaborativo. 

El ingeniero DevOps debe tener una sólida comprensión de la arquitectura, el aprovisionamiento y la administración de sistemas comunes, pero también debe tener experiencia con el conjunto de herramientas y prácticas tradicionales del desarrollador, como el uso del control de fuente, dar y recibir revisiones de código, escribir pruebas unitarias y familiarizarse con principios agile.

Funciones y responsabilidades

El rol de un ingeniero DevOps variará de una organización a otra, pero invariablemente implica alguna combinación de ingeniería de lanzamiento, aprovisionamiento y gestión de infraestructura, administración de sistemas, seguridad y defensa de DevOps. 

La ingeniería de versiones incluye el trabajo necesario para crear e implementar el código de la aplicación. Las herramientas y los procesos exactos varían ampliamente según muchas variables, como el idioma en el que está escrito el código, qué parte de la canalización se ha automatizado y si la infraestructura de producción está en las instalaciones o en la nube. La ingeniería de versiones puede implicar la selección, el aprovisionamiento y el mantenimiento de herramientas de CI/CD o la escritura y el mantenimiento de scripts de compilación/implementación personalizados.

El aprovisionamiento de infraestructura y la administración del sistema incluyen la implementación y el mantenimiento de los servidores, el almacenamiento y los recursos de red necesarios para alojar aplicaciones. Para las organizaciones con recursos locales, esto podría incluir la administración de servidores físicos, dispositivos de almacenamiento, conmutadores y software de virtualización en un centro de datos. Para una organización híbrida o completamente basada en la nube, esto generalmente incluirá el aprovisionamiento y la administración de instancias virtuales de los mismos componentes. 

La defensa de DevOps a menudo se subestima o se pasa por alto por completo, pero podría decirse que es el papel más importante de un ingeniero DevOps. El cambio a una cultura DevOps puede ser disruptivo y confuso para los miembros del equipo de ingeniería. Como experto en la materia de DevOps, le corresponde al ingeniero DevOps ayudar a evangelizar y educar el camino de DevOps en toda la organización.

Las mejores habilidades del ingeniero DevOps

Las habilidades técnicas requeridas de un ingeniero DevOps variarán según la estructura del equipo, las tecnologías y los conjuntos de herramientas en uso. Sin embargo, las habilidades sólidas de comunicación y colaboración son esenciales. También es importante que un ingeniero DevOps tenga una comprensión sólida de todos los componentes de una canalización de entrega y conozca los pros y los contras de las herramientas y los servicios disponibles.

Comunicación y colaboración

Es importante que un ingeniero DevOps se comunique y colabore de manera efectiva con equipos, gerentes y clientes. Estas llamadas “habilidades blandas” a menudo se pasan por alto y se subestiman, pero el éxito de DevOps depende en gran medida de la calidad y la cantidad de comentarios en todo el flujo de valor.

Administración del sistema

Un ingeniero DevOps tendrá experiencia en la administración de sistemas, como el aprovisionamiento y la gestión de servidores, la implementación de bases de datos, la supervisión de la seguridad, la aplicación de parches en el sistema y la gestión de la conectividad de red interna y externa.

Experiencia con herramientas DevOps

Dado que el uso de las herramientas adecuadas es esencial para las prácticas de DevOps, el ingeniero DevOps debe comprender y ser capaz de usar una variedad de herramientas. Estas herramientas abarcan el ciclo de vida de DevOps desde la infraestructura y la construcción hasta el monitoreo y la operación de un producto o servicio.

Gestión de la configuración

A menudo se espera que los ingenieros DevOps tengan experiencia con una o más herramientas de administración de configuración, como Chef, Puppet o Ansible. Muchas organizaciones han adoptado estas u otras herramientas similares para automatizar las tareas de administración del sistema, como implementar nuevos sistemas o aplicar parches de seguridad a los sistemas que ya se están ejecutando.

Arquitectura y aprovisionamiento del sistema

Un ingeniero DevOps debe tener la capacidad de diseñar, aprovisionar y administrar ecosistemas informáticos, ya sea en las instalaciones o en la nube. Es importante comprender la infraestructura como código (IaC), un proceso de administración de TI que aplica las mejores prácticas desde el desarrollo de software DevOps hasta la administración de recursos de infraestructura en la nube. Un ingeniero de DevOps debe comprender cómo modelar la infraestructura del sistema en la nube con Amazon Web Services (AWS), AWS CloudFormation o Terraform.

Familiaridad con la codificación y las secuencias de comandos.

Muchos administradores de sistemas tradicionales tienen experiencia escribiendo scripts de shell para automatizar tareas repetitivas. Un ingeniero DevOps debe ir más allá de escribir scripts de automatización y comprender prácticas avanzadas de desarrollo de software y cómo implementar prácticas de desarrollo ágiles, como revisiones de código y uso de control de código fuente.

Más allá de un solo rol

DevOps es una práctica que requiere un cambio cultural, nuevos principios de gestión y el uso de herramientas tecnológicas. Un ingeniero  DevOps se encuentra en el corazón de una transformación de DevOps y debe tener un amplio conjunto de habilidades para facilitar este cambio.

Sin embargo, la mayoría de las organizaciones necesitarán más que un solo ingeniero DevOps, sino una combinación de generalistas y especialistas que trabajen en estrecha colaboración entre sí para implementar DevOps y mejorar el ciclo de vida del desarrollo de software.  Un ingeniero DevOps ayuda a romper los silos para facilitar la colaboración entre diferentes expertos y entre cadenas de herramientas para cumplir la promesa completa de DevOps.

Descarga gratis la guía definitiva para superar una entrevista de trabajo
Descargar

Últimos artículos publicados

Descarga gratis la guía definitiva para superar una entrevista de trabajo
Descargar guía