¿Qué preguntas se pueden esperar para el rol de DevOps?

Casi cualquier habilidad técnica realmente. Probablemente no recibirá preguntas sobre el desarrollo del kernel o cómo construir un widget en react.js, pero casi todo lo demás es un IMO de juego justo. . . Es decir, no se le preguntará acerca de la codificación de bajo nivel o la programación de IU de alto nivel de 10 capas de Javascript, pero es posible cualquier cosa intermedia. Y eso es solo en el lado de la codificación de las cosas. . .

Lo que lleva de nuevo a la ambigüedad / problema / controversia con el término “DevOps“. DevOps no es nada nuevo, lo que es (relativamente) nuevo es que tenemos un término para ello. Ha habido administradores que pueden codificar y desarrolladores que hacen que los administradores de sistemas trabajen para siempre, pero ahora es “A Thing”.

Estoy de acuerdo con la respuesta de Tom Wu, pero mi punto es que existe una gama tan amplia de conocimiento que puede caer en el paquete de DevOps que no veo que muchas personas dominen todas estas habilidades. Es una situación de Jack of All Trade, Mast of None.

Sigo r / devops. . . este tema aparece al menos semanalmente allí. Con frecuencia, también escuchará prejuicios individuales. Alguien con una amplia experiencia en sysadmin es mucho más probable que enfatice la necesidad de saber cómo configurar RAID 10, mientras que alguien con más experiencia en desarrollo es mucho más probable que enfatice la necesidad de usar alguna nueva función de lenguaje (en Ruby, nodo, lo que sea). La gente se pone a la defensiva sobre este tipo de cosas, diría que saber algo como RAID 10 ya no es tan útil si estás completamente implementado en la nube, pero, una vez más, no vengo de un entorno de administrador de sistemas.

Además, MUCHO de lo que llamamos DevOps en estos días es simplemente renombrado Release Engineering. Todavía hay muchos ingenieros de lanzamiento en la industria, pero ahora muchos de ellos se llaman ingenieros de DevOps, y casi nada ha cambiado en el trabajo que realizan (OK, más enfoque en la nube que en el pasado, eso es todo).

Sin embargo, lo más importante es que un verdadero ingeniero de DevOps es alguien que puede examinar las exageraciones y los requisitos técnicos y simplemente hacer el trabajo, utilizando las herramientas que funcionen mejor. . . y hay otra rathole: ¡tampoco hay una relación 1 a 1 entre problemas y herramientas!

Siempre he sostenido que es mejor contratar personas inteligentes que puedan aprender que contratar personas específicamente para los puntos en sus currículums.

tl; dr ¡Muchas cosas!

  1. Gestión de la configuración, por ejemplo, Puppet, Chef, ansible, etc., escriba un libro de jugadas de muestra para realizar tareas x, como instalar el clúster redis
  2. Explicar y dibujar el proceso de lanzamiento y compilación (CI)
  3. Explicar y dibujar el proceso de implementación (CD)
  4. Conocimiento de infraestructura y red y Linux, por ejemplo, capas OSI, concepto de Linux y comandos para el trabajo diario y la resolución de problemas.
  5. Solución de problemas de rendimiento en la pila completa típica, por ejemplo, explicar las métricas de rendimiento como IO, CPU y memoria y cómo obtenerlas y analizarlas por proceso o instancia
  6. AWS (enrutador 53, CDN, EC2, EBS, S3, VPC, Cloudformtion, etc.), p. Ej., Cree un script de automatización (p. Ej., Utilizando chef) para aprovisionar por completo una carga de clúster reforzada con seguridad reforzada (p. Ej., SSL habilitado y puertos de firewall apropiados) pila de WordPress con autoescalado y autocuración
  7. Diseñe patrones de alta disponibilidad y rendimiento para herramientas de infraestructura, como el registro de acopladores o Artifactory o Jenkins
  8. Versiones como Git, estrategia de ramificación para el lanzamiento, comandos git, como git log, git diff, etc.
  9. Scripting: Ruby, Python, GOLang o shell, capaz de poner en la pizarra algoritmos básicos y casos de uso de herramientas simples, etc.
  10. Docker (descripción general de la arquitectura, mejores prácticas, proyecto de muestra con docker, cómo se construye y despliega con la tubería CICD, desafíos para trabajar con Docker, etc.)
  11. Programador: mesos, kubernetes, rancher, Amazon ECS, GCS, etc.
  12. Herramienta de descubrimiento de servicios, por ejemplo, cónsul, cuidador del zoológico, etc.
  13. Balanceador de carga: HAProxy (nivel 4 + 7), Nginx (solo nivel 7), Netscaler, Amazon EBS
  14. Registro: pila elástica (ELK), mejores prácticas y patrón de diseño para HP y HA
  15. Desarrolle e implemente herramientas: Jenkins, CircleCI y muchas otras …
  16. Diseño de 12 factores para DevOps (Bonus)

Perdón por escribir en el teléfono.

El alcance de los puestos de DevOps varía, pero la mayoría de los roles de DevOps de nivel inicial requieren una licenciatura en ciencias de la computación o un campo relacionado que cubra codificación, pruebas de control de calidad y componentes de infraestructura de TI. Blog – ClickIT