50 preguntas principales de la entrevista de DevOps y amp; Respuestas

Anonim

Descargar PDF

1) Explique qué es DevOps.

Es un término emergente en el campo de TI, que no es más que una práctica que enfatiza la colaboración y comunicación tanto de los desarrolladores de software como del equipo de implementación (operaciones). Se enfoca en entregar productos de software más rápido y reducir la tasa de fallas de las versiones.

2) Mencione cuáles son los aspectos o principios clave detrás de DevOps.

Los aspectos o principios clave detrás de DevOps son

  • Infraestructura como código
  • Despliegue continuo
  • Automatización
  • Supervisión
  • Seguridad

3) ¿Cuáles son las operaciones centrales de DevOps con el desarrollo de aplicaciones y con la infraestructura?

Las operaciones centrales de DevOps son

Desarrollo de aplicaciones

  • Construcción de código
  • Cobertura de código
  • Examen de la unidad
  • embalaje
  • Despliegue

Infraestructura

  • Aprovisionamiento
  • Configuración
  • Orquestación
  • Despliegue

4) Explique cómo se procesa o ejecuta el "código de infraestructura" en AWS.

En AWS,

  • El código de la infraestructura estará en formato JSON simple.
  • Este código JSON se organizará en archivos llamados plantillas.
  • Estas plantillas se pueden implementar en AWS devops y luego administrarse como pilas
  • Posteriormente, el servicio CloudFormation hará la operación de creación, eliminación, actualización, etc.en la pila

5) Explique qué lenguaje de secuencias de comandos es más importante para un ingeniero de DevOps.

Un lenguaje de secuencias de comandos más simple será mejor para un ingeniero de DevOps. Python parece ser muy popular.

6) Explique cómo DevOps es útil para los desarrolladores.

DevOps puede ser útil para que los desarrolladores corrijan el error e implementen nuevas funciones rápidamente. También ayuda a una comunicación más clara entre los miembros del equipo.

7) ¿Enumere algunas herramientas populares para DevOps?

Algunas de las herramientas populares para DevOps son

  • Jenkins
  • Nagios
  • Monit
  • ELK (Elasticsearch, Logstash, Kibana)
  • Jenkins
  • Estibador
  • Ansible
  • Git

8) Mencione en qué caso ha utilizado SSH.

He usado SSH para iniciar sesión en una máquina remota y trabajar en la línea de comando. Además de esto, también lo he usado para hacer un túnel en el sistema con el fin de facilitar comunicaciones cifradas seguras entre dos hosts que no son de confianza a través de una red insegura.

9) Explique cómo manejaría el control de revisión (versión).

Mi enfoque para manejar el control de revisiones sería publicar el código en SourceForge o GitHub para que todos puedan verlo. Además, publicaré la lista de verificación de la última revisión para asegurarme de que se resuelvan los problemas no resueltos.

10) ¿Cuáles son los tipos de solicitudes Http?

Los tipos de solicitudes Http son

  • OBTENER
  • CABEZA
  • PONER
  • CORREO
  • PARCHE
  • ELIMINAR
  • RASTRO
  • CONECTAR
  • OPCIONES

11) Explique lo que comprobaría si un servidor de compilación de Linux de repente comienza a volverse lento.

Si un servidor de compilación de Linux de repente comienza a volverse lento, verificará las siguientes tres cosas

  • Solución de problemas a nivel de aplicación
Problemas relacionados con la RAM, problemas de lectura y escritura de E / S del disco, problemas relacionados con el espacio en disco, etc.
  • Solución de problemas a nivel del sistema
Verifique el archivo de registro de la aplicación O el archivo de registro del servidor de aplicaciones, problemas de rendimiento del sistema, registro del servidor web: verifique los registros de HTTP, tomcat lo, jboss o WebLogic para ver si el tiempo de respuesta / recepción del servidor de aplicaciones es el problema de lentitud, pérdida de memoria de cualquier solicitud
  • Solución de problemas de servicios dependientes
Problemas relacionados con antivirus, problemas relacionados con el firewall, problemas de red, problemas de tiempo de respuesta del servidor SMTP, etc.

12) ¿Cuáles son los componentes clave de DevOps?

Los componentes más importantes de DevOps son:

  • Integración continua
  • Prueba continua
  • Entrega continua
  • Monitoreo continuo

13) Nombra algunas plataformas en la nube que se utilizan para la implementación de DevOps.

Las plataformas de computación en la nube más populares utilizadas para la implementación de DevOps son:

  1. Google Cloud
  2. Servicios web de Amazon
  3. Microsoft Azure

14) Ofrezca algunos beneficios de usar el sistema de control de versiones

  • El sistema de control de versiones permite a los miembros del equipo trabajar libremente en cualquier archivo en cualquier momento.
  • Todas las versiones y variantes pasadas están empaquetadas de cerca dentro del VCS.
  • Un VCS distribuido como lo ayuda a almacenar el historial completo del proyecto, por lo que en caso de una falla en el servidor central, puede usar el repositorio Git local de los miembros de su equipo.
  • Le permite ver qué cambios exactos se realizan en el contenido del archivo

15) Explica Git Bisect

Git bisect te ayuda a encontrar la confirmación que introdujo un error mediante la búsqueda binaria.

16) ¿Qué es la construcción?

Una compilación es un método en el que se junta el código fuente para comprobar si funciona como una sola unidad. En el proceso de creación de la compilación, el código fuente se compilará, inspeccionará, probará y desplegará.

17) ¿Qué es Puppet?

Puppet es una útil herramienta de gestión de proyectos. Le ayuda a automatizar las tareas de administración.

18) Explica la autenticación de dos factores

La autenticación de dos factores es un método de seguridad en el que el usuario proporciona dos formas de identificación de categorías separadas.

19) Explique el término 'Lanzamiento canario'.

Una versión canary es un patrón que reduce el riesgo de introducir una nueva versión de software en el entorno de producción. Se hace poniéndolo a disposición de forma controlada para un subconjunto del usuario. Antes de ponerlo a disposición de todo el conjunto de usuarios.

20) ¿Qué tipos de pruebas son importantes para garantizar que el nuevo servicio esté listo para la producción?

Debe realizar pruebas continuas para asegurarse de que el nuevo servicio esté listo para la producción.

21) ¿Qué es Vagrant?

Un vagabundo es una herramienta que puede crear y administrar entornos virtualizados para probar y desarrollar software.

22) ¿Cuál es el uso de PTR en DNS?

El registro de puntero, que también se conoce como (PTR), se utiliza para la búsqueda de DNS inversa.

23) ¿Qué es Chef?

Es una poderosa plataforma de automatización que transforma la infraestructura en código. En esta herramienta, puede utilizar scripts de escritura que se utilizan para automatizar procesos.

24) ¿Cuáles son los requisitos previos para la implementación de DevOps?

A continuación, se muestran los requisitos previos útiles para la implementación de DevOps:

  • Al menos un software de control de versiones
  • Comunicación adecuada entre los miembros del equipo.
  • Pruebas automatizadas
  • Despliegue automatizado

25) Nombre algunas de las mejores prácticas que deben seguirse para el éxito de DevOps.

A continuación, se muestran las mejores prácticas esenciales para la implementación de DevOps:

  • La velocidad de entrega significa el tiempo necesario para que cualquier tarea los lleve al entorno de producción.
  • Controle cuántos defectos se encuentran en los distintos
  • Es importante medir el tiempo real o promedio que se tarda en recuperarse en caso de una falla en el entorno de producción.
  • La cantidad de errores notificados por el cliente también afecta la calidad de la aplicación.

26) Explique la herramienta SubGIt

SubGit le ayuda a migrar SVN a Git. También le permite construir un espejo Git escribible de un repositorio de Subversion local o remoto.

27) Nombre algunas herramientas importantes de monitoreo de red

Algunas de las herramientas de monitoreo de red más destacadas son:

  • Splunk
  • Icinga 2
  • Wireshark
  • Nagios
  • OpenNMS

28) Si su tarjeta de video puede ejecutar Unity, ¿cómo lo sabría?

Cuando usas un comando

/usr/lib/Linux/unity_support_test-p

dará una salida detallada sobre los requisitos de Unity, y si se cumplen, entonces su tarjeta de video puede ejecutar unity.

29) ¿Explica cómo habilitar el sonido de inicio en Ubuntu?

Para habilitar el sonido de inicio

  • Haga clic en el engranaje de control y luego haga clic en Aplicaciones de inicio
  • En la ventana Preferencias de la aplicación de inicio , haga clic en Agregar para agregar una entrada
  • Luego, complete la información en cuadros de comentarios como Nombre, Comando y Comentario
/usr/bin/canberra-gtk-play-id= "desktop-login"-description= "play login sound"
  • Cierre la sesión y luego inicie sesión una vez que haya terminado

También puede abrir con llave de atajo Ctrl + Alt + T .

30) ¿Cuál es la forma más rápida de abrir una terminal de Ubuntu en un directorio en particular?

Para abrir una terminal de Ubuntu en un directorio en particular, puede usar un atajo de teclado personalizado.

Para hacer eso, en el campo de comando de un nuevo teclado personalizado, escriba genoma - terminal - - directorio de trabajo = / ruta / a / dir.

31) Explique cómo puede obtener el color actual de la pantalla actual en el escritorio de Ubuntu.

Puede abrir la imagen de fondo en The Gimp (editor de imágenes) y luego usar la herramienta cuentagotas para seleccionar el color en un punto específico. Te da el valor RGB del color en ese punto.

32) ¿Explica cómo creas lanzadores en un escritorio en Ubuntu?

Para crear lanzadores en un escritorio en Ubuntu, puede usar

ALT + F2, luego escriba "gnome-desktop-item-edit -create-new ~ / desktop", abrirá el cuadro de diálogo de la GUI anterior y creará un lanzador en su escritorio

33) ¿Explica qué es Memcached?

Memcached es un sistema de almacenamiento en caché de objetos de memoria distribuida de alto rendimiento, gratuito y de código abierto. El objetivo principal de Memcached es mejorar el tiempo de respuesta de los datos que de otro modo se pueden recuperar o construir a partir de alguna otra fuente o base de datos. Se utiliza para evitar la necesidad de operar una base de datos SQL u otra fuente repetidamente para obtener datos para una solicitud simultánea.

Memcached se puede utilizar para

  • Redes sociales-> Almacenamiento en caché de perfiles
  • Agregación de contenido-> HTML / Almacenamiento en caché de página
  • Orientación de anuncios-> Seguimiento de cookies / perfil
  • Relación-> Almacenamiento en caché de sesiones
  • Comercio electrónico -> Caché de sesión y HTML
  • Servicios basados ​​en ubicación-> Escalado de consultas de base de datos
  • Juegos y entretenimiento-> Almacenamiento en caché de sesiones

Memcache ayuda a

  • Acelere los procesos de solicitud
  • Determina qué almacenar y qué no almacenar
  • Reducir el número de solicitudes de recuperación a la base de datos.
  • Corta el acceso de E / S (entrada / salida) (disco duro)

El inconveniente de Memcached es

  • No es un almacén de datos persistente.
  • No es una base de datos
  • No es una aplicación específica
  • No puede almacenar en caché objetos grandes

34) ¿Menciona algunas características importantes de Memcached?

Las características importantes de Memcached incluyen

  • Tokens CAS: un token CAS se adjunta a un objeto recuperado de un caché. Puede usar ese token para guardar su objeto actualizado.
  • Devolución de llamada: simplifica el código
  • getDelayed: reduce el tiempo de retraso de su script que está esperando que los resultados regresen de un servidor
  • Protocolo binario: puede utilizar el protocolo binario en lugar de ASCII con el cliente más nuevo
  • Igbinary: Anteriormente, un cliente siempre solía hacer la serialización del valor con datos complejos, pero con Memcached, puede usar la opción igbinary.

35) Explique si es posible compartir una sola instancia de Memcache entre varios proyectos.

Sí, es posible compartir una única instancia de Memcache entre varios proyectos. Memcache es un espacio de almacenamiento de memoria y puede ejecutar Memcache en uno o más servidores. También puede configurar su cliente para hablar con un conjunto particular de instancias. Por lo tanto, puede ejecutar dos procesos Memcache diferentes en el mismo host y, sin embargo, son completamente independientes. A menos que, si ha particionado sus datos, entonces es necesario saber de qué instancia obtener o colocar los datos.

36) Tiene varios servidores Memcache, en los que uno de los servidores Memcache falla y tiene sus datos, ¿alguna vez intentará obtener datos clave de ese servidor fallido?

Los datos en el servidor fallido no se eliminarán, pero existe una disposición para fallos automáticos, que puede configurar para varios nodos. La conmutación por error se puede activar durante cualquier error de nivel de servidor de socket o Memcached y no durante errores de cliente estándar como agregar una clave existente, etc.

37) Explique cómo puede minimizar las interrupciones del servidor Memcached.

  • Cuando una instancia falla, varias de ellas caen, y esto supondrá una carga mayor en el servidor de la base de datos cuando los datos perdidos se vuelvan a cargar cuando un cliente realiza una solicitud. Para evitar esto, si su código se ha escrito para minimizar las estampidas de caché, dejará un impacto mínimo
  • Otra forma es abrir una instancia de Memcached en una nueva máquina usando la dirección IP de las máquinas perdidas.
  • El código es otra opción para minimizar las interrupciones del servidor, ya que le da la libertad de cambiar la lista de servidores de Memcached con un trabajo mínimo.
  • Establecer el valor de tiempo de espera es otra opción que algunos clientes de Memcached implementan para la interrupción del servidor de Memcached. Cuando su servidor Memcached deja de funcionar, el cliente seguirá intentando enviar una solicitud hasta que se alcance el límite de tiempo de espera.

38) Explique cómo puede actualizar Memcached cuando cambian los datos.

Cuando los datos cambian, puede actualizar Memcached por

  • Borrar la caché de forma proactiva: borrar la caché cuando se realiza una inserción o actualización
  • Restablecimiento de la caché: es similar al primer método, pero en lugar de simplemente eliminar las claves y esperar la próxima solicitud de datos para actualizar la caché, restablezca los valores después de la inserción o actualización.

39) Explica qué es el efecto Dogpile. ¿Cómo se puede prevenir este efecto?

El efecto Dogpile se refiere al evento cuando expira un caché, y los sitios web se ven afectados por las múltiples solicitudes realizadas por el cliente al mismo tiempo. Este efecto se puede prevenir mediante el uso de un semáforo. En este sistema cuando el valor expira, el primer proceso adquiere el candado y comienza a generar nuevo valor.

40) Explique cómo no se debe utilizar Memcached.

  • El mal uso común de Memcached es usarlo como un almacén de datos y no como un caché.
  • Nunca use Memcached como la única fuente de información que necesita para ejecutar su aplicación. Los datos siempre deben estar disponibles a través de otra fuente también
  • Memcached es solo un almacén de claves o valores y no puede realizar una consulta sobre los datos o iterar sobre el contenido para extraer información
  • Memcached no ofrece ningún tipo de seguridad ni en cifrado ni en autenticación

41) Cuando se apaga un servidor, ¿los datos almacenados en Memcached todavía están disponibles?

Los datos almacenados en Memcached no son duraderos, por lo que si un servidor se apaga o reinicia, todos los datos almacenados en Memcached se eliminan.

42) Mencione cuál es la diferencia entre Memcache y Memcached.

  • Memcache: es una extensión que le permite trabajar a través de prácticas interfaces orientadas a objetos (OOP) y de procedimiento. Está diseñado para reducir la carga de la base de datos en aplicaciones web dinámicas.
  • Memcached : es una extensión que usa la biblioteca libmemcached para proporcionar API para comunicarse con servidores Memcached. Se utiliza para aumentar las aplicaciones web dinámicas aliviando la carga de la base de datos. Es la última API.

43) Explique el patrón de implementación azul / verde

El patrón de coloración azul / verde aborda los desafíos más importantes que se enfrentan durante el proceso de implementación automática. En el enfoque de implementación azul / verde, debe garantizar dos entornos de producción idénticos. Sin embargo, solo uno de ellos está VIVO en un momento dado. El entorno LIVE se denomina entorno azul.

Cuando el equipo prepara la próxima versión de su software, llevan a cabo su etapa final de prueba en un entorno conocido como entorno verde. Una vez verificado, el tráfico se enruta al entorno verde.

44) ¿Qué son los contenedores?

Los contenedores son de virtualización ligera. Ofrecen aislamiento entre procesos.

45) ¿Qué es la reunión post mortem con referencia a DevOps?

La reunión post mortem se realiza para discutir qué salió mal y qué pasos debe tomar para evitar fallas.

46) ¿Cuál es el método más sencillo para construir una nube pequeña?

VMfres es una de las opciones más efectivas para crear IaaS en la nube desde Virtual Box VM en poco tiempo. Sin embargo, si desea PaaS liviano, entonces Dokku es una buena opción porque el script bash puede ser PaaS fuera de los contenedores Dokku.

47) Nombra dos herramientas que se utilizan para las redes de Docker.

Para las redes de Docker, puede usar Kubernetes y Docker Swarm.

48) Nombra algunas de las áreas donde se implementan DevOps

DevOps se utiliza para producción, operaciones de TI, comentarios de producción y su desarrollo de software.

49) ¿Qué es el CBD?

El desarrollo basado en componentes o CBD es una forma única de abordar el desarrollo de productos. En este método, los desarrolladores siempre buscan componentes existentes bien definidos, probados y verificados para componerlos y ensamblarlos en un producto en lugar de desarrollarlos desde cero.

50) Explicar la programación de pares con referencia a DevOps

La programación por pares es una práctica de ingeniería de reglas de programación extremas. En este método, dos programadores trabajan en el mismo sistema, en el mismo diseño / algoritmo / código.

Un programador actúa como "conductor". Otros actúa como un "observador" que monitorea continuamente el progreso de un proyecto para identificar problemas. Los roles se pueden invertir en cualquier momento sin ningún indicio previo.

51) Explicar la prueba de resiliencia

La prueba que garantiza la recuperación sin pérdida de datos y funcionalidad después de una falla se denomina pruebas de resiliencia.

52) Nombra tres KPI importantes de DevOps

Los tres KPI de DevOps más comunes son:

  • Mientras tanto hasta la recuperación de fallas
  • Frecuencia de implementación
  • Porcentaje de implementaciones fallidas