Cómo ser un buen ingeniero de DevOps

Dividí tu pregunta en 2 porque ambos tienen un significado profundo aquí.

  1. ¿Cómo puedo ser un “buen” ingeniero?
  2. ¿Cómo ser ingeniero de Devops?

La primera pregunta es realmente difícil y necesitará mucha práctica y créeme, todavía estoy luchando por superarla. Y probablemente hay muchos como yo. Los devops estaban destinados a:

  • Para matar a los malos de los desarrolladores y operaciones.
  • Para traer un poco de paz y trabajar en colaboración.
  • Para detener el juego de la culpa y tomar posesión
  • Para reducir la cantidad de tiempo que pasa en la “Sala de Guerra” o, de hecho, para matar la cultura de la Sala de Guerra.

La respuesta a la primera pregunta es fácil de escribir y bastante difícil de implementar. Puedes ser un “buen” ingeniero de Devops siendo bueno con tus compañeros de desarrollo, operaciones y control de calidad. En un proyecto, habrá muchos escenarios en los que sus compañeros Devs y QA y Devops (usted) harán las cosas mal. Es difícil “MANTENER LA CALMA Y CONTINUAR” cuando ocurren errores en el proyecto. Es aún más difícil mantener la calma cuando alguna acción de alguien obstaculiza tu trabajo. Entonces, ¿cómo manejas esto?
Aprende cómo se hace ese trabajo. Puede que no sea necesariamente perfecto, pero al menos sabe cómo se ha hecho. De esa manera, conocerá los obstáculos que pueden haber enfrentado mientras trabajaban. Le daré 3 ejemplos de cómo los “buenos ingenieros” manejaron una situación.

  1. Error de desarrollo: un desarrollador escribió un código que se escribió en AppleOS y se implementó en Ubuntu para el control de calidad para probar con el desarrollador a partir de entonces y lanzar en los próximos días. No hace falta decir que el código fue bien probado. De alguna manera no funcionó bien. Después de investigar un poco, el control de calidad encontró que el archivo de encabezado mencionado en el código era filesutils.h, mientras que Ubuntu lo identificó como “FileUtils.h. De lo contrario, el código era perfecto. El control de calidad realizó rápidamente los cambios, probó y envió una solicitud de extracción con el cambiar y actualizar el desarrollador también. Ahorró tiempo y fue “Bueno” también.
  2. Error de control de calidad: una persona de control de calidad mientras verificaba la base de datos en producción disparó una consulta “BORRAR” de consulta en lugar de una “SELECCIONAR”. El resultado fue que se eliminaron 24 elementos importantes de la producción. El control de calidad fue a Devops y dijo: “Creo que ejecuté una eliminación en producción, no veo mis datos ni la consulta”. El tipo de operaciones dice: “No hay problemas, es fácil de recuperar, no hay nada de qué preocuparse”. El proceso para recuperar los datos eliminados es: (i) Copiar datos de días anteriores (alrededor de 20 GB) de S3 a local (ii) crear una nueva base de datos y copiar el volcado a db (iii) Tomar la copia de db dump (iv) actual it to local (v) crea otro db y copia este volcado al nuevo db (vi) verifica el diff (vii) inserta los elementos diff del viejo db en el db de producción. (Hay mejores formas de hacer esto) En resumen, un buen proceso de pocas horas. El chico de Operaciones mantuvo la calma, obtuvo toda la información requerida y solucionó el problema sin ninguna frustración.
  3. Error de Ops: montó una unidad / dev / xvdd en lugar de / dev / xvdb y eliminó todo el contenido. Los datos de redis se eliminaron, con redis ejecutándose. Contactamos desarrolladores que conocían un poco de operaciones para ayudar. Pidieron no detener redis y hacer un bgsave (utilidad de guardado en segundo plano) y recuperaron todos los datos.

El error sucede. Aprender de esos errores es importante. Por lo tanto, aprender y comprender las cosas desde la perspectiva de los demás y ser cortés y tranquilo es realmente esencial para ser un buen ingeniero de Devops.

Técnicamente:
Para ser un ingeniero de Devops necesitas lo siguiente:

  1. Pasión por automatizar casi cualquier cosa.
  2. Habilidades de administración de Linux
  3. Experto en uno o más lenguaje de scripting
  4. Virtualización
  5. Comprender la nube
  6. Al menos una herramienta de gestión de configuración
  7. Herramientas de monitoreo
  8. Grandes habilidades de resolución de problemas
  9. Contenedorización
  10. Al menos una herramienta de CI / CD
  11. Paciencia … 🙂

Creo que todo lo que está buscando se puede encontrar en este repositorio de github: kamranahmedse / developer-roadmap

Estos son los elementos básicos que requiere cualquier desarrollador web (quiero decir cualquier desarrollador, pero no puedo. Simplemente no puedo)

Como solicitó la hoja de ruta relacionada con DevOps, la siguiente imagen ilustra todas las habilidades requeridas y recomendadas que cualquier ingeniero decente de DevOps debe adquirir.

El crédito de la imagen va a: kamranahmedse

ALERTA DE SPOILER !!!

¡No es un viaje fácil convertirse en ingeniero de DevOps!

Uno de los principales desafíos o deficiencias de la nueva generación de ingenieros de DevOps se puede resumir con el dicho ” Jack de todos los oficios, maestro de ninguno.

Esto es muy cierto para los estudiantes de primer año o las personas del equipo de operaciones o desarrollo que están tratando de ingresar a la carrera de DevOps al ver la demanda actual de ingenieros de DevOps en el sector de TI.

No estoy tratando de decir que es muy difícil para alguien convertirse en ingeniero de DevOps. Es solo que necesita hacer mucha preparación, investigación y trabajo duro antes de que pueda ser reconocido como un buen ingeniero de DevOps.

Dónde empezar

Donde las personas generalmente fallan en su viaje DevOps es que ponen más esfuerzo en aprender las herramientas y los marcos de DevOps en lugar de comprender los principios de DevOps o ser conscientes de lo que es DevOps en sí. He revisado cientos de hojas de vida de candidatos interesados ​​en los puestos de trabajo de DevOps en varias organizaciones y la mayoría de las veces destacan su conocimiento en las herramientas en lugar de DevOps en sí.

En segundo lugar, la gente piensa que DevOps tiene que ver con la automatización, aunque esto es cierto hasta cierto punto, no se dan cuenta de que herramientas como Hudson, Jenkins, scripting y Cron existían mucho antes de que DevOps se hiciera popular.

Mientras entrevistaba a candidatos para roles de DevOps, generalmente les hago esta simple pregunta.

Explíqueme qué es DevOps sin jerga técnica” o “Imagínese que soy de un entorno no técnico: explique DevOps”

Solo unos pocos candidatos pudieron dar una respuesta satisfactoria. La mayoría de las veces la gente termina diciendo que es automatización, integración continua e implementación, DevOps es un marco, etc. Aunque algunas de las respuestas son verdaderas, quizás en un aspecto práctico, la mayoría de ellas no definen “Qué es DevOps” .

Solo si puede comprender DevOps desde un punto de vista holístico a partir de cuál fue la razón por la cual DevOps nació, cuál es la necesidad de DevOps, los desafíos que enfrentan los equipos de desarrollo y operaciones, etc., entonces solo usted puede comenzar a dar sentido a DevOps y dar una respuesta adecuada a tales preguntas.

Entonces, para resumir el primer punto, ¿Dónde comenzar? – Comprenda los principios de DevOps y por qué DevOps es una cultura antes de comenzar a centrarse en las herramientas para DevOps. Una forma de comenzar ese viaje es leyendo el libro / novela – The Phoenix Project. Aunque es una obra de ficción, ayuda a que el lector pueda obtener más información sobre los conceptos de DevOps de una manera muy práctica. Tanto en un punto de vista comercial como técnico, el lector comenzará a entender por qué tanto como individuo como organización necesita adoptar DevOps.

Métete en los zapatos de los desarrolladores

No hay forma de evitar esto y estoy seguro de que los ingenieros de DevOps que provienen de antecedentes de desarrollo estarán de acuerdo con esto. Debe ser consciente de lo que el desarrollador está haciendo realmente durante el proceso de codificación, desarrollo, prueba e implementación.

Para personas de operaciones, experiencia en administración de sistemas o novatos: no estoy diciendo que necesiten aprender el desarrollo en profundidad o convertirse en expertos en desarrollo / programación. Por el contrario, si desea implementar de manera efectiva dichas prácticas y herramientas de DevOps, debe pensar como los desarrolladores, comprender sus requisitos y darles la mejor solución.

El conocimiento básico a intermedio en varios lenguajes y marcos de programación lo ayudará en gran medida. Es por eso que muchos ingenieros de DevOps que trabajaron como desarrolladores durante algunos años tienen mucho éxito en su carrera.

Para resumir, comprenda lo que hacen los desarrolladores durante el proceso de desarrollo del software. Cómo gestionan sus versiones de código, integrando el código en la base de código existente, resolviendo conflictos de fusión y cómo están compilándolos y desplegándolos en los servidores (aunque el equipo de Ops maneja esto, los desarrolladores también hacen su parte).

Una vez que haya entendido cómo se hacen las cosas manualmente sin herramientas de automatización, puede incorporar las prácticas y herramientas de DevOps de manera más efectiva.

¡Conviértete en un experto en operaciones incluso antes de PENSAR DevOps!

No sé cuánto más puedo estresar o hacer que este punto sea importante para todos los aspirantes a ingenieros de DevOps. Debe ser un experto en administración y operaciones del sistema antes de convertirse en experto en DevOps. El mundo de TI existió y funcionó con éxito mucho tiempo antes de que DevOps apareciera en la imagen. Y esto se debió principalmente a los superhéroes nombrados como Sysadmins y Ops. Y estos eran una raza rara de ingenieros (ahora cada vez más raros gracias a todas las herramientas de automatización) que conocían varios lenguajes de script mejor que su lengua materna.

Tenían una buena experiencia en ingeniería de sistemas donde administraban servidores Linux / Windows, configuraban servidores web, implementaban artefactos en ellos a través de FTP y SSH, administraban n cantidad de servidores. Y conocían a Shell mejor que su esposa / novia. Incluso antes del amanecer de DevOps tenían experiencia en la creación de tareas automatizadas (a través de Scripts) para automatizar la implementación, las compilaciones y el monitoreo del servidor y las aplicaciones. Hoy en día existe una idea errónea de que usted no ‘ No necesita experiencia en la administración de estas herramientas, sistemas operativos y scripts para convertirse en un ingeniero de DevOps. No es verdad.

A menos que seas bueno en Ops, no te convertirás en un experto en DevOps. Debe familiarizarse y tener experiencia en ingeniería / administración de sistemas antes de emprender su viaje DevOps. Puedes comenzar esto,

  • Instalación de aprendizaje y administración de varias distribuciones de Linux
  • Comience a aprender a hacer scripts, aprenda bash, Perl, python, ruby, etc. (sea experto en al menos un lenguaje de scripting que no sea bash script)
  • Sepa cómo configurar servidores web, servidores DNS, equilibradores de carga – Apache, Nginx
  • Aprenda a configurar el monitoreo proactivo para la infraestructura y el software
  • Comprensión profunda de los conceptos de red: ejemplo: puertas de enlace IP, TCP, CID, ARP, etc.
  • Comprender cómo implementar manualmente varios artefactos en los servidores
  • Obtenga experiencia en varios sistemas RDBMS como PostgreSQL
  • Experiencia en gestión de sistemas de archivos como ext, ext4, NFS ext.

Sé que la lista se ve bastante exhaustiva. Pero confía en mí, no lo es. A medida que comience a adquirir experiencia en cada una de las herramientas, marcos, procesos y diversas tecnologías anteriores, comenzará a adquirir más conocimiento en herramientas más relacionadas / dependientes, sistemas operativos, aplicaciones de sistemas, etc.

Luego, aprenda cómo administrar su código

Las herramientas de gestión de configuración existían mucho antes de que DevOps fuera popular. Y una de las herramientas iniciales que se utilizaron para el mismo fueron SVN, ClearCase, Mercurial y Git para Control de versiones. Antes de continuar, déjame aclarar esto. Debe tener un buen comando en cualquier Sistema de control de versiones distribuido si quiere llamarse a sí mismo como ingeniero DevOps. Por VCS distribuido me refiero a herramientas como Git y Mercurial (prefiero Git – se explicará en otro artículo).

En cierto modo, fue el uso extenso y las características que ofrecían herramientas como Git lo que impulsó el crecimiento de las herramientas DevOps. Atrás quedaron los días en que el equipo de Ops usa FTP, WinSCP, rsync, etc. para transferir su código, artefactos y datos entre sus servidores.

Estas herramientas no solo son eficientes en la versión que controla su código, sino que también ayuda al equipo de operaciones a usar estas herramientas para permitir que el código y los artefactos se envíen, procesen e implementen utilizando otras herramientas de configuración como Jenkins, Chef, Puppet, etc. materia segura, más rápida y fácil de manejar.

Para resumir: conviértase en un experto en Git y aprenda los conceptos básicos de SVN, Mercurial y ClearCase (para usuarios heredados y requisitos de migración).

Que haya Jenkins ( o cualquier otro servidor de CI para el caso )

Como había dicho antes. Jenkins existió mucho tiempo antes de que DevOps se hiciera popular. Pero esta herramienta fue lo que le dio al equipo de Ops un gran éxito al permitir una compilación y lanzamiento más estables con sus características de automatización. Y durante mucho tiempo Jenkins y Hudson (Jenkins vino de Hudson) gobernaron el reino de la Integración Continua (CI) y el Despliegue Continuo (CD). Actualmente, herramientas como TeamCity, Bamboo, GoCD y actualmente muchas herramientas están inflando el dominio DevOps CI y CD. Pero personalmente, con el soporte comunitario masivo y los complementos disponibles, personalmente siento que Jenkins sigue siendo la mejor solución de CI y CD fácil de usar y confiable.

Entonces, ¿qué es Jenkins? Es una solución de Integración Continua y Entrega Continua. Lo que hace CI es fusionar el código de diferentes desarrolladores en un único repositorio / proyecto varias veces al día mientras se prueba continuamente la base del código para evitar problemas posteriores. Ahora CD es el siguiente paso más allá donde se asegurará de que todo el código combinado esté listo para la producción.

Tanto para los desarrolladores como para las operaciones, Jenkins fue una dicha. Ayudó a automatizar el proceso tanto como sea posible, desde empujar el código del sistema de desarrolladores hasta implementarlo en producción.

Por lo tanto, dedique un poco de tiempo y esfuerzo para adquirir experiencia en Jenkins primero. Y como dije anteriormente, solo puede usar Jenkins en todo su potencial una vez que haya reunido un conocimiento y experiencia significativos como ingeniero de operaciones / administradores de sistemas.

De nuevo, no estoy promocionando a Jenkins. Pero para los nuevos usuarios, Jenkins es mucho más fácil de aprender y administrar en comparación con la otra herramienta de CI / CD que existe en el mercado. (Por favor, corríjame si estoy equivocado)

Aprenda a tratar su “Infraestructura como código” – Gestión de la configuración

Aquí es donde te ensucias las manos con las herramientas DevOps. Y antes de continuar, permítame recordarle nuevamente que necesita adquirir una buena experiencia en todas las herramientas y procesos mencionados antes de comenzar a aprender estas herramientas de administración de configuración.

A menos que tenga un buen conocimiento en el lado de las operaciones (Administración de servidores Linux / Windows, Administración de servidores web, Redes), control de versión de código (git, svn) y CI y CD (Jenkins, Bamboo, etc.) no podrá comprender realmente donde las herramientas de gestión de configuración (de aquí en adelante llamadas CM) encajan.

Demasiado honesto, fueron las herramientas CM como Puppet, Chef, Ansible, SaltStack, etc. lo que atrajo la atención de DevOps al mercado. Lo que las herramientas CM aprovisionadas fue la capacidad de administrar su infraestructura como código. Ya sea todo el trabajo manual que había hecho antes para instalar un sistema operativo, instalar y configurar sus dependencias, configurar los diversos parámetros de red y configurar los niveles de acceso, copiar y desplegar los artefactos y administrar los recursos de hardware, todo esto se hizo manualmente, lo que siempre condujo a las posibilidades de fracaso. E imagine hacer esto varias veces para muchos servidores diferentes. Fue muy difícil hacer un seguimiento y tener una infraestructura confiable de esta manera. Aquí fue donde estas herramientas vinieron al rescate.

Sugeriría a los principiantes que comiencen con Ansible y luego aprendan Chef, Puppet y otras herramientas de CM según los requisitos.

Monitoreo proactivo en DevOps

El monitoreo continuo existió mucho tiempo antes de que DevOps entrara en escena. Pero comenzó a llamar la atención y recientemente llegaron más herramientas al mercado o al monitoreo proactivo del medio ambiente. Estas herramientas monitorean sus registros y recursos del sistema y pueden identificar posibles cuellos de botella y enviar alertas para evitar interrupciones y problemas de rendimiento.

Herramientas como Nagios, senSU, logstash, New Relic, etc. pueden ayudarlo a comenzar.

Entrando en el mundo de la virtualización (ahora evolucionando a la contenedorización)

La virtualización fue conocida por más de una década con herramientas como VirtualBox, KVM, VMware, etc. La diferencia que DevOps trajo aquí es la automatización de la configuración, configuración y administración de estas máquinas virtuales. Esto es posible a través de herramientas como Vagrant, Packer, etc.

Otro dominio que es de la mayor demanda que ayudó a muchas organizaciones a impulsar DevOps son los contenedores. Los contenedores son entornos de ejecución autónomos y livianos. En comparación con las soluciones de virtualización habituales, los contenedores son más eficientes de ejecutar y más fáciles de administrar. Además, lo que han hecho los contenedores es encapsular el software junto con el entorno adecuado donde debe ejecutarse con todas las dependencias requeridas. El desarrollador puede implementar su código en contenedores que ya tienen el entorno correcto donde el código puede ser probado y luego enviado al equipo de operaciones para verificarlo e implementarlo, todo en cuestión de minutos o menos en comparación con los métodos tradicionales.

Los contenedores se hicieron populares debido a Docker. También hay otras herramientas para administrar y escalar contenedores, como Kubernetes, Mesos, etc. Le sugiero que comience su viaje con Docker antes de tener en sus manos otras herramientas para escalar y administrar contenedores.

Mudarse a la nube

Junto con las herramientas de administración de configuración mencionadas anteriormente, fue la demanda de pasar a la nube y administrar la infraestructura de la nube lo que aumentó aún más la demanda de DevOps. Tener una experiencia profunda con varios proveedores de la nube y sus servicios es esencial para un ingeniero de DevOps. Se requiere mucho conocimiento y experiencia con proveedores de la nube como AWS, Azure, Google Cloud, etc. Además, obtener las certificaciones proporcionadas por estos proveedores agregará valor a su experiencia en DevOps.

Resumen

Bueno, como dije antes, en realidad es un viaje largo y difícil para obtener experiencia en DevOps y será más difícil para los principiantes y las personas sin experiencia en operaciones ni desarrollo. Pero una vez que haya comenzado a trabajar de manera práctica con dichas herramientas y procesos y comience a trabajar en proyectos en vivo donde se está implementando DevOps, obtendrá un buen conocimiento y podrá desarrollar su experiencia en él.

Aunque es muy importante fortalecerse en los principios y la cultura de DevOps, al final para que una persona o el equipo implementen o pongan en práctica DevOps, se necesitan las herramientas correctas y el proceso correcto para trabajar juntos muy bien.

PD: Sé que este artículo no es perfecto o una guía infalible para el camino de convertirse en un ingeniero de DevOps exitoso. Siéntete libre de corregirme si tienes algo mal o necesitas agregar más puntos. Gracias

Yo diría que aprende cosas nuevas y practica en las existentes.

Hay muchos recursos en línea disponibles y a los que se puede hacer referencia para mejorar sus conocimientos y habilidades:

En lugar de unirme a un instituto de capacitación, le aconsejaré que revise las toneladas de material que está disponible en línea de forma gratuita, estoy reutilizando una de mis respuestas a otra pregunta que también es relevante aquí:

Aconsejaría seguir, en lugar de unirse a un instituto

Revise los recursos en línea que están disponibles.

Practica a través de laboratorios gratuitos.

Hay muchos laboratorios gratuitos disponibles para probar su conocimiento en la nube (AWS, Azure), etc., puede aprovecharlos para obtener algo de conocimiento al respecto.

  • Cree su laboratorio de servidores en la nube
  • Inicio | Qwiklabs

Consulte los libros disponibles.

Hay muchos libros disponibles a los que se puede hacer referencia para incluir el mío, que puede obtener de Comprar Comenzando con DevOps Book Online a precios bajos en la India.

Consigue alguna certificación

Busca este espacio para obtener más información al respecto – DevOps – Amazon Web Services (AWS)

Obtenga algunas certificaciones

AWS también tiene una certificación por separado en DevOps y uno también puede hacerlo para obtener más relevancia en el espacio de DevOps mediante el uso de AWS.

Obtenga más información en – Ingeniero DevOps certificado por AWS – Profesional

Azure tiene su propio conjunto de información sobre Integración con DevOps. Obtenga más información en: comience con Azure Devops Integrations | Microsoft Azure

Blogs –

(My Own Blog) – DevOps360 – Blogs completos sobre prácticas, métodos y herramientas de DevOps

El blog DevOpsGuys – Hablando de todas las cosas DevOps | DevOpsGuys

Mejores prácticas de TI: la guía para principiantes a través de @BMCSoftware

Mi enlace vinculado en –

https://www.linkedin.com/pulse/t

y, por último, siempre puedes buscar en Google y obtener más …

Pronto iniciaremos nuestro propio Programa de capacitación y certificación en DevOps

Por favor, mire este espacio para obtener más información al respecto – http://www.devops360.in

Mi respuesta a su pregunta se orientará en torno a dos posibilidades:

  1. Ya eres ingeniero de DevOps pero quieres pulir tus habilidades
  2. Estás a punto de entrar en la cultura DevOps y quieres convertirte en un buen ingeniero Devops desde el principio

Para el primer escenario, intente poner en práctica todas las herramientas una por una e intente adaptar las nuevas herramientas de tendencias principales y siga actualizándose. Esto lo ayudará a ganar algo de confianza y también a retener el interés.

Es posible que desee visitar el siguiente enlace para tener una idea de las principales herramientas de DevOps de tendencia de 2018.

Las 10 mejores herramientas de DevOps que debes conocer en 2018 | Edureka

También te puede gustar el video sobre las herramientas de automatización de DevOps. A continuación se muestra el enlace:

Herramientas de DevOps | Automatización con herramientas DevOps | Entrenamiento DevOps | Tutorial de DevOps | Edureka – YouTube

Ahora para el segundo escenario, básicamente quieres aprender DevOps para comenzar y obtener un crecimiento exponencial en tu carrera.

Este tutorial de capacitación de DevOps fue muy útil para mí durante mi aprendizaje. Me ayudó a obtener información sobre el entorno de DevOps y me iluminó con la información sobre varias herramientas involucradas durante diferentes procesos en el ciclo de DevOps.

Videos de entrenamiento de DevOps – YouTube

Puede que le guste el blog en DevOps que explica sobre el entorno de DevOps y otros aspectos importantes relacionados con DevOps. Debajo está el enlace.

¿Qué es DevOps? UseCase de Facebook | Herramientas de DevOps | Edureka

Si desea sumergirse en la profundidad de DevOps y conocer las herramientas de DevOps en detalle, puede hacer clic en el enlace que figura a continuación. El enlace contiene videos sobre

  • Git
  • Jenkins
  • Selenio
  • Cocinero
  • Marioneta
  • Ansible
  • Estibador

Videos Tutoriales de Herramientas DevOps – YouTube

Desea convertirse en un alumno certificado en el curso DevOps, y para eso puede obtener la capacitación de certificación DevOps de Edureka .

El curso DevOps de Edureka es lo suficientemente bueno para que te conviertas en un experto en el dominio. El curso está diseñado con precisión teniendo en cuenta los requisitos industriales actuales. Este curso le proporcionará una idea profunda sobre:

  • Desarrollo continuo, pruebas continuas e integración continua utilizando GIT , Jenkins y Selenium
  • Despliegue continuo usando Puppet , Ansible y Docker
  • Finalmente, obtendrá información al monitorear continuamente el software utilizando Nagios

Aquí hay un enlace para la certificación DevOps.

Entrenamiento DevOps | Certificación DevOps | Curso DevOps | Edureka

Estás en camino de convertirte en un buen ingeniero de DevOps.

Confía en mí, será un viaje increíble.

Te deseo buena suerte en tu carrera.

1. Comience el entrenamiento cruzado ahora

Ya sea que sea un desarrollador o un veterano de operaciones, ahora es el momento de comenzar a adquirir habilidades fuera de la zona de confort de su rol actual, especialmente si todavía es ecológico con DevOps.

Los desarrolladores mediante capacitación tienden a tener una ventaja sobre los profesionales de operaciones al hacer la transición a los puestos de ingeniería de DevOps, no solo debido a las demandas de programación de scripts y herramientas internas, sino también porque es más probable que comprendan las necesidades diarias de los desarrolladores.

Es genial si un ingeniero de DevOps ha sido desarrollador, no solo una persona de TI. Un ingeniero de DevOps que tenga experiencia en desarrollo habrá tenido una experiencia más profunda en las herramientas que los desarrolladores están utilizando, y puede aprovechar su conocimiento para hacer las cosas más eficientes. Según Jonathan Fenocchi, quien trabaja en Bazaarvoice como ingeniero de DevOps y provenía de un entorno de desarrollo, la clave es buscar formas de aplicar conceptos del rol anterior al nuevo.

“Obtenga experiencia práctica utilizando sus habilidades como ingeniero de software para construir herramientas en lugar de software. Mire cualquiera de los proyectos de código abierto que Netflix ha escrito para obtener ejemplos”, dice, y agrega que los desarrolladores actuales que aspiran a puestos de DevOps deberían buscar participar en todo lo que hace su equipo que involucra operaciones. “Si su equipo no hace nada de eso, vaya al equipo de operaciones y participe en algunos despliegues”.

Mientras tanto, aunque los gerentes favorecen a los desarrolladores, también puedes hacer la transición como administrador de sistemas. Solo tendrá que comenzar a hacer un trabajo serio para perfeccionar sus habilidades de secuencias de comandos. “Muchos administradores de sistemas no han sido llamados a automatizar el aprovisionamiento, la configuración y la implementación en este punto en el pasado. Puede ser difícil para ellos adquirir las secuencias de comandos para hacer esto”, dice Rich Davis, CTO de Webonise y una contratación de larga data. gerente.

Esto significa dedicar tiempo a ganar experiencia en scripts de Chef o Puppet, desarrollar una fuerte familiaridad con Linux y entornos de shell, y hacer todo lo posible para ganar experiencia en programación en lenguajes de scripting como Bash, Perl, Python y Ruby.

Además, “debe asumir que necesitará documentar su trabajo como código y pasar tiempo aprendiendo marcos de automatización que lo ayudarán a automatizar el aprovisionamiento y las implementaciones”, dice Davis.

2. Desarrolle las habilidades en el trabajo que tiene para el trabajo que desea

Muchos puestos de ingeniería de DevOps requieren personas que ya han vivido y respirado el estilo de vida de DevOps. A los veteranos de TI sin un título de DevOps les resultará mucho más fácil conseguir uno de estos puestos al dividir las responsabilidades y tareas con mentalidad de DevOps de su función tradicional existente, ya sea que cambien oficialmente su tarjeta de visita o no.

Esta fue la experiencia de John Behling, quien recientemente fue contratado por Field Nation como ingeniero senior de DevOps. Antes de su nuevo trabajo, había estado en funciones de administración de sistemas desde 2008.

“Durante ese tiempo, siempre usé alguna forma de automatización para hacerme la vida más fácil. Pero las cosas realmente no se aceleraron hasta 2014, cuando asumí un papel en un equipo de administrador de sistemas que tenía la tarea de configurar servidores de desarrollo para varios equipos de desarrolladores “, dice. “Comencé a llamarme ingeniero de DevOps por esa época, principalmente porque vi que se usaba como abreviatura para el tipo de trabajo de tipo administrador de sistemas de la nueva escuela que me pareció más interesante”.

3. Automatización: demuestre que puede hacer mucho con un poco

“Busco personas que sean rudimentarias y puedan hacer mucho con poco”, dice Rick Tai, jefe de ingeniería de Reflektive. “Esto significa ingenieros de DevOps que usan herramientas de automatización para administrar servidores e implementaciones”.

Behling está de acuerdo en que establecer un dominio de las herramientas y prácticas de automatización es quizás la cosa más importante que los ingenieros en desarrollo de DevOps pueden hacer para mejorar su poder de ganancia y comercialización.

“¡Estudie la automatización! Si está atrapado en un tedioso trabajo manual, nunca tendrá tiempo para aprender cosas nuevas, y probablemente no será feliz”, dice Behling. “La automatización también requiere una comprensión profunda de lo que está automatizando, por lo que todo el tiempo que pasa trabajando en la automatización, realmente está aprendiendo nuevos conocimientos sobre las tecnologías que está respaldando”.

4. Desarrolle su marca personal con la participación de la comunidad.

La comerciabilidad profesional se trata tanto de desarrollar habilidades intrínsecas como de encontrar una manera de mostrarlas. Involucrarse en la comunidad DevOps altamente activa y en crecimiento proporciona una forma de matar a ambas aves de un tiro. No hay una única forma de hacer esto, y todo depende de las habilidades e intereses de un individuo. Podría significar hablar en eventos de la industria o, para los introvertidos, tal vez escribir blogs y mantenerse en contacto con colegas a través de foros en línea y similares. Behling cree que saltar a un proyecto de código abierto también puede tener un gran impacto.

“La participación en proyectos de código abierto relacionados con DevOps es una gran oportunidad para mostrar lo que sabe y lo que puede hacer”, dice Behling. “Hablar y presentar en las reuniones es importante, pero hoy en día, muchos proyectos tienen canales públicos de Slack donde puedes participar y responder preguntas; esta es una gran oportunidad para la visibilidad y la marca personal”.

Si bien el factor de comerciabilidad es clave, Eric Sigler, director de confiabilidad del sitio en PagerDuty, dice que los ingenieros de DevOps que no ven la participación de la comunidad estrictamente como un generador de carrera probablemente sacarán el máximo provecho de sus experiencias.

“La participación en la comunidad DevOps no solo debe abordarse como una forma de avanzar en una carrera, sino como una manera de conectarse con otros profesionales, obtener ayuda y exponerse a nuevas ideas”, sugiere. “Todos en la comunidad aportan su propio entusiasmo y pueden proporcionar un sistema de apoyo único”.

5. Demostrar curiosidad y empatía.

Según Sigler, la curiosidad y la empatía son quizás dos de los rasgos de habilidades blandas más valiosos que un potencial ingeniero de DevOps puede demostrar.

“Demostrar estas dos cualidades es una muy buena señal de que un empleado potencial se preocupará profundamente por DevOps, la compañía y su papel dentro de ambos”, dice.

Demostrar lo primero puede ser más fácil que lo segundo, por supuesto. La curiosidad se puede demostrar construyendo un amplio conjunto de habilidades técnicas y, lo que es más importante, aprendiendo el arte de hacer las preguntas correctas al resolver problemas e iniciar un cambio para mejor.

Externamente mostrar empatía puede ser un poco más difícil. Mucho tiene que ver con la construcción de la memoria muscular del oído, porque escuchar es una gran parte del desarrollo de tendencias empáticas. Sin embargo, una forma de llegar sería dirigirse a situaciones en las que se ve obligado a comunicarse con los demás.

“Aprender a traducir lo que haces a tus compañeros (enseñar, presentar, explicar) es crucial”, dice Behling. “A veces, cuando presento cosas frente a otros, encuentro fallas en mi propia lógica o descubro cosas en las que no he pensado. Asegurarme de que lo que estás haciendo no es tu propia magia especial, sino algo que está a la vista y accesible para el equipo es crucial “.

Obtén más videos gratis – Suscríbete ➜ ZaranTech

DevOps se ha integrado rápidamente en la vida de las empresas de desarrollo de software. Al permitir obtener productos de calidad más rápido y con una fuerte cohesión del equipo, las prácticas de DevOps han ganado gran popularidad en el entorno técnico.

El término DevOps fue mencionado originalmente por Andrew Shafer y Patrick Debois en su charla sobre “Infraestructura ágil” en la conferencia Agile Toronto de 2008. A partir de 2009, la metodología DevOps se convirtió en una corriente principal a través de una serie de “devopsdays”.

Recientemente, muchas compañías de desarrollo de aplicaciones móviles y web se dieron cuenta de la necesidad de DevOps y comenzaron a adoptar las prácticas en su trabajo.

DevOps es una cultura de desarrollo de software y un conjunto de prácticas que apuntan a la unificación de desarrollo (dev) y operaciones (ops).

DevOps se basa en el monitoreo de todas las etapas del proceso de desarrollo de aplicaciones, desde la implementación e integración hasta el diseño, prueba y lanzamiento del producto.

Obtenga más información sobre los objetivos, ventajas y casos de uso de DevOps.

Sin embargo, ¿cómo convertirse en un ingeniero DevOps?

  1. Comienza aprendiendo sobre la cultura
  2. Aprende un lenguaje de programación
  3. Aprenda a administrar servidores
  4. Aprenda lo básico sobre redes y seguridad
  5. Aprender scripting
  6. Aprenda a instalar y configurar middlewares
  7. Aprenda a implementar software
  8. Aprender GIT
  9. Aprende a construir software
  10. Aprenda a automatizar su fábrica de software
  11. Aprenda la gestión de la configuración
  12. Aprender infraestructura como código
  13. Aprenda a monitorear software e infraestructura
  14. Aprenda sobre contenedores y orquestación
  15. Aprenda a implementar y administrar aplicaciones sin servidor

Encuentre información más detallada sobre la hoja de ruta para convertirse en un ingeniero DevOps.

10 habilidades de DevOps para buscar en solicitantes de empleo

# 1 – Un administrador de sistemas impecable

Debe ser un administrador de Windows / Linux de nivel superior (ya sea / o / ambos según su tienda) con 5 a 10 años de experiencia. ¿Por qué? Porque necesitan poder construir y administrar servidores mientras duermen. Pero esa no es la única razón, mucho depende de alguien para automatizar las implementaciones de servidores porque este es un gran problema en la mayoría de las tiendas de TI.

# 2 – Experiencia de virtualización

Debe tener de 3 a 5 años de experiencia en virtualización con VMware, KVM, Xen, Hyper-V o el hipervisor que esté utilizando en su nube privada. Ahora, es posible que nunca se involucren en el soporte diario del trabajo de infraestructura, pero lo entienden mejor porque la mayoría de las nubes públicas ejecutan múltiples tipos de virtualización.

# 3 – Amplia experiencia técnica

Junto con la experiencia de virtualización, deben comprender el almacenamiento y las redes. ¿Por qué? Porque ya pasaron los días en que la red y el almacenamiento son silos. Necesita personas que puedan diseñar una solución que se ajuste y funcione con alta disponibilidad y tiempo de actividad. Los solicitantes también deben comprender la tolerancia a fallas y los dominios de fallas para no poner todos los huevos en una canasta.

# 4 – Scripting Guru

¿Ya he dicho que necesitan poder hacer script? Bash, Powershell, Perl, Ruby, JavaScript, Python: lo que sea. Deben poder escribir código en procesos repetibles automatizados. Pero no nos detendremos allí porque también necesitan poder codificar en API RESTFUL. Así es, si va a reemplazar procesos manuales como asignar direcciones IP y reservas de DNS, alguien necesita escribir algún código.

# 5 – Desarrollador Borderline (más es mejor)

¿He dicho que necesitan codificar en C +, C ++, .NET, ASP? No, no me estoy repitiendo. Estoy hablando de escribir guiones que dispararán y organizarán las implementaciones completas de entornos DEV, QA y Producción a través de herramientas como Chef, Puppet, CFEngine u otras herramientas de este tipo. ¿Por qué? Porque ya pasaron los días en que alguien instala Windows o Linux desde un CD. Hoy en día, se dispara un comando que dispara una compilación del servidor, luego dispara otro script que instala aplicaciones, luego lame sus labios y dispara otros scripts que realizan configuraciones y comprobaciones de validación. ¿Quién crees que va a escribir todo este código? No es un administrador de sistemas. Los ingenieros de DevOps lo harán.

Obtenga más videos gratis – Suscríbase ➜ https://goo.gl/5ZqDML

Para convertirse en ingeniero de DevOps necesita las habilidades que se detallan a continuación.

  1. Buen agarre en Linux.
  2. Administración de Linux y Windows Server y habilidades de monitoreo.
  3. Grandes habilidades para la resolución de problemas.
  4. Buen agarre en la herramienta de automatización como Jenkins.
  5. Buen mantenimiento de los servicios de orquestación de contenedores como Docker.
  6. Buen control de los servicios de administración de contenedores como Kubernets, DC-OS, Mesos – Marathon.
  7. Bueno en infraestructura como código (Chef, marioneta, anisible, terraform)
  8. Buen conocimiento de la integración de servicios con otras herramientas.
  9. Buen conocimiento sobre el flujo de CD / CI. (Integración continua y despliegue continuo).
  10. Buena retención en el script de shell / script de python / cualquier lenguaje de programación.
  11. Comprensión adecuada de git.
  12. Bueno en soluciones, planificación.
  13. El coraje de asumir la responsabilidad sobre sus propios hombros para entregar el proyecto.

Mira esto, Apertura de trabajo en DevOps.

ABC Recruitement está trabajando con una exitosa empresa de software en Reading para reclutar un administrador de sistemas Linux con interés tanto en los sistemas basados ​​en la nube como en el sitio. Este será un gran papel para un ingeniero de Linux con talento que desearía la oportunidad de capacitarse y obtener exposición con prácticas modernas como DevOps y tecnologías en la nube como AWS. Tendrá la oportunidad de aprender el enfoque automatizado de DevOps para la implementación utilizando herramientas como Puppet y Ansible y ganar exposición trabajando con aplicaciones basadas en la nube como AWS, Google Cloud Platform o Azure.

Para ser considerado, tendrá al menos 3 años en un rol de Administración de Sistemas Linux con experiencia en Ubuntu / Debian y Redhat. Tendrá un gran conocimiento de las principales tecnologías de Internet, como TCP / IP, DNS, IPSEC y SMTP, habrá trabajado con herramientas de monitoreo de infraestructura como Nagios o Zabbix y le apasionará la tecnología de código abierto y su entusiasmo por aprender.

Cualquier experiencia de las herramientas DevOps (Puppet, Ansible, Chef), aplicaciones basadas en la nube (AWS, Google Cloud Platform o Azure) y Jira sería beneficiosa, pero se proporcionará un presupuesto de capacitación y recursos si tiene las habilidades básicas de Linux.

Salario: £ 35,000 – £ 38,000

Según el mercado actual, la mayoría de los miembros están buscando

Las herramientas de DevOps son: CHEF, DOCKER, Ansible, Jenkins, GIT, Puppet, Vagrant … y más …

Aprenda la mejor capacitación en línea de DevOps por un ingeniero de DevOps en tiempo real

Contacto para el curso DevOps : regístrese ahora :: USE DEVOPS

Como estoy trabajando en una empresa DevOps, aquí está mi respuesta simple en 4 puntos,

> Comience a aprender los conceptos básicos de DevOps y comience a suscribirse a algunos de los principales sitios web y comunidades que hablan mucho sobre DevOps.

Zona DevOps en DZone

Hilos de DevOps en Hacker News

Tema y debates de DevOps sobre Quora

Todo DevOps en Reddit

> Lea el libro ‘The Phoenix Project’

> Comience a conocer prácticamente las herramientas disponibles en este campo como AWS, Docker, Puppet, Chef, Shippable, etc.

> Puede que este artículo te ayude a “Cómo convertirte en un gran ingeniero de DevOps”

Espero que esta respuesta ayude 🙂

Si quieres ser un buen ingeniero de DevOps, debes saber más abajo.

DevOps no es un dominio. Es una cultura reducir nuestra tarea, tiempo, costo y mano de obra en las actividades diarias.

  1. Debe conocer el ciclo de vida específicamente ágil de SDLC. Le ayudará a comprender la integración continua, la implementación continua y la entrega continua.
  2. Debe tener un buen conocimiento en shell para automatizaciones basadas en Linux y batch, powershell para Windows.
  3. Necesita tener una buena comprensión de la gestión del código fuente como git y svn.
  4. Debe tener buenos conocimientos en herramientas de CI (integración continua) como Jenkins, Bamboo, Teamcity, etc.
  5. Tener buenos conocimientos en tecnologías en la nube como AWS, Azure y Openstack.
  6. Debe tener una buena experiencia en contenedores como Docker y Kubernetes.
  7. Deberías conocer otros lenguajes de secuencias de comandos. Python, Perl, Ruby y Go.
  8. Debe tener experiencia práctica en herramientas de compilación como Maven y Gradle.
  9. Debe conocer las herramientas de administración de configuración como Ansible y Chef.
  10. Debe tener experiencia en servidores de implementación como tomcat, IIS, Apache y otros.

Aún hay más cosas para ser un buen ingeniero de DevOps.

Gracias,

Arun Venkat.

Supongo que estás preguntando acerca de ser un buen miembro del lado “dev” de las operaciones de desarrollo.

Si es así, entonces este es el trato: Respeta el conocimiento y la experiencia de tus contrapartes “ops”. Saben lo que están haciendo y saben qué es qué cuando ejecutan el software que les suministran.

Aquí está la cosa: ¡su contraparte de Ops es su cliente / cliente! ¡Necesitas hacerlos felices! Naturalmente, sus sistemas deben hacer lo que deben hacer, pero es el equipo de operaciones el que debe satisfacer con todos los pequeños detalles de cómo funciona su código.

Debe ser medible y monitoreable. Debe ser configurable y controlable.

No caiga presa de la tontería ágil del “producto mínimo viable”, al menos no aisladamente de las necesidades de ejecutar su código en un ecosistema de producción y a escala.

Pero, sobre todo, debe tratar a sus contrapartes de operaciones como iguales. Saben cosas que usted no sabe y necesita respetar ese conocimiento y experiencia. Claro, usted sabe cosas sobre la creación de software que tal vez no, pero ese conocimiento y su habilidad para aplicarlo no lo hacen superior al componente operativo de su equipo. Sus consideraciones no son ni más ni menos importantes que las de ellos. Toda la ingeniería implica compensaciones. Asegúrese de hacerlos en el contexto de las consideraciones “dev” y “ops”.

Hola,

DevOps es una combinación de desarrolladores y profesionales de operaciones de TI (pruebas). El ingeniero DevOps debe manejar el desarrollo con excelentes habilidades de codificación y también buscar todas las funciones de Ops. Si puede gestionar todas estas tareas de manera impecable, solo usted será considerado un buen ingeniero de DevOps.

Si desea convertirse en un buen ingeniero de DevOps, debe tener las siguientes habilidades

  1. Familiaridad y experiencia con una variedad de herramientas de operaciones y automatización .
  2. Eficiente en la escritura de guiones.
  3. Cómodo al lidiar con pruebas frecuentes y lanzamientos incrementales.
  4. Comprensión de los desafíos de Ops y cómo se pueden abordar durante el diseño y el desarrollo.
  5. Habilidades blandas para una mejor colaboración en todo el equipo.

Atentamente,

Disha, Trainer @ CourseIngEntrenamiento DevOps en Hyderabad

DevOps sigue siendo un término lo suficientemente vago como para tener que tener cuidado con lo que está pidiendo.

Para comenzar, averigua en qué parte de la pila de tecnología te gusta trabajar. Devops implica que prefiere trabajar en silencio en los servidores de fondo, configurando reglas de firewall y lidiando con registros que generan errores a las 3 a.m. ese es el lado ‘ops’ de los devops.

Devops también implica que usará código (o yml, o json, o algún otro metalenguaje) para construir el 90% o más de su infraestructura que administrará. Ese es el lado ‘dev’ de los devops.

Por lo tanto, para sentirse cómodo con DevOps, primero asegúrese de estar bien con eso.

Luego, elige una pila. Muchos ingenieros de Devops “nuevos” simplemente se esfuerzan por construir y administrar contenedores con clústeres de Kubernetes, algunos prefieren la pila Hashicorp con imágenes vagabundas y binarias, algunos todavía construyen servidores virtuales en AWS que albergan todos los componentes que su producto necesita.

Si está buscando algo que le permita conseguir un trabajo más temprano que tarde, le recomiendo leer cómo se implementa Kubernetes en AWS y construir su propio clúster de prueba de concepto allí. Si se encuentra cerca de un AWS PopUp Loft, vaya allí y solicite hablar con uno de sus ingenieros toneladas de preguntas. Luego ponga esas palabras clave en su perfil en LinkedIn. Te sorprendería la cantidad de llamadas no solicitadas que recibe de los reclutadores con solo esas dos tecnologías en su perfil.

Consigue un trabajo, construye su entorno de desarrollo. Trabajar con los desarrolladores, hacer revisiones de relaciones públicas. Póngase con el arquitecto en el proyecto y hágale muchas preguntas sobre sus necesidades. Aprenderá muchísimo con solo formatear sus preguntas.

Siéntase libre de publicar preguntas de seguimiento en Quora y mencionarme. He estado en alguna parte de DevOps durante la mayor parte de 20 años en este momento y estoy feliz de compartir lo que he recogido.

Un ingeniero de DevOps trabaja con desarrolladores de software y operadores de sistemas para supervisar las versiones de código y superar las barreras tradicionales en el proceso de desarrollo de software. Para desempeñarse bien en este trabajo, necesita al menos cinco años de experiencia en varios roles de TI. También necesita adquirir nuevas habilidades que están fuera de su rol actual y debe comenzar a dominar las herramientas de automatización. Hoy en día, las empresas están buscando personas inestables que puedan hacer muchas cosas con pocos recursos. Esta es una de las razones por las que DevOps es un santo grial. DevOps es una de las carreras más rentables y satisfactorias en TI, pero también requiere mucha dedicación y compromiso de su parte para perfeccionar constantemente las habilidades que ya tiene y adquirir otras nuevas.

Esto depende completamente de dónde vienes. Soy un gran defensor de tener una comprensión sólida y fundamental de la informática. Si va a estar más en el lado del desarrollo o del lado de las operaciones, deberá comprender, en general, cómo funcionan los diferentes protocolos de red, cómo interactúan los sistemas, cómo se gestionan los datos, etc. En mi opinión, aquí es donde empezar.

Justo detrás de eso está la comprensión del modelo de demanda que rodea a TI. Debería ser un estudiante de cómo su organización utiliza la tecnología. Como profesional de TI, debe centrarse en el cliente. Piense en DevOps como la mentalidad definitiva para crear una satisfacción óptima del cliente.

La forma de hacer cosas de DevOps es hacer que las cosas sean automatizadas, repetibles y autoservicios. Vivirá y morirá con el mantra de “entregar, entregar, entregar” porque DevOps se trata de crear una metodología de entrega en su organización que sea lo más ágil posible.

Pero esto solo es posible si sabes lo que está sucediendo primero. Hay algunas herramientas excelentes que las personas usan para todos los diferentes aspectos de TI que abarcan la mentalidad de DevOps, pero no creo que ninguna de ellas sea tan difícil de asimilar que debas enfocarte primero en ellas. Concéntrese primero en comprender lo que está sucediendo, y luego puede concentrarse en las áreas donde puede mejorarlo. Decidir qué herramientas lo ayudarán mejor es lo último de todo.

Hola..

DevOps es la preparación de ingenieros de control y desarrollo que participan juntos en todo el ciclo de vida del servicio, desde el diseño hasta el proceso de desarrollo. Conozca más sobre la capacitación en línea de DevOps aquí para convertirse en ingeniero de DevOps.

DevOps es la preparación de ingenieros de control y desarrollo que participan juntos en todo el ciclo de vida del servicio, desde el diseño hasta el proceso de desarrollo.

Me gustaría decir que aprenda más cosas nuevas en Devops Technology, en DevOps Online Training.

Encuentre una empresa que tenga una mentalidad DevOps. No hay otra manera. Aprender habilidades DevOps sin una gran cultura es una buena forma de depresión.

No confíes en mí, mira este entrenamiento -> DevOps: The Big Picture