Desarrollo de software. Gestión del sistema. Habilidades de comunicación. Estos requisitos para un trabajo de administrador de DevOps parecen sencillos, pero cada rol tiene matices que se relacionan con la empresa específica que busca ocupar este puesto, y nada en TI es estático.

Para los candidatos, esto puede crear un camino confuso hacia un trabajo, plagado de incertidumbre sobre lo que buscan los reclutadores y lo que se espera de ellos cuando consigan el trabajo. Sin embargo, estos diversos puestos -y los trabajos mismos- comparten algunos mecanismos comunes.

Para aclarar la confusión sobre la función de administrador de DevOps, SearchITOperations habló con algunos profesionales para conocer sus experiencias de primera mano.

Cualificaciones generales

Si bien un trabajo de administrador de DevOps puede variar desde el nivel inicial hasta el superior, algunos requisitos se trasladan de cada nivel. Por ejemplo, los años de experiencia relevante necesarios para un puesto de nivel superior serán mayores que los de un puesto de nivel inicial, pero muchos de los puestos para ambos requerirán una licenciatura en informática o un campo relacionado.

Dicho esto, hay ofertas de trabajo que eximirán del requisito de una licenciatura para obtener una experiencia laboral equivalente. Y si bien esa experiencia puede provenir de una variedad de tareas y proyectos previos, hay un área que debería incluir: la nube.

“Creo que las mayores habilidades [for a DevOps admin] “Sería familiaridad con los proveedores y la infraestructura de la nube”, dijo Matthew Grasberger, ingeniero de DevOps en Imperfect Foods. “Como he desempeñado el rol de DevOps hasta ahora, la mayor parte del trabajo ha sido trabajar con (en nuestro caso, AWS) y automatizar muchas de las cosas que puede hacer manualmente en AWS para ahorrar tiempo a los desarrolladores”.

Una empresa puede optar por utilizar Microsoft Azure, Google Cloud o cualquiera de los otros proveedores de nube disponibles y, aunque sus complejidades varían, algunos conocimientos y habilidades se transfieren de una plataforma a otra. Por ejemplo, los lenguajes de programación, las API y los contenedores se utilizan habitualmente.

Mirco Hering

“Hace un par de años, habríamos descrito a los ingenieros o administradores de DevOps como alguien que crea y mantiene un CD [continuous deployment] tubería; “Ese era el tipo de trabajo principal para ellos”, dijo Mirco Hering, líder de transformación global en Accenture. Para completar esta tarea, necesitan estar capacitados con herramientas y conceptos como Jenkins, automatización, Perl y Bash. “Lo que tenemos El cambio que hemos visto ahora es que se está trabajando mucho más con soluciones nativas de la nube. Así que creo que hoy en día es necesario tener habilidades en la plataforma Azure DevOps o en las alternativas de AWS o Google”.

En los últimos años, Grasberger también ha experimentado un crecimiento en la contenedorización. “El uso de Docker es, al menos en mi experiencia, una especie de estándar de facto para las aplicaciones ahora. Y con eso, hay organizaciones que migran a Kubernetes, Elastic Container Service y muchos otros proveedores que le permiten simplemente darles un contenedor Docker. y definir cómo desea que se ejecute el contenedor”, dijo.

Cuando se le pidió que enumerara solo las tres habilidades principales que debería tener un administrador de DevOps, Hering las redujo a:

1. La capacidad de aprender

“La plataforma DevOps es siempre más amplia”, afirmó Hering. Estar dispuesto a aprender nuevas tecnologías es más una ventaja que una especialización en una sola herramienta. Una forma de demostrarlo es a través de certificaciones. Una certificación individual no está de más, pero Hering considera que un individuo que completa el plan de estudios, desde, por ejemplo, el curso general de nube para Azure hasta los cursos de desarrollador y luego de administrador, es un compromiso con su propio aprendizaje.

2. Automatización

La automatización en DevOps es una habilidad general. “La mayoría de las personas con las que trabajo, y con las que me gusta trabajar, no tienen problemas para pasar de Jenkins a DevOps”, dijo Hering. “Entienden cómo funciona la automatización, cómo es necesario abstraer las variables, cómo hay que pensar en utilizar la configuración para todo en lugar de codificar las cosas”.

3. Un cuchillo afilado

Por muy importante que sea tener un amplio conocimiento y la voluntad de aprender, la experiencia y el dominio de una herramienta o plataforma como Azure DevOps, Ansible o Terraform completan el conjunto de habilidades de un administrador de DevOps.

Responsabilidades

“Un ingeniero de DevOps en muchos roles será, tal vez no la primera línea, pero a veces el primero en responder en ciertos tipos de problemas”, dijo Grasberger. La familiaridad con la pila de aplicaciones de su organización es crucial para el puesto. Esta familiaridad en acción podría significar mirar un registro y, por ejemplo, reconocer que significa que una base de datos está sobrecargada.

Y si bien la pila de aplicaciones puede cambiar de una organización a otra, la experiencia con lenguajes populares como Python, Bash y JavaScript, y sistemas operativos como Linux, es transferible.

Sin embargo, la responsabilidad de un administrador de DevOps no se limita a la aplicación, sino que también se extiende a la infraestructura. Para muchos, esto podría significar reforzar sus habilidades con plataformas y aplicaciones en la nube. Pero lo más probable es que signifique comprender un entorno híbrido. “Así que tendrán algo de VMware, tendrán algo de nube, y lo que están tratando de hacer es crear un entorno en estos dos paisajes”, dijo Hering, como ejemplo.

Vigilar…

La automatización es una gran parte de la función de DevOps y su crecimiento en popularidad y función debería hacer que los administradores de DevOps actuales y potenciales le presten atención.

“Creo que muchas empresas ya lo están haciendo [fully automated deployments]donde un desarrollador puede simplemente escribir una función y publicar su código. Todo el proceso tiene muchas pruebas y puede validar completamente sus cambios, de modo que si se trata de un cambio pequeño, en realidad no se necesita ninguna intervención, para luego implementarlo en producción”, dijo Grasberger. “Y ciertamente Facebook, Google y esos “Las organizaciones lo están haciendo con éxito, al menos eso dicen, y creo que las empresas avanzarán hacia eso”.

Pero el camino para llegar allí, especialmente para las empresas más pequeñas, puede ser un poco accidentado. Si bien las implementaciones totalmente automatizadas son un beneficio, todavía hay muchas incógnitas en la implementación, así como una falta actual de herramientas que puedan reconocer la validez de las pruebas, explicó Grasberger. Y si bien la IA y el aprendizaje automático podrían ayudar a desbloquear ese potencial, aún no es seguro.

Considere la infraestructura como código

“Las herramientas de infraestructura como código son increíblemente populares, y por una buena razón”, afirmó Grasberger. “Porque sin infraestructura como código, es muy difícil entender y rastrear lo que sucede con su infraestructura”. Una empresa que busca comenzar rápidamente puede no estar preocupada por rastrear los cambios, pero las organizaciones grandes deben rastrear estos cambios y su efecto en sus configuraciones de nube, aclaró. Terraform es una herramienta popular de infraestructura como código, pero existen alternativas, como las plantillas Ansible y ARM.

DevOps es ante todo una cultura. Para que un administrador de DevOps implemente esta metodología con éxito es necesario cambiar la forma en que las personas diseñan los proyectos. Una forma de ayudar a explicar el proceso es mediante habilidades de visualización. “Muy a menudo hablamos en términos tan abstractos que es difícil de seguir”, dijo Hering. La visualización de procesos, como el mapeo del flujo de valor (o la visualización de aplicaciones e infraestructuras), ayuda a comunicar objetivos, ya sea implementar tecnología o cambiar flujos de trabajo. “La capacidad de plasmar esto en una imagen y [bring] Creo que es súper poderoso que más gente se dé cuenta de lo que estás tratando de lograr”.

Profundizar en los datos

Hering ve la comprensión y el uso de datos, especialmente las métricas de las plataformas y aplicaciones DevOps, para tomar decisiones como uno de los próximos pasos en la evolución del rol de administrador de DevOps. “Esas podrían ser decisiones sobre remediación proactiva de la seguridad para no caer en el problema de tener un Log4J a la vuelta de la esquina, y luego tener que arreglarlo muy rápidamente en todas partes”.

O, como explora Hering en su investigación, puede significar investigar cómo fluyen los datos a través de una aplicación para ver qué componentes están más estresados ​​que otros y realizar cambios proactivos.

“Durante muchos años, fue una medida de '¿Qué tan rápido lanzamos la función?' Y ahora estamos viendo [many] Más organizaciones miden si estas características realmente se están utilizando”.

¿El trabajo remoto cambia el rol?

La pandemia empujó a muchas personas a trabajar de forma remota y, si bien ha habido beneficios tangibles, como un mayor grupo de talentos, algunas empresas están buscando que los empleados regresen a la oficina.

“Empecé a trabajar con [Imperfect Foods] hace unos dos años y desde entonces hemos estado completamente remotos, y [I] estaba haciendo la transición a un puesto de ingeniero de DevOps en ese momento. Así que creo que es muy común que los ingenieros de DevOps estén remotos”, dijo Grasberger. “Sé que, culturalmente, la gente puede preferir estar en el sitio o no, pero al menos para mí, no hay ninguna manera perceptible de ver que estar en el sitio [have] Me permitió hacer mejor mi trabajo”.

Acepta sorpresas

Incluso con años de experiencia a sus espaldas, prepárese para afrontar sorpresas.

“Lo más sorprendente es la frecuencia con la que las cosas salen mal”, dijo Grasberger sobre su trabajo como ingeniero de DevOps. “El software tiene errores inherentes. Y no me importa qué software sea, pero en algún momento fallará. Y puede que no siempre haya una respuesta”.

Un administrador de DevOps debe ser flexible y estar preparado para manejar cualquier cosa que se le presente, ya sea que el problema esté relacionado con su propia pila de software o con un servicio de terceros.