46 preguntas y respuestas frecuentes de entrevistas de DevOps [2023]

Publicado: 2023-01-12

¿Quiere saber qué preguntas hacer durante su próxima entrevista de DevOps? Comience con nuestra práctica guía.

El término DevOps se acuñó en 2007-2008, pero ahora se ha convertido en una de las carreras más populares en ingeniería de software. DevOps es un cambio cultural que toca todos los aspectos del desarrollo y las operaciones.

Los dos equipos (desarrollo y operaciones) trabajan juntos desde la planificación y la construcción hasta el monitoreo y la iteración. Estas son las preguntas más comunes con las que es probable que se encuentre si busca un puesto de ingeniero de DevOps.

Qué es DevOps

¿Qué es 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 centra en la gestión de recursos, la comunicación y el trabajo en equipo.

¿Cuáles son las diferentes fases en la metodología DevOps?

  • 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.

¿Cuáles son los beneficios de DevOps?

  • Entrega de productos más rápida y mejor
  • Mayor escalabilidad
  • Resolución rápida de problemas
  • Mejor utilización de los recursos

Nombre algunas herramientas de DevOps

  • Herramientas de Integración Continua como Jenkins
  • Control de versiones como Git
  • Construir herramientas como Maven
  • Herramientas de gestión de configuración como Chef
  • Plataformas de contenedores como Docker

Nombre algunos KPI de DevOps

  • Frecuencia de implementación
  • Cambiar volumen
  • Tiempo de implementación
  • Tasas de implementación fallida
  • Detección de tiempo
  • Tasa de escape de defectos

Diferencia entre DevOps y ágil

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.

¿Cuál es el rol de AWS en 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.

¿Cuál es el uso de 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.

¿Qué es la integración continua?

La integración continua permite a los desarrolladores de software fusionar su código en un repositorio central. Luego, el código se toma a través de compilaciones y pruebas automatizadas.

¿Qué es la gestión de la configuración?

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.

¿Qué es la prueba continua?

Se trata de pruebas preprogramadas y automatizadas de una aplicación a medida que avanza el desarrollo.

¿Qué es 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.

Mencione algunos comandos básicos de Git

  • 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>
  • agregar
 git add <file>
  • Confirmar
 git commit -m "commit message"
  • empujar
 git push <remote> <branch-name>
  • tirar
 git pull <remote>

Explicar la diferencia entre Git merge y 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.

Explicar la diferencia entre Git fetch y 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.

¿Qué es un conflicto de fusión?

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.

¿Qué es el control de versiones y cuáles son los diferentes tipos?

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 : tenga 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.

¿Cuáles son los beneficios de usar el control de versiones?

  • 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

¿Qué es la ramificación?

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.

¿Qué son las estrategias de Branching?

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.

¿Qué son las pruebas de automatización y cómo automatizar las pruebas en 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.

¿Qué es el archivo Jenkins?

Jenkinsfile es un archivo de texto que contiene la definición de una canalización 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.

Explicar la arquitectura en 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.

¿Cuáles son los principales complementos de Jenkins?

  • Complemento Blue Ocean para Jenkins
  • Complemento de correo para Jenkins
  • Complemento Git para Jenkins
  • Complemento de Jira 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

¿Qué es Selenio 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.

¿Cuáles son los diferentes componentes del selenio?

  • IDE de selenio
  • Selenio RC
  • Selenio WebDriver
  • Rejilla de selenio

¿Cuáles son los diferentes tipos de pruebas en Selenium?

  • Pruebas de extremo a extremo
  • Pruebas de regresión
  • Pruebas del sistema
  • Pruebas de rendimiento
  • Pruebas de compatibilidad

¿Cuáles son las diferentes excepciones en Selenium?

  • ElementNotSelectableException
  • NoAlertPresentException
  • InvalidSelectorException
  • NoSuchSessionException
  • StaleElementReferenceException
  • NoSuchWindowException
  • NoSuchFrameException
  • NoSuchElementException
  • Excepción de tiempo de espera
  • ElementNotVisibleException

¿Qué son driver.close() y driver.quit() en WebDriver?

El driver.close() cierra la ventana del navegador al enfocar. Si solo hay un navegador abierto, cierra toda la sesión del navegador.

El driver.quit() cierra toda la sesión del navegador con ventanas emergentes, pestañas y ventanas del navegador.

¿Qué es un 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.

Diferencias entre las imágenes de la ventana acoplable y el contenedor de la ventana acoplable

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.

Explicar la arquitectura de Docker

Docker sigue una arquitectura Cliente-Servidor y comprende Docker Client, Docker Host y Docker Registry.

Docker Client usa REST API y comandos para comunicarse con el servidor (Docker Daemon).

Docker Client usa CLI para ejecutar estos comandos

 docker build docker pull docker run
  • Docker Host proporciona un entorno para ejecutar y ejecutar aplicaciones. Compuesto por docker daemon, almacenamiento, imágenes, contenedores y redes.
  • Docker Registry administra y almacena imágenes de Docker.

Plataformas en la nube que admiten docker

Las plataformas que soportan docker hosting son;

  • Camatera
  • Carrera en la nube de Google
  • Alojamiento A2
  • StackPath
  • Descuidado.io
  • Amazon ECS
  • microsoft azure
  • AnfitriónPresto
  • vultr

¿Qué es Nagios?

Nagios es una herramienta que monitorea toda la infraestructura de TI para garantizar que los procesos, sistemas, servicios y aplicaciones comerciales funcionen correctamente.

¿Cómo funciona Nagios?

  • 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.

Mencione algunos complementos en Nagios

  • Complementos oficiales de Nagios: desarrollados y mantenidos por el equipo oficial
  • Complementos personalizados : escritos por individuos/empresas para satisfacer las necesidades individuales
  • Complementos de la comunidad: desarrollados por los miembros de la comunidad de Nagios

Explicar la virtualización con 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.

¿Cómo ayuda Nagios con el monitoreo?

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.

¿Qué números de puerto usa Nagios para propósitos de monitoreo?

SNMP, puertos 161 y 162

¿Qué es un analizador de red Nagios?

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 que afectan la herencia y la recursividad en Nagios

  • Nombre : un 'nombre' de plantilla que puede heredar las variables/propiedades del objeto.
  • Usar- especificar el nombre del objeto de la plantilla del que desea heredar variables/propiedades.
  • Registro indica si el nombre del objeto de la plantilla debe ser 'registrado' con Nagios.

¿Qué es Marioneta?

Puppet es una herramienta de código abierto para la gestión y el despliegue de la configuración de software.

¿Qué es un manifiesto de Puppet?

El manifiesto de Puppet es un archivo que contiene el lenguaje de configuración de Puppet que describe cómo deben configurarse los recursos.

¿Qué es el código de marionetas?

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í.

¿Qué es 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.

¿Cómo funciona Chef?

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 recetas (pequeños programas escritos en un lenguaje de dominio específico) luego se capturan y prueban usando varias herramientas como Test Kitchen, ChefSpec y Foodcritic.

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.

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.