Cómo revisar las habilidades más importantes de DevOps

Publicado: Última actualización:
Evaluación de las habilidades de DevOps

Hay pocas cosas en programación tan imprecisas como DevOps. El propio nombre está en disputa con SysOps y SRE, formas también populares de describir el campo. No sólo eso, hay no hay un paquete estándar de habilidades DevOps.

La función se sitúa entre la de un desarrollador de software y la de un ingeniero de operaciones, por lo que la selección es muy específica para las habilidades exactas que busca el empleador. Entonces, ¿cómo se seleccionan las habilidades de DevOps? Para tener una mejor idea, es importante empezar por el principio.

¿Qué es DevOps?

El ciclo de habilidades de DevOps

Fuente: Irma Kornilova

Creado para apoyar el desarrollo ágil de software, un ingeniero de DevOps se sitúa en algún lugar entre un desarrollador de software tradicional y un ingeniero de operaciones. Como Ernest Mueller lo define,


Ernset Mueller habla de las habilidades de DevOps

DevOps es la práctica de los ingenieros de operaciones y desarrollo que participan juntos en todo el ciclo de vida del servicio, desde el diseño hasta el apoyo a la producción, pasando por el proceso de desarrollo.

Fuente: el ágil administrador

Fuente de la imagen: el ágil administrador


Antiguamente, los desarrolladores creaban un producto y lo entregaban a operaciones para que lo desplegara. Si algo salía mal, los de operaciones hacían un ticket de soporte y lo devolvían a los desarrolladores, que creaban una solución y la devolvían a operaciones. Este era un enfoque muy aislado que era tan lento como rígido.

DevOps desafía este enfoque reuniendo al equipo de desarrollo y al de operaciones para que creen, desplieguen, mantengan y mejoren continuamente las aplicaciones. Y esto conlleva grandes recompensas. La página web Informe sobre el estado de los DevOps en 2019 publicado por DevOps Research and Assessment encontró que los de alto rendimiento (que instituyeron DevOps) tienen

  • 208 veces despliegues de código más frecuentes
  • 106 tiempos de espera más rápidos desde el compromiso hasta el despliegue
  • 2604 veces más rápido significa el tiempo de recuperación del tiempo de inactividad
  • 7 una tasa de fracaso de los cambios 1 veces menor (los cambios tienen 1/7 de probabilidades de fracasar)

Todo ello en comparación con las organizaciones que no utilizan DevOps.

¿Qué habilidades de DevOps debería revisar un reclutador?

A diferencia de otros puestos de ingeniería de software que tienen un conjunto de habilidades y un enfoque definido, DevOps es un poco más difícil de precisar. Como Mike Dilworth señala:


Mike Dilworth habla de las habilidades de DevOps

¡DevOps es una cultura, no un papel! Toda la compañía necesita hacer DevOps para que funcione.

Fuente: Irma Kornilova

Fuente de la imagen: AngelList


En otras palabras, es necesario contratar tanto la experiencia técnica específica del dominio como la capacidad de apoyar y prosperar en la cultura ágil en la que opera DevOps. Por lo tanto, un ingeniero de DevOps debe tener una combinación de estas habilidades.

Colaboración/habilidades suaves

Un ingeniero de DevOps es ante todo un miembro de un equipo. No es un papel que fomente el destacarse como individuo. En cambio, apoya el trabajo conjunto para seguir iterando y mejorando un producto. Como dice Alan Zucker, director de Project Management Essentials,


Alan Zucker habla de las habilidades de DevOps

Los ingenieros de Great DevOps empiezan por entender a la gente, la cultura, y cómo funciona la organización (...) Luego construyen una estrategia que se centra en la simplificación del entorno operativo general para lograr el objetivo de la entrega continua.

Fuente: TechRepublic

Fuente de la imagen: LinkedIn


Conocimiento de herramientas y tecnologías

Hay muchas herramientas y tecnologías que podrían ser utilizadas por un ingeniero de DevOps. Y a menudo son esenciales para mantener los conceptos centrales de DevOps. Es importante ver si el candidato conoce las tecnologías que utiliza y es capaz de aprender nuevas tecnologías según sea necesario.

Gestión de la configuración

Esto significa ser capaz de configurar muchos sistemas usando herramientas de automatización.

Un ingeniero de DevOps necesita ser capaz de usar herramientas y scripts para poder desplegar y mantener la aplicación mientras resuelven cualquier problema que surja en el camino. Dependiendo de las especificaciones del puesto, también puede ser importante buscar habilidades de pruebas de gestión de seguridad.

Si bien las herramientas de gestión de la configuración son sólo una parte de la caja de herramientas a la que recurre un ingeniero de DevOps, se trata de un área que puede ponerse a prueba fácilmente, revelando mucho sobre el candidato en el camino.

Métodos de evaluación de habilidades de DevOps

Como las habilidades de DevOps varían tanto, la combinación de unos cuantos métodos de pantalla diferentes le dará los mejores resultados.

Revisa los currículos de tus candidatos para ver si tienen habilidades de DevOps.

Un currículum vitae o una pantalla de currículum es probablemente la primera cosa que la mayoría de los reclutadores harán para reducir el número de candidatos. Hemos preparado un pequeño glosario para ayudar a los reclutadores a entender lo que están buscando.

Glosario de habilidades DevOps para los reclutadores de tecnología:

Metodologías Ágil, DevOps, Entrega continua, Integración continua, Microservicios, Desarrollo basado en pruebas (TDD), Infraestructura como código
Lenguajes de escritura Bash, Python, Ruby, Perl, PHP
Automatización de la infraestructura Puppet, Chef, Ansible, Terraform
Gestión del código fuente Git, Mercurial, Subversión
Servicios de nubes AWS, Azure, Google Cloud, OpenStack
Orquestación Kubernetes, Nomad
Contenedores Docker
Gestión de proyectos Jira, Trello, Asana
Integración continua y entrega continua Jenkins, Jenkins-X, Tekton, Travis CI, CircleCI, Azure, DevOps
Prueba TestComplete, TestingWhiz, Serverspec, Testinfra, InSpec, Consumer Driven Contracts
Monitoreo Prometheus, Nagios, Icinga, Zabbix, Splunk, ELK Stack, CloudWatch, Open Telemetry

Una vez terminada la pantalla del CV, hay dos habilidades principales que se pueden probar utilizando una plataforma de pruebas automatizada.

Tanto si eres un ingeniero que despliega el código como un operador que lo mantiene en marcha, ser capaz de configurar tu servidor es una habilidad esencial. Pero esta habilidad puede ser dividida en dos partes. La primera es la gestión de la configuración, mientras que la segunda es ponerla en uso en la configuración de una máquina. Y como verán, ambas habilidades requieren diferentes herramientas para probarlas efectivamente.

La gestión de la configuración Las habilidades de DevOps requieren pruebas de codificación

Uno de los mayores puntos de dolor de un ingeniero de DevOps es la gestión manual de las diferentes configuraciones de los servidores. Esto puede ser un gran dolor, ya que convierte a los ingenieros en algo más de un bombero de operaciones en lugar de alguien que construye y despliega aplicaciones. Por lo tanto, una habilidad clave de un gran ingeniero de DevOps es la capacidad de multiplicar su efectividad escribiendo código de administración de configuraciones.

Dicho de otra manera por Adam Kadzban, ingeniero jefe de DevOps en kCura,


Adam Kadzban habla de las habilidades de DevOps

Los días de los sistemas de infraestructura configurados manualmente han terminado (...) La infraestructura necesita ser aprovisionada y configurada con código, o se ahogará en el apoyo.

Fuente: TechRepublic

Fuente de la imagen: LinkedIn


La raíz de esta actitud es el hecho de que muchas tareas manuales pueden ser automatizadas usando herramientas dedicadas como Puppet y Chef o incluso con lenguajes de programación como Python, Ruby y Bash. Así que la pregunta es ¿cuál es la mejor manera de probar estas habilidades?

Una prueba de muestra de trabajo es la mejor manera de comprobar las habilidades de escritura

Un código de títeres no es simplemente un algoritmo. En su lugar, es una aplicación que regula el sistema. Debido a esto, una prueba de muestra de trabajo es probablemente la mejor manera de probar las habilidades correctas. Hemos explorado la eficacia de pruebas de muestras de trabajo en otra parte de este blog y cómo usarlos para problemas comunes de codificación, pero ¿cómo pueden aplicarse a la escritura de código Puppet para la gestión de la configuración?

Un buen punto de partida es ver el proceso que hay que seguir para escribir un código de automatización. Es realmente muy simple,

  1. Describa la configuración en código
  2. Hagan pruebas contra ella

Lo primero que debe hacer su candidato es describir la configuración en código. Digamos que quieres que creen un módulo de Puppet para un servidor de archivos. Esta es una tarea DevOps bastante sencilla que se puede convertir en una prueba de muestra de trabajo bastante sencilla, como en esta tarea:

Tarea de títeres del servidor de archivos para probar las habilidades de DevOpsEstá bien tener un esqueleto de módulo prefabricado para apuntar a tu candidato en la dirección correcta y luego definir cómo quieres que se configure el servidor de archivos. Cuando se hace con una plataforma como DevSkiller, el código de automatización que se produce puede tener pruebas de unidad ejecutadas contra él para que pueda verificar la robustez del código y encontrar cualquier defecto.

Y no sólo Puppet puede ser probado de esta manera. Con el constructor de pruebas de DevSkiller, tu jefe técnico puede construir tareas de scripts en múltiples tecnologías, incluyendo Chef, Bash, Python, Ruby y Go. Esta prueba te dará una fuerte indicación de lo bien que un Ingeniero de DevOps puede maximizar su eficiencia.

Si un ingeniero de DevOps puede automatizar eficazmente las tareas, entonces podrá pasar a tareas de mayor nivel como la implementación de nuevas características. No sólo eso, sino que una vez que empiece a probar sus habilidades de codificación, podrá pasar a otras funciones de DevOps como probar los controles git y escribir código como infraestructura.

Pero escribir el código de automatización es sólo una parte del rompecabezas. Tarde o temprano, un ingeniero de DevOps va a tener que configurar una máquina. Esto es un problema ya que la mayoría de las empresas no se sienten cómodas con un candidato que obtiene el control de uno de sus servidores. Después de todo, piensa en los estragos que podrían causar en tu sistema. Pero lo que sería aún peor es si contratas a alguien sin saber si puede configurar un servidor sin que suceda lo peor.

Pruebe la configuración del sistema de habilidades DevOps con una máquina virtual

Un desafío de codificación puede probar cómo se ejecuta un script pero se necesita una máquina real para ver si un ingeniero de DevOps puede configurar un sistema. Esto es porque los servidores no son como un programa.

Entonces, ¿cómo puede probar si un ingeniero de DevOps puede configurar un servidor sin usar uno de los suyos? Utilice una máquina virtual. Se trata de sistemas autónomos, completamente separados de cualquiera de sus sistemas críticos, que le permiten hacer casi todo lo que quiera. Y son entornos perfectos para ver si su ingeniero de DevOps puede gestionar todas las diferentes entradas, cambios y problemas a los que se enfrenta al configurar un sistema.

Rootskiller te da una ventana a la habilidad de tu candidato para el DevOps.s

Rootskiller puede ser usado para probar las habilidades de DevOpsEn su corazón, Rootskiller es una máquina virtual. Como cualquier ordenador, puedes darle órdenes, configurar programas en él, e incluso ejecutarlo hasta el fondo si quieres. Al mismo tiempo, responde como cualquier otro sistema, procesando sus configuraciones mientras reacciona a comandos mal ejecutados y datos externos. Entonces, ¿cómo le ayuda esto a probar DevOps?

Toma una tarea como esta:

Tarea de Docker para probar las habilidades de DevOpsTodas las tecnologías involucradas son comunes que un ingeniero de DevOps utilizará para el despliegue continuo. GNU/Linux es uno de los sistemas operativos más utilizados en el lado del servidor y Docker es una herramienta común utilizada para la contenedorización. Estas son una parte esencial de un despliegue continuo, uno de los principales pilares de DevOps.

Así que después de iniciar la máquina virtual, el candidato configurará el servidor según las instrucciones presentadas pero eso no es todo. Después de que la tarea se resuelva, se realizan pruebas sobre la configuración que el candidato ha creado, comprobando si funciona, qué errores están presentes, si resuelve los casos de borde relevantes, y cuán estable es.

Además de analizar la solución real, toda la sesión se graba para un video de captura de pantalla. De esta manera, un entrevistador técnico puede ver las elecciones que hace el candidato y ver cómo reacciona a los nuevos desafíos.

Mientras que la pregunta aquí es sobre la configuración de Docker en una máquina GNU/Linux, la herramienta de construcción de pruebas significa que se puede configurar para muchas tecnologías del lado del servidor y técnicas de despliegue como La pila de lámparas.

Pruebas de Terraform para probar las habilidades de la Infraestructura como Código

Terraform es la herramienta preferida para gestionar servicios en la nube en múltiples plataformas. Utiliza su propio lenguaje específico de dominio llamado HCL, que se parece mucho a JSON. Se utiliza ampliamente para gestionar la infraestructura de la nube en varias plataformas de nube. Cuenta con un gran número de proveedores compatibles y, en realidad, es mucho más que una simple herramienta para la nube. Como ha ganado tanta popularidad a lo largo de los años, ahora es una herramienta estándar para gestionar todo desde un código declarativo. Ha sido utilizada por muchas organizaciones y se considera una herramienta esencial en la comunidad de DevOps.

Con Terraform, podemos ofrecer tareas que pongan a prueba los conocimientos prácticos sobre varios proveedores de la nube. Creemos que estas tareas se adaptan mejor al panorama actual de DevOps, en el que escribir código Terraform es tan omnipresente y requiere un conocimiento más profundo de las API de la nube.

Cómo probamos el código de Terraform

Hemos diseñado las tareas de Terraform para facilitar a los desarrolladores la creación de las suyas y para que la experiencia sea lo más fluida y rápida posible para los candidatos. No requerimos que los candidatos tengan una cuenta en el proveedor de la nube utilizado por una tarea. En realidad, ni siquiera requerimos la instalación de Terraform - todo lo que un candidato necesita es saber cómo escribir código Terraform que cumpla con los requisitos especificados en una tarea. TalentScore realizará una ejecución en seco (es decir, ejecutará el comando "terraform plan") y evaluará los resultados devueltos por el comando. Los recursos en la nube definidos en el código enviado por los candidatos no se crearán, por lo que los resultados se devolverán inmediatamente al candidato. Esto ahorra mucho tiempo y evita cualquier problema potencial que pudiera surgir si la plataforma creara realmente estos recursos.

Para obtener una mejor experiencia de las tareas de Terraform, recomendamos a los candidatos que instalen Terraform en sus estaciones de trabajo junto con algún software de comprobación de sintaxis. Recomendamos VS Code con la extensión oficial de Terraform. Soporta un servidor de lenguaje que proporciona autocompletado y documentación incorporada. Con esta configuración, trabajar con el código de Terraform es rápido y menos propenso a errores.

Qué hacer a continuación

Una vez que haya hecho una pantalla de currículum, haya probado las habilidades de escritura de su candidato y haya visto lo bien que pueden configurar un sistema, traiga a los mejores candidatos para una entrevista. Esto puede implicar una combinación de emparejamiento de códigos y preguntas de comportamiento.

Pero antes de que lo hagas, comprueba DevSkiller para ver lo fácil que es filtrar automáticamente las habilidades de DevOps y para las habilidades de la Infraestructura como Código, por favor, compruebe también lo que las pruebas de Terraform debe tener el siguiente aspecto.

Compartir correo

Más información sobre la contratación de tecnología

Suscríbase a nuestro Learning Hub para recibir información útil directamente en su bandeja de entrada.

Verificar y desarrollar las habilidades de codificación sin problemas.

Vea los productos DevSkiller en acción.

Certificaciones de seguridad y cumplimiento. Nos aseguramos de que sus datos estén seguros y protegidos.

El logo de DevSkiller Logotipo de TalentBoost Logotipo de TalentScore