El término DevOps ha pasado del dominio de los especialistas en tecnología al vocabulario corporativo general en los últimos años. En resumen, se refiere a un conjunto de prácticas que unen el desarrollo de software (Dev) y las operaciones de TI (Ops) para aprovechar la colaboración y la eficiencia.
DevOps mejora enormemente la estrategia de desarrollo de software de una empresa. El problema es que no es fácil: según un estudio de Gartner, el 75% de las iniciativas DevOps en 2022 fracasarán. Sin los expertos adecuados en DevOps, es probable que sufras el mismo destino.
Sin embargo, con un proceso de reclutamiento bien planificado, es posible hacer una gran contratación y transformar la estrategia de software de tu empresa utilizando una prueba de habilidades DevOps en combinación con las siguientes preguntas de entrevista durante el proceso de selección de candidatos.
Siempre que sea posible, adapta las preguntas de entrevista a los requisitos DevOps de tu empresa. Con las 50 preguntas de entrevista de DevOps a continuación, que abaran diferentes temas y niveles de experiencia, puedes hacer exactamente eso.
Y si no encuentras lo que buscas en las preguntas a continuación, considera consultar nuestras preguntas de entrevista de DevOps específicas del puesto, como nuestras preguntas de entrevista de DevOps para Linux.
Nuestras preguntas de entrevista de DevOps para principiantes están diseñadas para puestos de ingeniero de DevOps junior o de nivel básico, donde los candidatos tienen una experiencia profesional limitada con el marco de DevOps.
Respuesta de ejemplo
DevOps es un conjunto de prácticas, herramientas y filosofías utilizadas para mejorar la comunicación y la colaboración entre los diferentes equipos durante la entrega nuevo software. En pocas palabras, tiende un puente entre los desarrolladores y el personal de TI.
El objetivo de DevOps es integrar la automatización y la supervisión en todas las etapas del ciclo de vida de desarrollo de software. Esto mejora la velocidad a la que se pueden entregar nuevos sistemas y aplicaciones.
Respuesta de ejemplo
Las empresas utilizan distintos tipos de herramientas DevOps, entre las que se incluyen:
Herramientas de control de versiones, como Git
Herramientas de integración continua, como Jenkins
Herramientas de gestión de la configuración, como Puppet
Herramientas de contenerización, como Docker
Herramientas en la nube, como AWS
Herramientas de monitoreo, como Nagios
Respuesta de ejemplo:
DevOps abarca varios procesos diferentes dentro del ciclo de vida del desarrollo de software. Como tal, los ingenieros DevOps deben tener una amplia gama de habilidades técnicas y blandas, incluyendo:
Sólida comprensión de DevOps
Habilidades de comunicación y de trabajo en equipo
Habilidades de seguridad de software
Habilidades de tecnología en la nube
Respuesta de ejemplo:
DevOps surgió en gran medida como alternativa a los flujos de trabajo Agile como Scrum. Las principales diferencias incluyen:
DevOps reúne a todos los equipos implicados en el desarrollo y mantenimiento de software, mientras que Agile suele aislar tareas específicas en diferentes equipos
DevOps enfatiza la consistencia, la estabilidad y la automatización, mientras que Agile se centra en la adaptabilidad y el desarrollo iterativo
DevOps abarca todo el flujo del software desde la idea hasta la entrega y el mantenimiento, mientras que Agile generalmente finaliza con la finalización del código
Respuesta de ejemplo:
La gestión de la configuración (CM) es el proceso en el que los sistemas de software se automatizan, actualizan, monitorean y administran. Ayuda a reducir el riesgo de fallas inesperadas del sistema y ofrece una mayor agilidad para el personal que trabaja en la estrategia DevOps.
Respuesta de ejemplo:
La integración continua (CI - Continuous integration) es el proceso en el que la integración de los cambios de código en un proyecto de software se automatiza. Permite a los desarrolladores fusionar los cambios de código en un único repositorio cada vez que se realiza un cambio nuevo, mejorando así la colaboración y la transparencia.
Respuesta de ejemplo:
Las pruebas continuas implican la comprobación periódica del software en cada fase del ciclo de vida del desarrollo para garantizar que cualquier error se corrija rápidamente. Proporciona información continua para que los desarrolladores puedan evaluar la calidad del software durante todo el proceso de entrega.
Respuesta de ejemplo:
Las pruebas de automatización son el proceso de revisión y validación automática de secuencias de comandos para verificar la funcionalidad del programa. Se realiza con una intervención humana mínima, por lo que puede llevarse a cabo con mayor rapidez.
Respuesta de ejemplo:
El monitoreo continuo se refiere al seguimiento regular del software en todas las etapas del ciclo de vida del desarrollo para garantizar el rendimiento, la confiabilidad y el cumplimiento de la aplicación y la infraestructura. Esto proporciona transparencia y facilita la detección temprana de cualquier problema.
Respuesta de ejemplo:
La ramificación es una técnica utilizada por los desarrolladores en los sistemas de control de versiones, mediante la cual el código fuente se copia para crear dos versiones que se desarrollan por separado. Estas ramas pueden ser desarrolladas de manera independiente sin afectar la base de código, promoviendo así la colaboración.
Respuesta de ejemplo:
Jenkins es la herramienta de integración continua y entrega continua (CI/CD) más popular del mercado al día de hoy. Prácticamente todos los equipos de DevOps confían en Jenkins para automatizar partes del desarrollo de software relacionadas con la compilación, prueba y despliegue de aplicaciones.
Respuesta de ejemplo:
El desarrollo de aplicaciones consta de las siguientes operaciones principales::
Programación
Pruebas unitarias
Empaquetado
Despliegue
La infraestructura consiste en:
Aprovisionamiento
Configuración
Monitoreo
Despliegue
Respuesta de ejemplo:
Git es un popular sistema de control de versiones de código abierto que se utiliza para realizar un seguimiento de los cambios en el código fuente, crear múltiples scripts y, en definitiva, mejorar la colaboración entre desarrolladores. Es una herramienta fundamental en la fase de programación del ciclo de vida del desarrollo de software.
Respuesta de ejemplo:
SSH, o Secure Shell, es un protocolo de red para cifrar de forma segura cualquier dato compartido desde una computadora a través de una red. Crea un canal seguro independiente para la comunicación y el intercambio de datos que se superpone a las redes no seguras.
Respuesta de ejemplo:
Los sistemas de control de versiones mejoran la eficacia de la programación. Esto se consigue mediante:
Trazabilidad: El control de versiones rastrea los cambios en el código de todos los desarrolladores, proporcionando un historial claro que ayuda a mejorar la funcionalidad del software
Ramificación: El control de versiones permite a los desarrolladores trabajar en el código de manera independiente sin afectar a las contribuciones de otros colaboradores
Reducción de errores: El control de versiones ayuda a detectar la causa raíz de los errores de software, así como cualquier duplicación para facilitar su eliminación
Respuesta de ejemplo:
Los antipatrones son ideas que van en contra de la filosofía DevOps. A menudo solucionan un problema a corto plazo a costa de un objetivo a largo plazo. Algunos ejemplos incluyen:
DevOps es un proceso más que una cultura
DevOps está impulsado por el desarrollo o por las operaciones de TI, más que por una combinación de ambos
Respuesta de ejemplo:
La computación en la nube proporciona una plataforma de comunicación centralizada y escalable para los equipos de DevOps en cada etapa del ciclo de vida del desarrollo de software. Permite a los miembros del equipo colaborar de forma más rápida y estrecha.
Estas preguntas intermedias de entrevista de DevOps son perfectas para puestos de nivel medio, en los que los candidatos ya tienen cierta experiencia profesional con el marco DevOps.
Respuesta de ejemplo:
El ciclo de vida de desarrollo de software consiste en la planificación, programación, construcción, pruebas, lanzamiento, despliegue y monitoreo. Cuando se aplica a DevOps, hay cuatro fases clave:
Integración continua, que incluye las etapas de programación y compilación
Entrega continua, que consta de las etapas de prueba y lanzamiento
Implementación continua, que incluye las etapas de lanzamiento e implementación
Feedback continuo, que consiste en la etapa de monitoreo
Respuesta de ejemplo:
Cuando se implementa de manera efectiva, DevOps transforma los negocios. Los beneficios clave incluyen:
Tiempos de implementación más rápidos
Entorno de trabajo más colaborativo
Mejora de la experiencia del cliente
Detección temprana de defectos
Mejor resolución de defectos
Tiempo ahorrado gracias a la automatización
Respuesta de ejemplo:
La entrega continua y la implementación continua son dos partes del proceso de integración continua:
La entrega continua despliega todos los cambios de código en un entorno de pruebas o de producción
El despliegue continuo libera automáticamente los nuevos cambios a los clientes
Respuesta de ejemplo:
Docker es una herramienta de contenerización utilizada por los equipos de DevOps durante la etapa de implementación continua. Empaqueta aplicaciones y todos sus componentes dentro de contenedores de software, que luego están listos para implementarse en diferentes sistemas operativos.
Respuesta de ejemplo:
CAMS (culture, automation, measurement, sharing) es un acrónimo que describe cuatro de los principios clave de DevOps. Estos son
Cultura: DevOps se basa en una cultura de colaboración y transparencia
Automatización: DevOps establece sistemas repetibles (o automatizados) para reducir errores y ahorrar tiempo
Medición: DevOps se basa en el seguimiento continuo del rendimiento y el feedback para mejorar la eficiencia
Compartir: Los equipos DevOps comparten toda la información y el feedback, incluyendo los problemas
Respuesta de ejemplo:
Los desarrolladores disponen de dos estrategias principales de ramificación:
Ramificación por lanzamiento, que crea una rama para una posible nueva versión
Ramificación por características, que crea una rama para funciones o tareas específicas
Respuesta de ejemplo:
En el campo de DevOps existe una amplia gama de KPI. Algunos de los más efectivos incluyen:
Frecuencia de implementación: Mide la frecuencia con la que se lanzan nuevas funcionalidades
Volumen de cambios: Mide hasta qué punto se modifica el código en las nuevas implantaciones
Tasa de error en las implementaciones: Mide la frecuencia con la que las nuevas implementaciones provocan interrupciones u otros problemas
Tiempo de implementación: Mide el tiempo que se tarda en implementar nuevas versiones
Tiempo medio de recuperación: Mide el tiempo promedio que se tarda en recuperarse de una falla del sistema
Respuesta de ejemplo:
Puppet es una herramienta de código abierto ampliamente utilizada para la gestión de configuración de software. Permite pruebas automatizadas, integración continua y entrega continua. Está específicamente diseñada para sistemas Windows y Linux.
La infraestructura de Puppet se compone de dos entornos principales: el entorno del servidor principal, que almacena todos los códigos, y el entorno del cliente, desde el cual los clientes se comunican con el servidor principal.
Respuesta de ejemplo:
Las pruebas automatizadas son el proceso de automatización de un conjunto de tareas para mejorar la velocidad y reducir los errores.
Las pruebas continuas, en cambio, abarcan un ámbito más amplio de aplicaciones. Se centra en los riesgos empresariales y se propone lograr mejoras continuas que mitiguen dichos riesgos.
Respuesta de ejemplo:
Nagios es un sistema de monitoreo de código abierto ampliamente utilizado que realiza comprobaciones periódicas de los parámetros críticos de servidores, redes y aplicaciones.
Mantiene a los equipos de DevOps informados sobre aspectos como la memoria, el uso del disco, los archivos de registro y la carga del microprocesador. Al admitir el monitoreo continuo, Nagios alerta al personal técnico de los problemas antes de que se materialicen y afecten al usuario final.
Respuesta de ejemplo:
La gestión de la configuración se refiere a la administración de activos como entidades dentro del ciclo de desarrollo de software. Esto implica revisar la precisión y confiabilidad de diferentes elementos de configuración, así como las relaciones que tienen entre sí.
La gestión de activos, por otro lado, revisa estos activos desde una perspectiva financiera. Hace un seguimiento de los elementos desde el momento de su adquisición hasta su eliminación, para determinar si ofrecen suficiente valor económico a la empresa.
Respuesta de ejemplo:
Ansible es una herramienta de automatización DevOps popular que se utiliza durante las fases de compilación, configuración y administración. Al automatizar procesos como las pruebas y la implementación, Ansible ayuda a los equipos de DevOps a ahorrar tiempo, reducir errores y escalar al ritmo de la demanda creciente.
Respuesta de ejemplo:
La programación en pareja es una técnica de programación popular en la que dos desarrolladores trabajan juntos en la misma tarea, compartiendo una única computadora. Normalmente, un desarrollador escribirá el código, mientras que el otro revisará cada línea de código a medida que se escribe.
Respuesta de ejemplo:
Chef es una herramienta popular de gestión de configuración que respalda la entrega continua al automatizar procesos en varias etapas de DevOps. Utilizando el lenguaje de programación Ruby, Chef traduce las tareas del sistema en acciones repetibles, conocidas como recetas (recipes) y libros de cocina (cookbooks).
Respuesta de ejemplo:
Los equipos DevOps suelen utilizar las reuniones post-mortem entre el lanzamiento de una nueva iteración y la fase de planificación de la siguiente. Los miembros del equipo discuten los éxitos y fracasos del proyecto anterior, reflexionando sobre lo que se puede mejorar la próxima vez.
Respuesta de ejemplo:
Selenium es un popular framework de código abierto para probar aplicaciones web. Es ampliamente utilizado por los equipos de DevOps, lo que les permite implementar pruebas automatizadas sin necesidad de utilizar un lenguaje formal de scripting de pruebas.
Respuesta de ejemplo:
Las herramientas de computación en la nube como AWS y Azure son compatibles con las fases de CI/CD (integración continua y desarrollo continuo) del ciclo de vida de DevOps. Permiten a los equipos de DevOps compartir código, seguir el trabajo e implementar software de forma remota, en cualquier plataforma.
Nuestras preguntas avanzadas de entrevistas de DevOps han sido cuidadosamente seleccionadas para puestos senior de DevOps, en los que los candidatos ya cuentan con una experiencia profesional significativa en este campo.
Respuesta de ejemplo:
El rendimiento de una iniciativa DevOps puede mejorarse de las siguientes maneras:
Diseñar una hoja de ruta clara durante la fase de planificación
Utilizar indicadores clave de rendimiento (KPI) basados en la eficiencia
Utilizar almacenamiento centralizado
Realizar pruebas de regresión
Centrarse en la cultura más que en los procesos
Actualizar la infraestructura DevOps
Respuesta de ejemplo:
Las prácticas de seguridad deben incorporarse a cada paso del ciclo de vida de DevOps. Para implementarlas, los equipos pueden:
Formalizar las políticas de ciberseguridad dentro del equipo
Utilizar la gestión de accesos privilegiados
Utilizar la gestión de secretos
Segmentar el acceso a la red
Automatizar los procesos de seguridad
Respuesta de ejemplo:
El término "desplazamiento a la izquierda para reducir fallos", o simplemente "desplazamiento a la izquierda", se refiere a los esfuerzos dentro de los equipos de DevOps para identificar defectos tan temprano como sea posible en el ciclo de vida del desarrollo de software. Básicamente, implica realizar pruebas regulares al principio del proceso de desarrollo en lugar de al final.
Respuesta de ejemplo:
El patrón de implementación azul-verde es una estrategia de implementación que tiene como objetivo reducir los riesgos de las nuevas versiones. Se trata de ejecutar dos entornos de producción independientes (azul y verde), uno para el sistema de producción actual y otro para preparar la nueva versión.
Una vez finalizadas las pruebas y desplegado el software, el tráfico se desplaza gradualmente del antiguo entorno de producción a la nueva versión. La nueva versión se pone en funcionamiento y, una vez transferido todo el tráfico, el antiguo entorno de producción queda inactivo.
Respuesta de ejemplo:
El patrón de despliegue canario es una estrategia de implementación que tiene como objetivo minimizar el impacto de posibles defectos en una nueva versión de software. Consiste en desplegar las actualizaciones a un pequeño subconjunto de usuarios antes de ponerlas a disposición universal.
El equipo de desarrollo utiliza un router balanceador de carga para dirigir rutas individuales con la nueva versión. Tras el lanzamiento, se recopilan métricas para evaluar el rendimiento de la actualización, y se toma una decisión sobre si la versión está lista para desplegarse a mayor escala.
Respuesta de ejemplo:
La infraestructura como código (IaC, por sus siglas en inglés) es la gestión de la infraestructura de una aplicación a través de software (código) en lugar de procesos manuales.
El concepto de infraestructura como código se puede implementar en varias etapas del ciclo de vida de DevOps (control de versiones, integración continua y pruebas automatizadas) mediante la escritura de código. Este proceso facilita cambios más eficientes, confiables y seguros en las aplicaciones.
Respuesta de ejemplo:
Git fetch y git pull son dos comandos importantes en GitHub que a menudo se confunden entre sí.
Git fetch recupera los últimos datos del repositorio remoto, pero sin integrar estos datos en las ramas de trabajo. Git pull, por otro lado, recupera y actualiza las ramas locales con la nueva información de sus correspondientes ramas remotas.
Respuesta de ejemplo:
Git merge y git rebase son dos comandos en GitHub utilizados para integrar cambios de una rama en otra. Sin embargo, integran estos cambios de diferentes maneras.
Un git merge crea un nuevo commit a partir de la rama principal, mientras que un git rebase reescribe los cambios de una rama sobre otra sin crear un nuevo commit.
Respuesta de ejemplo:
La contenerización y la virtualización son los dos métodos más populares para alojar aplicaciones en un sistema informático.
La virtualización permite a los desarrolladores ejecutar varios sistemas operativos en el hardware de un único servidor físico. La contenerización permite a los desarrolladores desplegar múltiples aplicaciones bajo el mismo sistema operativo en una única máquina o servidor virtual.
Respuesta de ejemplo:
La prueba de regresión evalúa el comportamiento de una aplicación después de que se ha implementado un nuevo cambio. Se debe realizar entre las pruebas de integración y las pruebas de usuario.
La prueba de regresión se puede implementar verificando el código original después de que se hayan realizado nuevos cambios o evaluando cómo las actualizaciones afectan el rendimiento. También se puede automatizar.
Respuesta de ejemplo:
Los servicios en la nube y locales son las dos principales vías de alojamiento de datos disponibles para los equipos de DevOps. Con los servicios locales, los datos se almacenan en servidores internos. Con los servicios en la nube, los datos se alojan de forma remota en un proveedor externo.
Existen ventajas y desventajas para ambas estrategias, que se pueden resumir de la siguiente manera:
Los servicios en la nube ofrecen menos control de seguridad sobre los datos y la infraestructura, pero escalan mejor, ofrecen servicios adicionales y típicamente tienen costos más bajos
Los servicios locales vienen con grandes costos de mantenimiento y amenazas de seguridad únicas, pero brindan un mayor control y un alcance de personalización más amplio
Respuesta de ejemplo:
El balanceo de carga es el proceso de distribuir uniformemente el tráfico de red entrante entre un grupo de servidores back-end. Se produce durante la fase de implementación del ciclo de vida de DevOps y suele ser automatizado por los desarrolladores.
Respuesta de ejemplo:
Todo equipo de DevOps debería tener un framework de resolución de problemas establecido. Algunas de las mejores prácticas para la resolución de problemas son:
Definir las responsabilidades de resolución de problemas dentro del equipo
Recopilar información relevante, incluyendo métricas, registros y errores
Plantear hipótesis sobre las causas potenciales y descartarlas una a una
Supervisar de cerca el comportamiento una vez solucionado el problema
Informar sobre la resolución del problema
Respuesta de ejemplo:
Los tres tipos principales de servicios de computación en nube son:
Infraestructura como servicio (IaaS), que proporciona acceso basado en Internet a almacenamiento y potencia de cálculo, mientras que el desarrollador es responsable de administrar todo lo demás
Plataformas como servicio (PaaS), que ayuda a los desarrolladores a crear aplicaciones web sin necesidad de gestionar la infraestructura subyacente, como redes, servidores y almacenamiento
Software-as-a-Service (SaaS), que aloja todos los componentes de la aplicación de software, incluidos servidores, almacenamiento, datos y la propia aplicación
Respuesta de ejemplo:
El monitoreo es un proceso de seguimiento y recopilación de datos que ayuda a los equipos de DevOps a comprender mejor el estado actual de sus sistemas. Por otro lado, la observabilidad utiliza estos hallazgos para diagnosticar problemas y resolverlos activamente mediante la depuración.
Respuesta de ejemplo:
Con el control de versiones centralizado, el repositorio remoto del servidor proporciona el código más reciente a las máquinas cliente. Con el control de versiones descentralizado o distribuido, la base de código completa se pone a disposición en el repositorio local de cada computadora.
Nuestras preguntas de entrevista de DevOps deben guardarse para las etapas finales de tu proceso de selección. Antes de programar entrevistas, debes implementar varias etapas de evaluación para filtrar las aplicaciones iniciales e identificar a los candidatos más prometedores.
La mejor manera de hacerlo es utilizar una evaluación de habilidades DevOps como primera etapa de aplicación. Las pruebas de habilidades se pueden adaptar a las necesidades de tu puesto vacante y te permitirán descartar inmediatamente a los candidatos inadecuados y seleccionar a los mejores para invitarlos a una entrevista.
Existe una amplia gama de evaluaciones de DevOps disponibles, lo que te permite estructurar tu proceso de reclutamiento para que se adapte a las necesidades específicas de tu negocio. Algunas de las evaluaciones de DevOps que podrías considerar son:
Una prueba de DevOps, que cubre el alcance completo de los conceptos de DevOps
Una prueba de Docker, que se centra en la herramienta estándar de contenerización de DevOps, Docker
Una prueba de AWS, que se centra en la popular herramienta en la nube de DevOps, AWS
Como los roles dentro de un equipo DevOps varían mucho, es fundamental adaptar tus evaluaciones para lograr el mejor resultado.
Para obtener una comprensión profunda de las habilidades de tus candidatos, puedes combinar las pruebas de habilidades DevOps con otras evaluaciones específicas del puesto, pruebas de capacidad cognitiva, o pruebas de personalidad y cultura. Con TestGorilla, puedes combinar hasta 5 pruebas de habilidades en una sola evaluación, lo que te ayudará a identificar rápidamente a los mejores candidatos.
La mejor manera de mejorar la calidad de tus contrataciones es utilizar preguntas y tareas específicas del puesto junto con otros métodos confiables, como evaluaciones de habilidades blandas y la prueba de Afinidad Cultural.
Para obtener los mejores resultados, las evaluaciones deben adaptarse a tus necesidades específicas de contratación. Esto también aplica a las entrevistas, donde debes seleccionar las preguntas basándote en los requisitos del puesto.
Por ejemplo, si estás buscando contratar a alguien para trabajar principalmente en el despliegue de software, asegúrate de preguntar sobre su experiencia con Docker e incluir algunas preguntas de entrevista difíciles sobre Docker. Si necesitas a alguien con experiencia en Linux, considera añadir algunas preguntas de entrevista sobre comandos de Linux. Y, si está buscando ingenieros capacitados en confiabilidad del sitio, consulte nuestras preguntas de la entrevista SRE.
Determinar la mejor estrategia para contratar a un ingeniero DevOps es un asunto complejo, después de todo, el puesto apenas lleva una década existiendo. El proceso de reclutamiento debe abordarse de la misma manera que cualquier otro puesto: investiga y selecciona cuidadosamente las evaluaciones que reflejen los requisitos del puesto.
Al adaptar tu proceso de selección a las necesidades específicas del puesto y al framework integral de DevOps, podrás encontrar un candidato que contribuya desde el primer día. Con los miembros adecuados en el equipo, tu empresa podrá aprovechar al máximo su estrategia de desarrollo de software.
Empieza hoy mismo con TestGorilla y toma mejores decisiones de contratación, de forma más rápida y libres de prejuicios.
Crea evaluaciones previas al empleo en minutos para evaluar a los candidatos, ahorrar tiempo y contratar a los mejores talentos.
Sin spam. Cancela la suscripción en cualquier momento.
Nuestras pruebas de selección identifican a los mejores candidatos y hacen tus decisiones de contratación más rápidas, fáciles y libres de prejuicios.