Qué es un ingeniero DevOps y qué funciones tiene

En este artículo abordaremos el interesantísimo tema que describe una de las profesiones del campo de la informática más relativamente recientes, actualmente más demandadas y más complejas que existen. Así que para aquellos que tienen curiosidad sobre esta profesión, que les interesaría saber que es realmente un Ingeniero DevOps, cuáles son sus funciones, que tipo de habilidades y conocimientos requiere esta profesión y que les atrae la idea de entrar en este campo, relájense, pónganse cómodos que ya empezamos con este tema.

Qué es un Ingeniero DevOps

Dicho de manera sencilla pero bastante acertada, un ingeniero DevOps es la “navaja suiza” de las profesiones de relacionadas con la informática. DevOps es la combinación de dos palabras que abarcan campos tan diferentes y tan complejos, pero que han encontrado felizmente un puente entre ellos dos a través de esta nueva profesión de la informática, como son Dev (de Development o Desarrollo en español) y Ops (de la palabra Operations u Operaciones en español).

Un ingeniero DevOps es aquel que trabaja con desarrolladores de software y con personal de IT (personal que se encarga de llevar a cabo todo lo que respecta a las operaciones de sistemas, es decir, respaldos, virtualización, configuraciones e implementaciones en sistemas operativos, etc.). Pueden ser desarrolladores de software que se interesan en automatizaciones de implementaciones de sistemas y operaciones de redes, o bien pueden ser SysAdmins (administradores de sistemas) que tienen una pasión para hacer scripts o para programar y explotan esa habilidad para mejorar la rapidez en las implementaciones, configuraciones y pruebas con más eficiencia, ya que automatizan varios procesos que normalmente son manuales.

Es una profesión relativamente nueva, ya que se puede decir que realmente fue reconocida formalmente desde aproximadamente el año 2009 en adelante. Entonces ya empezaban a surgir nuevas herramientas para este tipo de profesionales y se empezaba a hacer referencia a ellos con este nombre. Sin embargo, se puede decir que en los últimos 5 años esta profesión está siendo altamente demandada, ya que hoy en día existen, múltiples tipos de herramientas que apoyan mucho a esta nueva profesión y por ende, la automatización, orquestación, tecnología de contenerización para aplicaciones, manejo automático de configuraciones en paralelo y el control de versionamiento son factores altamente apreciados e implementados en compañías que tienen infraestructuras localmente grandes o en la nube.

Funciones de un ingeniero DevOps y herramientas

Las funciones de un ingeniero DevOps varían ampliamente de una organización a otra pero invariablemente casi siempre conlleva combinaciones comunes de implementaciones masivas de configuraciones o instalaciones de aplicaciones en cientos o miles de servers, aprovisionamiento de infraestructura, administración automática de sistemas, implementación automática de sistemas de seguridad informática de manera masiva en múltiples endpoints (o computadoras personales para el personal, sean estas de escritorio o portátiles), como, por ejemplo, antivirus, sistemas de encriptamiento de dispositivos de almacenamiento, defensa de Ransomware (virus que secuestran la información de sus víctimas y la encripta hasta que la víctima pague su rescate) y otros.

Las herramientas para DevOps varían ampliamente dependiendo de muchas variables, por ejemplo, el lenguaje o plataforma en el que Código como Infraestructura (Infrastructure as a Code) ha sido implementado, este término ya es ampliamente usado en las organizaciones que abrazan a la metodología DevOps. Si la infraestructura es aprovisionada localmente, está en la Nube o es una infraestructura híbrida que incluye ambos tipos, herramientas diferentes deberán ser usadas por el ingeniero DevOps.

Entre las herramientas para ingeniería DevOps se encuentran las siguientes:

  • Git y Github: Git es un herramienta open-source que es usada para registrar modificaciones hechas en códigos estableciendo un sistema de versionamiento que hace más fácil y eficiente el seguimiento de cambios. GitHub es la plataforma sobre la cual varios desarrolladores pueden trabajar conjuntamente sobre proyectos de desarrollo de software desde cualquier parte del mundo usando como base repositorios Git.

  • Jenkins: es una herramienta open-source construida para llevar a la práctica la filosofía de Integración Continua / Entrega Continua (CI/CD o Continuous Integration / Continuous Deployment por sus siglas en el idioma inglés) para construir y probar los proyectos de software de ingenieros desarrolladores de software, haciéndoles más fácil integrar modificaciones a los proyectos y por ende haciéndoles más fácil obtener un producto fresco.

  • Selenium: es una herramienta open-source que automatiza navegadores web, provee una sola interface que permite a los desarrolladores escribir scripts de prueba en varios lenguajes de programación tales como Java, Ruby, PHP, NodeJS, Python, Perl y C#, entre otros.

  • Docker: es una plataforma de contenerización, permite a los desarrolladores “empaquetar” aplicaciones en contenedores que son componentes estandarizados ejecutables que se combinan con librerías y dependencias que se requieren para correr código en cualquier ambiente.

  • Kubernetes: es una plataforma open-source que tiene el propósito de servir como orquestadora de contenedores para la automatización de despliegue, escalamiento y administración de aplicaciones de informática.

  • Puppet: es una herramienta open-source de administración cliente servidor por medio de la cual se hacen configuraciones e implementaciones masivas sobre muchos servers Linux y Windows al mismo tiempo mediante Código Como Infraestructura (Infrastructure as a Code).

  • Chef: es una plataforma open-source usada para hacer mantenimiento y configuración de servers que también puede integrarse con plataformas de Nube como AWS, Microsoft Azure, Google Cloud Platform y otros.

  • Ansible: Es una plataforma open-source por medio de la cual se automatizan procesos de aprovisionamiento, administración de configuraciones, despliegue de aplicaciones y otros procesos de TI.

Perifles de un ingeniero DevOps en la actualidad

Evangelista DevOps

Es el encargado de promocionar y desarrollar prácticas DevOps en el departamento de IT y en toda la organización para la mejor adopción y formulado de estrategias DevOps de procesos manuales que podrían ser perfectamente automatizados.

La evangelización DevOps es muchas veces subvaluada, pero es una de las funciones principales de un ingeniero DevOps, en especial si es el ingeniero DevOps líder responsable de llevar esta metodología a la compañía. El cambio hacia una cultura DevOps en un departamento de informática puede ser disruptivo y confuso al principio para sus miembros, pero es responsabilidad directa del ingeniero DevOps el implementar esta cultura no solo en su departamento, sino en toda la organización.

Experto de Automatización

Este experto es el que pone en práctica las estrategias y formulaciones del evangelista DevOps. En muchas compañías este puesto, junto con el anterior, pueden ser uno solo, pero es mucho mejor que uno sea el evangelista DevOps y el otro el experto deaAutomatización, pues tener los dos puestos unidos en una sola persona representaría una carga de trabajo enorme y muy pesada de llevar. Sería como el equivalente a tener un arquitecto y un ingeniero civil en una sola persona para llevar a cabo una construcción grande.

Ingeniero DevOps QA (Quality Assurance)

Como hemos visto anteriormente, la automatización de las pruebas a través de herramientas especializadas ya es un hecho. Es aquí donde este tipo de profesional brilla, ya que este ingeniero es responsable de la automatización de las pruebas y el mantenimiento de calidad del código, lo cual es una tarea primordial en una compañía, sobre todo si la automatización es ya una filosofía ya implantada en la organización como parte de su cultura.

Ingeniero de seguridad DevOps

Gracias a herramientas de configuración de procesos de manera masiva en cientos o miles de máquinas al mismo tiempo, como Ansible o Puppet, con el diseño y la implementación de aplicaciones mediante el Código como Infraestructura, este tipo de profesional se encarga de llevar a cabo el despliegue masivo de software especializado en seguridad teniendo en cuenta estándares de seguridad internacionalmente reconocidos como ISO 27001.

Imagen 0 en Qué es un ingeniero DevOps y qué funciones tiene

Conocimientos y habilidades que debe tener un DevOps

El ingeniero DevOps, dicho de una forma sencilla pero acertada, es una mezcla de SysAdmin (administrador de sistemas) y desarrollador, una mezcla poderosa y altamente cotizada hoy en día. Esta mezcla no es fácil de encontrar en la actualidad, ya que es una profesión relativamente nueva y las universidades y los centros de formación técnica recién lo están promocionando en los últimos años.

Además, no es fácil encontrarlo por otra razón, y es que generalmente los SysAdmins no incursionan mucho en el campo del desarrollo, solo lo hacen tradicionalmente cuando lo necesitan, igualmente a los ingenieros desarrolladores de software no les gusta normalmente incursionar en el campo de la infraestructura como tal, por considerarla una especialidad, y generalmente se especializan en herramientas que usadas en el diseño y en la depuración del código.

Todo esto hace a los ingenieros DevOps unos profesionales altamente cotizado, ya que no siempre es fácil encontrar un SysAdmin apasionado por el desarrollo o a un ingeniero desarrollador apasionado por las tareas de la infraestructura IT.

Entre los conocimientos y habilidades que debe de tener un DevOps están las siguientes:

· Experiencia con infraestructuras basadas en Linux

El Sistema Operativo Linux es piedra angular de las tecnologías DevOps, y muchas de estas herramientas tienen mucha influencia de Linux en la manera en que los comandos son estructurados. Además, muchas de estas herramientas son altamente compatibles con este Sistema Operativo, y son igualmente compatibles con Microsoft Windows, MacOS y otros, pero es también innegable que las infraestructuras de Nube poseen gran presencia de Sistemas Operativos Linux como base, debido a la legendaria fama de estabilidad de Linux, además de su gran capacidad de escalamiento y manejo eficiente de recursos de memoria y procesamiento.

· Excelente manejo de, por lo menos, dos lenguajes de programación

Entre los lenguajes de programación más usados en DevOps están Python, Ruby, Perl, entre otros, y dependerá de cual sea el lenguaje que más se maneja en la organización que está busque contratar a un ingeniero DevOps.

Si no posees dominio de, por lo menos dos lenguajes de programación, no puedes ir mal si eres experto o te dedicas a fortalecerte en uno en especial como Python, por ejemplo. Las posibiidades de que Python sea usado en la organización en la que deseas trabajar son sumamente altos, debido a que es un lenguaje de programación muy poderoso, relativamente fácil de usar y es ínterplataforma, o sea que puede ser usado en varios sistemas operativos. Además, es más fácil incursionar con otro lenguaje de programación relativamente sencillo de usar como Perl.

· Manejo y configuración a nivel medio de Base de Datos

Como pueden ser, por ejemplo, MySQL o PostgreSQL, si la organización es orientada a bases de datos de tipo SQL, o bien Cassandra, no a nivel de un DBA, pero si a un nivel en el que se sepa poder interactuar con bases de datos, saber operarlas con sus comandos más usados, por ejemplo, cómo hacer consultas (Queries en idioma inglés), alimentación de las bases de datos y manipulación de la información.

· Habilidad alta para la resolución de problemas

Como esta profesión es una mezcla de dos poderosas ramas de la informática, se necesita un profesional que tenga altas capacidades para poder identificar problemas, además de un ojo clínico para poder identificar las situaciones que provoquen una caída de sistemas, un “bug” o error de programación en alguna aplicación creada en casa, de una plataforma open-source o un conflicto.

· Conocimiento amplio de las principales herramientas de DevOps

Debe conocer y manejar con soltura las principales herramientas de DevOps, además de tecnologías open-source y servicios de infraestructura en la nube, como el Cloud de Amazon Web Services, Google Cloud Platform o Microsoft Azure, sin necesidad de ser un experto en cada una de ellas, ya que basta con conocer bien la plataforma que la organización usa más.

· Manejo excelente de conceptos de DevOps y principios de metodologías Agile

Debe conocer, por ejemplo, Scrum o Kanban para llevar control o acoplarse bien a la producción de software.

· Manejar bien la filosofía de Integración Continua / Entrega Continua (CI/CD)

Debe conocer y llevar a la práctica ambos procesos con soltura.

Presente y futuro de DevOps

El ingeniero DevOps es hoy por hoy una de las profesiones más demandadas, esto se debe a que hay una tendencia muy clara en las compañías por la automatización de procesos desde los más simples hasta los más complejos, la razón es porque sencillamente entre más automatizado esté un proceso, más eficiente es la operación, sea cual sea la actividad en la empresa.

Por ejemplo, al automatizar un proceso como el reclutamiento de personal nuevo, se elimina el prejuicio en gran medida y se industrializan los procesos de selección de personal. Por ejemplo, al automatizar pruebas psicométricas y pruebas de conocimiento profesionales se ahorra una enorme cantidad de tiempo y se elimina en gran medida la discriminación, ya sea por raza, por género, edad u otros.

Podemos citar otros procesos que pueden ser automatizados en gran medida, como sistemas de compra de productos y servicios que necesitan hacer las empresas, automatización de evaluación de personal y directivos de la empresa, automatización de seguimiento de tareas de cada departamento, automatización de captación nuevos clientes potenciales y retención de clientes en base a manejo de bases de datos NoSQL, con las que se analizan enormes cantidades de datos sobre las preferencias de personas en un cierto rango de edad o zona geográfica y muchísimos otros procesos más.

Hay quienes piensan que al automatizar se deshumanizan los procesos y las labores en una empresa, pero siendo prácticos, es algo mucho más eficiente y eliminan en gran medida los errores humanos y prejuicios. Además de esto ya hay una gran tendencia hacia usar tecnologías emergentes con las que el DevOps se puede acoplar perfectamente, como, por ejemplo, Inteligencia Artificial, Big Data, Machine Learning y otras, por lo que la ingeniería DevOps tiene un futuro brillante.

Salario de un DevOps

Este punto difiere mucho respecto al rol y a la zona geográfica en la que el ingeniero DevOps se encuentre, pero podemos dar un estimado de cuanto es el salario promedio independientemente de funciones del mismo. Por ejemplo, en Estados Unidos la media del salario para ingeniero DevOps está en el orden de los 126.000 dólares americanos al año (unos 111.000 euros al año), en cambio en Europa el salario anual de un ingeniero DevOps está en el orden de unos 50.000 euros al año, algo menor en el caso de España, sobre los 48.000 euros al año.

Estos datos son proporcionados por empresas que se dedican tanto al reclutamiento de personal, como al reporte de salarios brindados anónimamente por profesionales que se dedican a esta rama.

También te puede interesar...

AWS para SysAdmin

Curso de Amazon Web Services para SysAdmin

2 horas y 26 minutos · curso

  • Cloud Computing
DevOps

Qué es DevOps: Fundamentos, beneficios y herramientas

14 Mayo 2019 Ximena Rodríguez
Cloud Computing

Qué es Azure DevOps

12 Julio 2021 César Díaz Alcolea

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información.