¿Cómo convertirse en ingeniero DevOps?

Emiliano Pardo Saguier octubre 24, 2022
- 10 min read

¿Quieres convertirte en un ingeniero DevOps? Es una carrera atractiva, desafiante y bien paga. Une el desarrollo de software y las operaciones. Aquí hemos creado una hoja de ruta con los pasos necesarios para saber cómo convertirse en ingeniero DevOps. 

Como sabes, DevOps constituye un conjunto de prácticas y herramientas para integrar y automatizar los procesos entre los equipos de IT y de desarrollo de software. Con ese fin, se centra en la comunicación y la colaboración entre ambas áreas, al tiempo que aprovecha los mejores instrumentos de automatización disponibles para aumentar la eficiencia. 

Luego, se promueve la unión de los que trabajan del lado del desarrollo de software con el despliegue del mismo, así como en garantizar altos niveles de soporte estructural y de mantenimiento. 

Eso significa que los ingenieros de DevOps tienen que saber sobre sus tareas para enfrentarse a esta monumental obra. ¿Y qué son exactamente "sus tareas"? Pues resulta que no son sólo las suyas, sino las de casi todos los demás. 

Suena como una cima casi imposible de llegar. Y aunque es cierto que los ingenieros DevOps son expertos de alto nivel, convertirse en uno de ellos tampoco es inviable. Con ese fin, esta guía te ayudará a entender cómo convertirse en ingeniero DevOps. 

Echemos un vistazo.

¿Por qué necesitas una hoja de ruta de DevOps?

Ya nos hemos referido en otras oportunidades a por qué convertirse en ingeniero de DevOps es un acto complejo. Es que estos equipos incluyen a los desarrolladores y al personal de IT, quienes trabajan mano a mano a lo largo del ciclo de vida del producto.

Por lo tanto, una hoja de ruta de DevOps implica contar con grandes habilidades y tener en cuenta algunos pasos necesarios que ayudan a aumentar la velocidad y la calidad del desarrollo y el despliegue, además de evitar el silo organizacional. En ocasiones, para maximizar la eficiencia los equipos se fusionan con ingenieros que trabajan en dicho ciclo de vida del producto o de la aplicación.

Entonces, exploraremos los requisitos para convertirse en ingeniero DevOps.

Cómo convertirse en ingeniero DevOps en 14 pasos

1. Aprender lenguajes de programación

El primer paso para convertirse en ingeniero DevOps es el dominio de uno o varios lenguajes de programación. No estarás integrando o depurando bases de datos y códigos, automatizando procesos de desarrollo y despliegue, y solucionando los problemas que surjan. Lo que debes hacer es abocarte a mantener funcionando el canal de integración/despliegue continuo. 

Si estás aquí, imaginamos que dominas al menos uno de los "grandes" lenguajes de programación, como Java, JavaScript o Python. Pero, si no es así, te recomendamos que te familiarices con al menos dos o tres de esta lista:

  • Python
  • Perl
  • Java
  • JavaScript
  • Go
  • Python
  • Ruby
  • Rust
  • C
  • C++

2. Saber cómo funcionan los sistemas operativos

Un ingeniero de DevOps debe aprender cómo funcionan los diversos sistemas operativos y cuáles son sus diferencias, principalmente porque va a ejecutar aplicaciones en servidores. 

Linux es normalmente la solución para este tipo de cosas, utilizada por la mayoría de las empresas y proveedores de servidores. De hecho, si estás ejecutando una aplicación web, lo más probable es que se encuentre en un servidor Linux. 

Pero, otros sistemas operativos que no está de más conocer son:

  • Debian
  • Unix 
  • SUSE Linux
  • Fedora
  • Ubuntu
  • CentOS
  • Windows 
  • RHEL
  • macOS
  • FreeBSD
  • OpenBSD
  • NetBSD

3. Conocer sobre los conceptos del sistema operativo

Además, como ingeniero DevOps debes entender la infraestructura subyacente del sistema operativo que permite ejecutar una aplicación. Esto se llama "conceptos del sistema operativo". En concreto, tienes que familiarizarte con:

  • Gestión de la startup
  • Gestión de procesos 
  • Sockets 
  • Desarrollo de front-end
  • Threads y concurrencia
  • Gestión de I/O 
  • Los fundamentos de POSIX
  • Virtualización 
  • Sistemas de archivos 
  • Memoria y almacenamiento
  • Gestión de servicios 
  • Redes 

4.  Apoyarse en la seguridad y los protocolos de red

Otra clave sobre cómo convertirse en ingeniero DevOps, es contar con la facilidad de mantener la calma. La seguridad y los protocolos de red te ayudarán a garantizar la integridad de los datos al definir los procesos y metodologías que se utilizarán para mantenerte a salvo de intentos de acceso no autorizados.

Los protocolos que tienes que conocer son: 

  • HTTP
  • HTTPS 
  • FTP
  • Firewalls 
  • SSH
  • SSL/TTS
  • IPsec y VPNs 
  • Reenvío de puertos 
  • AT-TLS
  • SNMP
  • Autenticación OSFP
  • Acceso al proxy

5. Los terminales son tu nuevo hogar 

La consola permite a los desarrolladores automatizar, programar y realizar tareas del sistema sin utilizar una interfaz gráfica de usuario o GUI

Como resultado, tendrás que sentirte cómodo con la manipulación de textos, scripts bash, monitorización de procesos, rendimiento del sistema, redes, compilación de aplicaciones desde el código fuente, Vim/Nano/Emacs y Powershell. 

Apostaríamos que si alguna vez te sentiste cómodo creando un archivo .cfg en tu FPS de elección, estarás como en casa. 

6. Saber monitorear un servidores web 

Cuando el usuario solicita información, el servidor satisface su requerimiento. Un servidor web puede alojar uno o varios sitios utilizando el mismo hardware y recursos. Se comunica con un navegador web mediante HTTP/HTTPS. 

En definitiva, un ingeniero de DevOps debe saber cómo monitorear un servidor. 

Algunos de los más comunes sobre los que puedes aprender son:

  • Apache
  • Nginx
  • IIS
  • Tomcat
  • Caddy
  • Istio
  • Envoy
  • Cónsul
  • Linkerd

7. Estar al tanto de las herramientas de integración continua/entrega continua 

El conducto de integración/entrega continua es esencial para el desarrollo de software bajo DevOps. 

Como explicamos en un artículo anterior, la integración continua es una práctica de desarrollo de software en la que los desarrolladores fusionan cada cambio de código que realizan en un único repositorio.  

Mientras que, por otro lado, la entrega continua es la implementación de los cambios de código que se construyen, prueban y preparan automáticamente para un lanzamiento de producción. Esto puede considerarse una expansión de la integración continua.

Algunas de las herramientas que se pueden utilizar para este fin son:

  • TravisCI
  • GitHub
  • GitLab
  • GitHub
  • Bamboo
  • Jenkins
  • Roadmap de 2022 para los desarrolladores de backend
  • TeamCity
  • Azure DevOps

8.  Aprender la infraestructura como código 

Probablemente esta es una de las principales áreas a la hora de entender cómo convertirse en ingeniero de DevOps. Conocer los contenedores como Kubernetes y Docker, además de las herramientas de gestión de la configuración, será vital para tu desarrollo y el éxito de los proyectos que dirijas. 

Estas son algunas de las herramientas DevOps que debes conocer: 

  • Docker
  • Contenedores
  • LXC
  • Gestión de la configuración 
  • Ansible
  • Salt
  • Chef
  • Puppet
  • Orquestación de contenedores
  • Mesos 
  • Kubernetes
  • Enjambre Docker
  • Nomad
  • Istio 
  • Malla de servicios
  • Linkerd
  • Consul Connet
  • Maesh
  • Kuma
  • Aprovisionamiento de infraestructuras
  • Terraform

9. Monitorear las aplicaciones

El monitoreo de aplicaciones se refiere al proceso de medir la disponibilidad, la experiencia y el rendimiento de una aplicación. Los datos que se obtienen permiten identificar y resolver fallos y errores antes de que la utilicen los usuarios. Normalmente se usan software como AppDynamic, Instana, New Relic, Jaeger y OpenTracing.

10. Monitorear de la infraestructura

Esta parte sobre cómo convertirse en ingeniero DevOps -monitoreo de la infraestructura- implica el proceso de obtener todos los datos que puedas sobre tu infraestructura para tomar decisiones operativas informadas. 

Para ello, utiliza la información generada por las aplicaciones, los servidores y los dispositivos de red, entre otros elementos, para realizar un seguimiento de métricas como la capacidad del hardware, el rendimiento de la red y el tiempo de actividad. Esto te ayudará, a su vez, a mejorar la eficiencia y a resolver errores al permitirte saber qué áreas necesitan un poco de amor y atención. 

Algunas buenas herramientas para el monitoreo de la infraestructura son: 

  • Grafana
  • Prometheus
  • Zabbix 
  • Nagios
  • Datadog

11. Familiarizarse con el patrón de diseño en la nube

El patrón de diseño en la nube te ayudará a construir aplicaciones escalables, fiables y seguras en la nube. Para ello, es necesario que estés familiarizado con uno o varios. Algunos de los más importantes son:

  • Abastecimiento de eventos
  • Embajador
  • CQRS
  • Agregado de puertas de enlace
  • Consolidación de recursos informáticos
  • Almacenamiento de configuración externo
  • Capa anticorrupción
  • Canales y filtros
  • Agregado de pasarelas
  • Descarga de la pasarelas
  • Enrutamiento de la pasarelas
  • Sidecar

12. Utilizar la gestión de registros

Los registros te facilitarán enumerar los eventos que se producen en el sistema y profundizar en los detalles. En definitiva, el monitoreo de registros te ayudará a ti, ingeniero DevOps en ciernes, a mejorar los servicios y procesos, a prevenir vulnerabilidades y a identificar cuellos de botella. 

Algunas de las herramientas que utilizarás son:

  • Splunk 
  • Elastic stack
  • Graylog 
  • Papertrail

13. Estar al tanto de los proveedores en la nube y paquetes de servicios 

En el camino sobre cómo convertirse en ingeniero DevOps es fundamental estar familiarizado con la tecnología en la nube. Además, necesitas entender los beneficios y peculiaridades de cada proveedor para que tu organización pueda tomar decisiones informadas. 

Merece la pena conocer en profundidad algunos de los más populares, como Google Cloud, AWS, Azure, Digital Ocean, Linode y Alibaba cloud. Hay que tener en cuenta que estos proveedores rara vez trabajan con una tarifa plana. En su lugar, el precio de estos servicios tiende a variar según el número de dominios que necesites y la CPU, la memoria y los certificados SSL necesarios.

14.  Saber de otras tecnologías disponibles

Te presentamos una pequeña lista de cuestiones que deberías conocer en el proceso sobre cómo convertirse en ingeniero DevOps. 

  • Hoja de caché
  • Proxy inverso
  • Proxy directo
  • Firewall
  • Equilibrio de carga
  • Servidor de caché

Conclusión

La hoja de ruta de DevOps presentada aquí está pensada para guiarte en el camino hacia cómo convertirse en ingeniero DevOps. Esto no significa que sea estática o que esté grabada en piedra; porque las tecnologías cambian a diario, y depende de ti mantenerte constantemente al día con las herramientas y soluciones emergentes. Otra parte importante es el aprendizaje y la adaptación: quizás lo más importante para ser bueno en el trabajo.

Pero si ya tienes una base sólida en informática, deberías tardar apenas seis meses en pasar de donde estás hasta ser ingeniero DevOps. 

Recuerda que tienes que añadir esto a tu listas de tareas pendientes: 

  • Lenguajes de programación
  • Conceptos de sistemas operativos
  • Terminales 
  • Redes y seguridad
  • Herramientas de integración y entrega continua (CI/CD)
  • Servidores web 
  • Infraestructura como código
  • Monitoreo de aplicaciones
  • Monitoreo de la infraestructura
  • Patrón de diseño de la nube
  • Gestión de registros 
  • Proveedores en la nube y gestión de servicios 
  • Otras tecnologías

Preguntas frecuentes 

¿Qué hace un ingeniero DevOps?

Un ingeniero DevOps utiliza herramientas, procesos y metodologías para cubrir las necesidades durante el ciclo de desarrollo del software, desde el desarrollo propiamente dicho y la codificación hasta el despliegue, el mantenimiento y las actualizaciones. 

¿Cuánto tiempo se tarda en ser ingeniero DevOps?

Si ya tienes experiencia con Linux y redes y sigues la hoja de ruta planteada aquí, tardarás unos seis meses. 

¿Qué es CI/CD en DevOps?

Es una práctica recomendada de DevOps que aprovecha la automatización en el desarrollo de aplicaciones, permitiendo aumentar el ritmo de desarrollo y despliegue de las mismas. CI/CD se refiere a la integración, entrega y despliegue continuos. 

¿Qué relación tiene DevOps con la informática?

Para convertirse en un ingeniero DevOps se necesita una licenciatura en informática, matemáticas o ingeniería electrónica.

Read other articles like this : DevOps