La idea de tener un ingeniero de DevOps se ha vuelto bastante popular recientemente , y parece atractivo tener una persona que pueda ingresar y proporcionar muchos de los beneficios de DevOps, como se describe en el blog de Puppet :
Las organizaciones que utilizan las prácticas de DevOps tienen un funcionamiento abrumadoramente alto: implementan código hasta 30 veces más frecuentemente que sus competidores, y 50 por ciento menos de sus implementaciones fallan, según nuestro informe del Estado de DevOps de 2015.
Sin embargo, he notado una gran oposición vocal a la idea de un ingeniero de DevOps para intentar hacer estas mejoras:
Incluso con un amplio acuerdo sobre los atributos centrales de DevOps, la controversia rodea el término "ingeniero de DevOps". Algunos dicen que el término en sí contradice los valores de DevOps. Jez Humble, coautor de Continuous Delivery, señala que solo llamar a alguien ingeniero de DevOps puede crear un tercer silo además de dev y ops - "... claramente una forma pobre (e irónica) de tratar de resolver estos problemas ".
¿Por qué podría no ser una gran idea para una empresa contratar a un ingeniero de DevOps para que intente e 'implemente DevOps', a diferencia del cambio organizativo que promueven blogs como este ? ¿Se negarán los beneficios simplemente teniendo un rol DevOps aislado?
fuente
Respuestas:
TL; DR : nunca debe intentar contratar un equipo de DevOps
Básicamente, hay tres roles más comunes para contratar:
Estos roles son distintos de sus 6 roles esenciales de desarrollo de software que componen tradicionalmente la organización de ingeniería de software:
Veamos los tres roles uno por uno y veamos cómo encajan
Arquitecto o evangelista de DevOps
En algunos casos y para pequeñas y medianas empresas, puede comenzar el proceso contratando una organización de consultoría, como DORA.
Ingeniero DevOps
Ingeniero de CI / CD
fuente
Yo diría que el Ingeniero Devops como se describe en el enlace de su pregunta es principalmente un rol de administrador de sistemas. Citando las habilidades aquí para conocer los antecedentes de esta respuesta:
En esta descripción de trabajo de ejemplo, DevOps Engineer es solo una palabra de moda para un administrador de sistemas que se siente cómodo con la infraestructura basada en la nube, la automatización, es capaz de leer el código para ayudar en el diagnóstico y conoce las prácticas y soluciones de alta disponibilidad.
Esto está vagamente relacionado con las prácticas de DevOps y la cultura de ruptura del silo entre dev y ops como se ve en esta pregunta ¿Cuál es la diferencia entre Sysadmin y DevOps Engineer?
No será una buena idea porque un administrador de sistemas, lo cómodo que puede estar con la práctica y cultura de DevOps, no es la persona adecuada para impulsar una transformación de la empresa. No contratará a esta persona con un cambio de cultura en mente, sino con una vista de configuración de herramienta, que realmente no ayudará a romper los procesos. Esto también puede ser mal recibido por sus colegas y solo traerá resistencia al cambio si no hay un cambio cultural planificado de antemano
Para un patrón exitoso hacia las ganancias de los devops, la respuesta de @ Jiri Klouda brinda una excelente visión general sobre un rol aceptable de Ingeniero DevOps junto con el paso en el cambio que aportaría valor y ayuda al éxito.
fuente
Me doy cuenta de que esta respuesta puede no ser perfecta para ti, pero esto es lo que hice
Fui el primer desarrollador que trabajaba en una startup de comercio electrónico muy ocupada, con un tráfico increíblemente alto. Me doy cuenta de que la empresa aún era joven y que, por un tiempo, sería el único recurso técnico interno.
Sabiendo esto, decidí estructurar mi infraestructura de tal manera que tendría que hacer la administración de sistemas CERO.
Decidí alojar en la nube, porque hacerlo me liberó del mantenimiento de los sistemas. Busqué un ingeniero de AWS, con experiencia en títeres. Juntos, diseñamos una infraestructura autoescalable, escrita como código en la formación en la nube. Todos los archivos de configuración fueron versionados dentro de la marioneta.
Esto me permitió, como desarrollador, asumir este rol devops. Construí herramientas de liberación de código, en python, fabric. Utilicé el mismo script para iniciar mi aplicación en nuevos servidores que se escalan automáticamente.
Esto funcionó muy bien, y hoy, 3 años después, todavía no hago ningún mantenimiento del sistema. Tenemos un administrador de sistemas (el mismo ingeniero de AWS) durante 10 horas al mes, y trato de estructurar sus sprints de tal manera que no me convierta en una molestia para él. De esa manera respeto su tiempo y manejo sus sprints de la mejor manera que puedo.
Si un sistema tiene un rendimiento degradado, simplemente lo finalizo, y otro gira en su lugar.
Espero que esta respuesta te pueda beneficiar de alguna manera
fuente
No debe contratar a un ingeniero de DevOps porque DevOps abarca una variedad tan amplia de disciplinas que un individuo no puede ser un experto en todos los aspectos de estas disciplinas. Al contratar un jack de todos los oficios, estaría contratando a un maestro de ninguno.
DevOps es necesariamente un esfuerzo basado en el equipo y no puede esperar que un individuo respalde las expectativas de todo un equipo. Considere el alcance de DevOps. Una persona no puede:
Algunos de los anteriores incluso tienen subdisciplinas , como Windows Systems Admin vs. Linux / Unix System admin o tal vez use más de un lenguaje de codificación en su.
Ninguna persona puede ser experta en todo esto, lo que significa que si está anunciando un ingeniero DevOps, cuando el área más débil de su equipo DevOps es Networking, no está haciendo un muy buen trabajo publicitando su necesidad de un especialista en redes para su equipo DevOps . Si bien ningún individuo debe ser encasillado para un rol específico en el equipo de DevOps, usted perjudicaría a su equipo al pretender que no hay especialistas o expertos en la materia (PYME) dentro del alcance de DevOps. Balancear el péndulo de un extremo al otro, desde hacer silos hasta fingir que todos los roles de su equipo DevOps son iguales, puede causar la misma cantidad de problemas.
Si bien hacer que los miembros del equipo entrenen en más de una disciplina, particularmente en las áreas superpuestas es bueno, esperar que sean capaces de dominar un volumen tan amplio de conocimiento simplemente no es práctica.
Esto significa que cualquiera que le diga que conoce todos los aspectos de DevOps probablemente le está mintiendo. Contrata a un especialista en el área en la que seas más débil que haya trabajado en un equipo DevOps, no un "Ingeniero DevOps".
fuente
Tuve este desafío exacto al implementar en ASOS. El objetivo para nosotros es tener equipos que sean autosuficientes y, por lo tanto, tener un rol dedicado puede ser un antipatrón, sin embargo, vivimos en el mundo real y para muchos desarrolladores pensar en buenas prácticas de DevOps no es lo principal, por lo que necesitan ayuda llegar allí.
Lo que hicimos fue:
perder el término de ingenieros de DevOps, DevOps es algo que todos deberíamos hacer, no nuestro título de trabajo, por lo que los llamamos algo diferente.
los desplegó en equipos, pero solo 1 de cada 3, esto significaba que no podían ser buenos, sino que tenían que verse como una competencia para ayudar a los equipos a mejorar y resolver sus propios problemas (con orientación)
mantuvo también una función central para actuar como centro de competencia y manejar las consideraciones empresariales, cualquier cosa que afecte a todos los equipos
A medida que evolucionamos, revisamos este modelo, pero para nosotros funciona de manera efectiva hasta ahora
fuente
No creo que pueda obtener una respuesta definitiva para esto porque parece que muchas cosas tienen en cuenta.
Acabo de terminar la entrevista para los puestos y terminé con un título de ingeniero DevOps, pero parte de lo que estoy haciendo es trabajo de administrador de sistemas. Eso es solo por necesidad debido al tamaño de la empresa y la naturaleza de lo que se está administrando de manera inteligente. Algunos puestos para los que entrevisté tenían un título similar y buscaban más a alguien desde el lado del desarrollo de las cosas con experiencia. Esperaban más escritura de código y no un administrador del sistema que realiza la automatización. SRE parece ser un título que está ganando popularidad, por lo que ese podría ser el camino a seguir. Tuve mi mismo trabajo como Administrador del Sistema e Ingeniero de Automatización como mi último trabajo porque estaba escribiendo ansible y el chef acumulaba parte del tiempo. La compañía seguía un modelo bastante bueno de desarrolladores donde todos estaban a bordo y los desarrolladores trabajaban junto a las operaciones, pero creo que su futuro no
Ahora que estoy en esta posición, estoy tratando de calzar la bocina con cierta automatización y tenemos algunos problemas con las personas que tendremos que resolver. La gente va y viene y algunos de los flujos de trabajo se diseñaron porque alguien más lo diseñó de esa manera y no porque se ajuste a la forma en que las personas trabajan.
Básicamente, creo que deberías averiguar la descripción del trabajo y no preocuparte tanto por el título a menos que esté vinculado a pagar de alguna manera o creas que uno u otro atraería al tipo correcto de personas.
fuente
Si le preocupa el significado de DevOps y sigue un "camino verdadero". No debe contratar a un ingeniero de DevOps. Debe contratar a un ingeniero de automatización, un ingeniero de implementación, un arquitecto de plataforma o una serie de otros roles que hagan lo que necesita.
Si ser un verdadero profesional de DevOps no es importante para usted, puede llamarlo como quiera.
fuente