DevOps se está convirtiendo cada vez más en una forma popular de crear e implementar aplicaciones, lo que se ha traducido en una creciente demanda de profesionales de DevOps.
Este artículo cubrirá algunas de las preguntas más frecuentes de la entrevista de DevOps y sus respuestas. El uso de estas preguntas como base para el estudio puede aumentar sus posibilidades de ser contratado o, si es un reclutador, pueden ayudarlo en el proceso de contratación.

Preguntas y respuestas frecuentes de la entrevista de DevOps
What is DevOps?
DevOps es la forma abreviada de desarrollo y operaciones. Esta práctica de ingeniería de software reúne a los equipos de desarrollo y operación para automatizar cada etapa de un proyecto. Un equipo de DevOps se enfoca en Gestión de recursos, comunicación y trabajo en equipo.
DevOps es un enfoque destinado a mejorar el trabajo a lo largo del ciclo de vida del desarrollo de software. El proceso DevOps se representa como un ciclo infinito, que comprende las etapas de planificación, codificación, construcción, prueba, lanzamiento, implementación, operación y monitoreo..
DevOps influye en el ciclo de vida de la aplicación a lo largo de sus fases de planificación, desarrollo, entrega y operación. Cada fase depende de las demás y las fases no son específicas de un rol. En una verdadera cultura DevOps, cada rol está involucrado en cada fase hasta cierto punto.
What are the different phases in DevOps methodology
- Desarrollo continuo. Esta es la fase de planificación y codificación.
- Integración continua. Esta es la fase en la que el equipo de desarrollo integra diferentes componentes y se asegura de que el código no se rompa.
- Pruebas continuas. Esta es la fase de prueba preprogramada y automatizada.
- Despliegue continuo. Esta fase garantiza un desarrollo sin problemas, que no afecta el rendimiento de toda la aplicación.
- Monitoreo continuo. Esta fase garantiza la eficacia general de la aplicación.
- Retroalimentación continua. Se analizan los problemas y el rendimiento, según lo informado por los usuarios finales.
- Operaciones continuas. Permite a los desarrolladores crear mejores versiones del producto y detectar problemas rápidamente.
What are the benefits of DevOps?
Los equipos que adoptan un enfoque DevOps tienden a realizar sus proyectos más rápido. De esta forma, se evitan errores de comunicación, facilitando la rápida implementación de mejoras y otros cambios necesarios. El enfoque DevOps fomenta una mayor colaboración entre los equipos de desarrollo y operaciones, donde los objetivos de todos ellos están más alineados. Puede resumir algunos de los beneficios de la siguiente manera:
- Comunicacion mejorada
- Trabajo en equipo y cohesión
- Colaboración mejorada
- Entrega más rápida de productos de calidad.
- Complejidad reducida y resolución rápida de problemas
- Mayor escalabilidad y flexibilidad para agregar código nuevo
- Entornos operativos más estables
- Mayor automatización
- Reducción de costos y utilización de recursos
- Seguridad a través de herramientas integradas y automatizadas
Name some DevOps tools
- Herramientas de Integración Continua como Jenkins
- Control de versiones como Git
- Construir herramientas como Maven
- Herramientas de gestión de la configuración como chef
- Plataformas de contenedores como Docker
Name some DevOps KPI
- Frecuencia de implementación
- Cambiar el volumen
- Tiempo de implementación
- Tasas de implementación fallidas
- Detección de tiempo
- Tasa de escape de defectos
What is CI/CD, and what are its benefits?
Integración continua (CI)
CI combina herramientas y prácticas que facilitan la entrega de software rápido y de alta calidad. De esta forma se eliminan cuellos de botella y se evitan problemas técnicos en las fases de lanzamiento.
Entrega continua (CD)
Esta práctica automatiza la entrega de cambios de código, asegurando que el código pueda complementarse rápidamente en producción y que las aplicaciones funcionen correctamente.
Despliegue continuo (CD)
A diferencia de la entrega continua, el objetivo de esta práctica es que no haya intervención humana al implementar el software en producción. La publicación de código nuevo o modificado en producción está automatizada.
CI / CD implementa DevOps durante todo el ciclo de vida de la aplicación. Estas prácticas ayudan a mejorar la productividad en las diferentes fases del proceso de desarrollo de software al optimizarlas y automatizarlas.
What is microservices architecture, and how is it different from traditional architecture?
El método tradicional de escribir software es monolítico. Significa que todas las funciones de una aplicación están reunidas en un solo bloque. En caso de errores o necesidad de actualización, se analiza el código que rige todo el producto.
Genera paradas o incluso cuelgues y representa un gran peligro para la conservación del código. Para los clientes, significa pérdidas y dolores de cabeza.
En una arquitectura de microservicios, las funciones de una aplicación representan un servicio integrado y desarrollado de forma independiente. Los componentes están separados pero trabajan juntos para realizar las tareas correlacionadas.
De esta forma, cada servicio independiente funciona sin interferir con los demás, lo que también se aplica en casos de falla. Si una función falla, es posible ajustarla sin comprometer el funcionamiento de toda la aplicación.
Llegan los microservicios para hacer aún más DevOps ágil y eficiente, acelerando el desarrollo de extremo a extremo y haciendo que las aplicaciones sean aún más escalables.
Difference between DevOps and Agile
DevOps es una cultura que fomenta la colaboración entre todos los miembros del equipo involucrados en el desarrollo y mantenimiento de software.
Agile es una metodología de desarrollo diseñada para hacer que los equipos sean productivos e impulsar lanzamientos en función de las necesidades cambiantes.
What is Infrastructure as code?
La infraestructura como código es el enfoque para definir la infraestructura informática y de red, que utiliza técnicas de gestión de código fuente y se trata como cualquier sistema de software.
Este código se puede mantener en control de fuente para permitir la audibilidad y la construcción reproducible, sujeto a prácticas de prueba y la disciplina completa de Entrega continua.
Infraestructura como código se basa en algunas prácticas:
- Usar archivos de definición
- Sistemas y procesos autodocumentados
- Versionar todos los elementos
- Pruebas continuas de sistemas y procesos.
- Pequeños cambios en lugar de lotes
- Mantenga los servicios disponibles continuamente
What is the Role of AWS in DevOps?
AWS tiene un conjunto de servicios flexibles que ayudan a las empresas a desarrollar aplicaciones de manera confiable y rápida. Los servicios de AWS simplifican la implementación de código, el aprovisionamiento y la simplificación de la infraestructura, la automatización de los procesos de lanzamiento de software y la supervisión del rendimiento de la infraestructura.
What is the use of SSH?
SSH (Secure Shell) es un protocolo que permite una conexión segura entre diferentes ordenadores. SSH tiene diferentes propósitos, como ofrecer; autenticación fuerte, cifrado fuerte, mantenimiento de la integridad de la conexión, conexión fuerte y seguridad.
What is a DevOps Pipeline?
La canalización de DevOps es un proceso que abarca varios pasos antes de lanzar un nuevo software. Se puede aplicar en todas las fases del proyecto, desde la integración y las pruebas hasta la entrega y el despliegue. En general, pasa por las siguientes etapas y equipos:
- Visión del Producto: define las características del producto;
- Equipo de desarrollo: se desarrolla de forma iterativa e incremental;
- Área de operación: implementa y mantiene ambientes estables;
- Seguimiento y retroalimentación: buscan generar valor y aprovechamiento por parte del cliente.
What is configuration management?
Es el proceso de ingeniería de un sistema para establecer y mantener la consistencia del rendimiento y los atributos funcionales y físicos de un sistema/producto a lo largo de su ciclo de vida.
What is continuous testing?
Se trata de pruebas preprogramadas y automatizadas de una aplicación a medida que avanza el desarrollo.
What is Git?
Esta es una herramienta gratuita y de código abierto para la gestión del código fuente. Esta herramienta está diseñada para manejar proyectos pequeños y grandes.
Mention some basic Git commands
- clonar
git clone <https://name-of-the-repository-link>
- Rama de Git
git branch <branch-name>
- finalizar la compra
git checkout <name-of-your-branch>
- Git añadir
git add <file>
- Confirmar
git commit -m "commit message"
- empujar
git push <remote> <branch-name>
- Git tirar
git pull <remote>
Explain the difference between Git merge and Git rebase
El comando de fusión de Git permite a los desarrolladores fusionar diferentes ramas de Git mientras los registros de confirmaciones de las respectivas ramas permanecen intactos.
El comando Git rebase permite a los desarrolladores integrar cambios de una rama a otra, y los registros se modifican una vez que se completa el proceso.
Explain the difference between Git fetch and Git pull
Git fetch le dice a git que recupere/verifique los últimos metadatos del original. Sin embargo, no realiza ninguna transferencia de archivos, solo verifica.
Git pull verifica y trae los cambios del repositorio remoto al proyecto local.
What is a merge conflict?
Los conflictos de fusión ocurren cuando fusionas dos ramas con confirmaciones en competencia. Los conflictos de fusión generalmente ocurren cuando diferentes desarrolladores cambian la misma línea de código o archivo.
What is version control, and What are the different types?
El control de versiones (control de código fuente) es el proceso de seguimiento y gestión de cambios en el código de software.
Estos son los diferentes tipos de controles de versión;
- Centralizado– tener una sola copia "central" del código fuente en un servidor y todos los cambios se envían a la copia "central". Subversion (SVN) y Perforce son ejemplos de controles de versión centralizados.
- Distribuido (DVCS)-no tiene un servidor central para almacenar todos los archivos del proyecto. Git y Mercurial son ejemplos de DVCS.
What are the benefits of using version control?
- Ayuda a los desarrolladores a preservar la eficiencia y la agilidad
- Proporciona un registro completo de cada cambio en un proyecto/archivo
- Mejorar la trazabilidad
- Ayuda en la gestión de fusiones y ramificaciones.
- Permite la colaboración
What is branching?
La bifurcación se refiere a la creación de una versión separada/nueva del repositorio principal. Las ramas le permiten trabajar en varias partes del proyecto sin afectar la rama principal.
What are Branching strategies?
Las estrategias de fusión son las metodologías que adoptan los equipos de desarrollo de software al escribir, fusionar e implementar código. Este enfoque garantiza que los errores y fallas se solucionen en una etapa de rama antes de que se fusionen con el proyecto principal.
Explain a few types of tests used in DevOps?
Pruebas unitarias
Prueban una pieza específica de código de forma aislada. Las pruebas unitarias no deben estar conectadas a la base de datos, usar el sistema de archivos, hablar con sistemas externos o interactuar con los componentes del sistema. Les permite ejecutarse rápidamente y obtiene comentarios rápidos si los cambios han roto la funcionalidad existente.
Pruebas de componentes
Prueban grandes grupos de funciones para poder identificar problemas como estos. Por lo general, son más lentos y requieren una configuración más compleja y más E/S para conectarse a una base de datos, un sistema de archivos u otros sistemas.
Pruebas de implementación
Dichas pruebas verifican que la implementación funcionó, en otras palabras, que su aplicación está correctamente instalada, configurada, puede acceder a los servicios que necesita y está respondiendo.
Además de estos, también existen pruebas de explotación y usabilidad. Para saber más sobre las pruebas, consulta el artículo sobre tipos de pruebas de aplicaciones.
What is automation testing, and how to automate testing in DevOps?
La prueba de automatización es una técnica de revisión y validación automática del código. Las pruebas de automatización se realizan para verificar si se han cumplido los estándares de calidad para la funcionalidad (lógica comercial), el estilo del código y la experiencia del usuario.
Las pruebas de automatización se realizan con herramientas como Selenium y Katalon.
What is Build Automation, and what are some build automation tools?
Las herramientas de automatización de compilación especifican cómo se debe compilar el software (qué pasos deben realizarse y en qué orden) y qué dependencias se requieren (qué otro software debe estar presente para que la compilación sea exitosa).
Algunas herramientas son más adecuadas para proyectos en lenguajes de programación específicos, como Maven y Apache's Ant, que, si bien la tecnología se puede usar con otros lenguajes, se usan principalmente en proyectos Java. Otros, como Hudson o Jenkins, se pueden usar más ampliamente con varios proyectos.
What is Jenkinsfile?
Jenkinsfile es un archivo de texto que contiene la definición de un tubería de Jenkins. Jenkinsfile está registrado en el repositorio de control de código fuente. Algunos de sus usos son; permite una pista de auditoría para la canalización, permite la revisión del código y la iteración en la canalización, y brinda una única fuente de verdad en la canalización.
Explain the architecture in Jenkins
Jenkins tiene una arquitectura maestro-esclavo. Esto significa que hay muchos 'esclavos' trabajando para un 'amo'. Por lo tanto, Jenkins Distributed Build puede ejecutar pruebas idénticas en diferentes entornos, con resultados recopilados y combinados en el nodo maestro para el monitoreo.
What are the top Jenkins plugins?
- Complemento Blue Ocean para Jenkins
- Complemento de correo para Jenkins
- Complemento Git para Jenkins
- Jira complemento para Jenkins
- Complemento Docker para Jenkins
- Complemento de integración de Maven para Jenkins
- Complemento de Kubernetes para Jenkins
- Complemento de SonarQube para Jenkins
- Complemento de Amazon EC2 para Jenkins
What is Selenium IDE?
Selenium IDE es una herramienta que registra las interacciones del navegador para casos de prueba. Puede establecer puntos de interrupción y comprobar y pausar variables cuando se produzcan errores con el entorno de desarrollo integrado de Selenium.
What are the different Selenium components?
- Selenio IDE
- Selenio RC
- Selenio WebDriver
- Rejilla de selenio
What are the different types of testing in Selenium?
- Pruebas de extremo a extremo
- Pruebas de regresión
- Prueba del sistema
- Pruebas de rendimiento
- Pruebas de compatibilidad
What are the different exceptions in Selenium?
- ElementNotSelectableException
- NoAlertPresentException
- InvalidSelectorException
- NoSuchSessionException
- StaleElementReferenceException
- NoSuchWindowException
- NoSuchFrameException
- NoSuchElementException
- Excepción de tiempo de espera
- ElementNotVisibleException
What are driver.close() and driver.quit() in WebDriver?
EL driver.close()
El comando cierra la ventana del navegador al enfocar. Si solo hay un navegador abierto, cierra toda la sesión del navegador.
EL driver.quit()
El comando cierra toda la sesión del navegador con ventanas emergentes, pestañas y ventanas del navegador.
What is a Dockerfile?
Dockerfile es un documento de texto con todos los comandos que un usuario puede usar en una línea de comandos para ensamblar una imagen.
Differences between docker images and docker container
Las imágenes de Docker son plantillas de solo lectura creadas con códigos fuente, herramientas, bibliotecas, dependencias externas y otros archivos necesarios para que cualquier aplicación se ejecute correctamente en cualquier sistema operativo o plataforma.
Un contenedor acoplable es un cuadro que ejecuta plantillas de imágenes acoplables.
Explain the architecture of Docker
Docker sigue una arquitectura Cliente-Servidor y comprende Docker Client, Docker Host y Docker Registry.
Cliente Docker utiliza API REST y comandos para comunicarse con el servidor (Docker Daemon).
Docker Client usa CLI para ejecutar estos comandos
docker build
docker pull
docker run
- Host de Docker proporciona un entorno para ejecutar y ejecutar aplicaciones. Compuesto por docker daemon, almacenamiento, imágenes, contenedores y redes.
- Registro de Docker administra y almacena imágenes de Docker.
Cloud platforms that support docker
Las plataformas que soportan alojamiento docker son;
- Kamatera
- Carrera en la nube de Google
- A2 Hosting
- StackPath
- Descuidado.io
- Amazon ECS
- microsoft Azure
- AnfitriónPresto
- Vultr
What is the difference between containers and virtual machines?
Tanto el Contenedor como la VM funcionan con virtualización y aislamiento de entornos para promover el procesamiento independientemente de las aplicaciones. Todavía, Contenedores crear entornos aislados donde diferentes aplicaciones puedan ejecutarse simultáneamente porque la división se realiza a nivel de los recursos disponibles, como la memoria y el procesamiento. Por otro lado, la Máquina Virtual permite que una máquina física aloje otras con diferentes sistemas operativos, discos duros y hardware, independientes de las originales.
What is the main difference between Docker and Kubernetes?
Docker es una de las herramientas de contenedores DevOps más utilizadas. Se enfoca en la portabilidad de las aplicaciones, colocándolas en contenedores tecnológicos y sistemas de empaque y moviéndolas a través de diferentes plataformas.
Al mismo tiempo, Kubernetes es una herramienta de orquestación de contenedores que puede agrupar contenedores por categorización lógica. Se puede implementar en varias computadoras a través de la distribución automatizada.
Lea más sobre Kubernetes vs. Estibador.
What does platform virtualization mean, and what are its benefits?
La virtualización de plataforma significa simular un sistema informático completo para ejecutar varias instancias de sistemas operativos simultáneamente en una sola máquina física.
En esta configuración, un monitor de máquina virtual (VMM), o hipervisor, tiene control total de los recursos de hardware de la máquina física. Los sistemas operativos invitados se ejecutan en máquinas virtuales, que administra VMM. La virtualización de entornos implica simular una o más máquinas virtuales y las conexiones de red entre ellas.
La virtualización puede ayudar a reducir el tiempo dedicado a la implementación y los riesgos asociados con ella de varias maneras. El uso de máquinas virtuales en la implementación es de gran ayuda para lograr una gestión de configuración eficaz vertical y horizontalmente en todos sus sistemas.
En particular, el uso de la virtualización trae los siguientes beneficios:
- Respuesta rápida a los requisitos cambiantes
- Consolidación
- Normalización
- Facilidad de mantenimiento de líneas base
What is Nagios?
Nagios es una herramienta que monitorea toda la infraestructura de TI para garantizar que los procesos, sistemas, servicios y aplicaciones comerciales funcionen correctamente.
How does Nagios work?
- Monitoreo. El personal de TI configura Nagios para monitorear los protocolos de red, las métricas del sistema, las aplicaciones, la infraestructura de red, los servicios y los servidores.
- Alertando. Nagios envía alertas cuando fallan componentes críticos. Las alertas pueden ser a través de SMS, código personalizado o correos electrónicos.
- Respuesta. El equipo de TI reconoce las alertas y actúa.
- Informes. Se generan informes que brindan un registro histórico de notificaciones, interrupciones, respuestas de alerta y eventos para su revisión posterior.
- Mantenimiento. El tiempo de inactividad programado evita que se envíen alertas durante el mantenimiento.
Mention some Plugins in Nagios
- Complementos oficiales de Nagios-desarrollado y mantenido por el equipo oficial
- Complementos personalizados-escrito por individuos/empresas para adaptarse a las necesidades individuales
- Complementos de la comunidad-desarrollado por los miembros de la comunidad de Nagios
Explain virtualization with Nagios
Nagios ofrece la capacidad de monitorear varias métricas en varias plataformas de virtualización. Nagios puede ejecutarse desde varias plataformas de virtualización como Xen, Amazon EC2, VMware y Microsoft Virtual PC.
How does Nagios help with monitoring?
Nagios utiliza agentes como NRPE, check_mk o SNMP para recopilar estadísticas en su servidor y enviar una alerta si las métricas están por encima del umbral predefinido.
What port numbers does Nagios use for monitoring purposes?
SNMP, puertos 161 y 162
What is a Nagios network analyzer?
El analizador de red Nagios es un software de análisis de datos de flujo que permite a los usuarios resolver de manera proactiva comportamientos anormales, interrupciones y amenazas de seguridad antes de interrumpir las operaciones comerciales. Esta herramienta de nivel comercial ofrece información ampliada sobre el tráfico de red y la infraestructura de TI.
Variables that affect inheritance and recursion in Nagios
- Nombre-un 'nombre' de plantilla que puede heredar las variables/propiedades del objeto.
- Utilizar- especificar el nombre del objeto de la plantilla del que desea heredar variables/propiedades.
- Regístrese indica si el nombre del objeto de la plantilla debe estar 'registrado' con Nagios.
What is Puppet?
Puppet es una herramienta de software de código abierto gestión de configuración y despliegue.
What is a Puppet manifest?
El manifiesto de Puppet es un archivo que contiene el lenguaje de configuración de Puppet que describe cómo deben configurarse los recursos.
What is the Puppet code?
El código de marionetas es un código declarativo, lo que significa que lo describe utilizando el estado deseado de su sistema y no los pasos necesarios para llegar allí.
What is Chef?
Chef es una herramienta de gestión de configuración que convierte la infraestructura en código. Esta herramienta se enfoca en escribir código en lugar del proceso manual.
How does Chef work?
El trabajo de Chef comienza cuando los administradores del sistema o los desarrolladores definen las tareas que se van a automatizar. Los libros de cocina y las recetas (pequeños programas escritos en un lenguaje de dominio específico) luego se capturan y prueban usando varias herramientas como Cocina de prueba, ChefSpec y Crítico gastronómico.
Si los libros de cocina y las recetas funcionan como se espera, se implementan en el servidor de Chef mediante las herramientas de línea de comandos de cuchillo y chef. Un proceso de implementación de Chef tiene un servidor Chef, estaciones de trabajo y nodos. Puede elegir entre más de 3000 plantillas de libros de cocina y personalizarlas según sus necesidades. El Chef se encargará del resto del trabajo.
Tell us about your experience managing DevOps projects
Las habilidades de DevOps no son solo conocimientos técnicos y requieren habilidades humanas y de gestión que a menudo se encuentran entre los gerentes, directores de programas y gerentes de proyectos.
Es fundamental saber gestionar y dar soporte al cambio, proporcionar una puerta de enlace para facilitar la transferencia de nuevas versiones de código al lado de las operaciones, evaluar y monitorear las diversas plataformas y herramientas para medir el rendimiento, y analizar y compartir resultados para mejorar las entregas futuras. , etc.
Aborde esta pregunta con metodología y explique su recorrido para resolver problemas complejos. ¿Cómo piensa mejorar el funcionamiento de las infraestructuras? ¿Cómo planea colaborar con los desarrolladores de front, middle y back-office? ¿Qué herramientas de monitoreo dominas? Además, considere compartir sus experiencias de resolución de conflictos dentro de su equipo.
Resumen
Según Glassdoor, el salario promedio de un ingeniero DevOps es de $104281 por año en los EE. UU. Aunque DevOps es una carrera nueva, ahora podemos ver más empresas contratando para este puesto y publicando varios cursos para equipar a los profesionales con las habilidades esenciales. Arriba hay algunas preguntas que probablemente encontrará en una entrevista de DevOps.
También puede explorar algunos buenos cursos en línea para aprender DevOps.
Con entradas de tito kamunya.