¿Cuáles son las habilidades necesarias para aprender Devops?

Permítame primero darle una introducción a DevOps, sus diversas etapas y herramientas.

Entendamos primero por qué se introdujo DevOps, y luego veremos qué es exactamente DevOps.

Antes de DevOps se usaba el modelo de cascada tradicional.

Modelo de cascada:

Consideremos desarrollar software de una manera tradicional usando un modelo de cascada.

En el diagrama anterior verás las fases que implicarán:

  • En la fase 1: se reunió el requisito completo y se desarrolló el SRS
  • En la fase 2: este sistema está planificado y diseñado utilizando el SRS
  • En la fase 3 – Implementación del sistema.
  • En la fase 4 – Se prueba el sistema y se asegura su calidad.
  • En la fase 5: el sistema se implementa para los usuarios finales.
  • En la fase 6 – Se realiza el mantenimiento regular del sistema.

Desafíos modelo de cascada

El modelo de caída de agua funcionó bien y sirvió bien durante muchos años, sin embargo, tuvo algunos desafíos. En el siguiente diagrama se resaltan los desafíos de Waterfall Model.

En el diagrama anterior puede ver que tanto el Desarrollo como las Operaciones tuvieron desafíos en el Modelo de cascada. Desde el punto de vista de los Desarrolladores, hubo principalmente dos desafíos:

Después del desarrollo, el tiempo de implementación del código fue enorme.

La presión del trabajo en el código antiguo, pendiente y nuevo fue alta porque el tiempo de desarrollo y despliegue fue alto.

Por otro lado, Operaciones tampoco estaba completamente satisfecho. Hubo cuatro desafíos principales que enfrentaron según el diagrama anterior:

Fue difícil mantener el tiempo de funcionamiento de ~ 100% del entorno de producción.

Las herramientas de automatización de infraestructura no fueron muy afectivas.

El número de servidores a monitorear sigue aumentando con el tiempo y, por lo tanto, la complejidad.

Fue muy difícil proporcionar comentarios y diagnosticar problemas en el producto.

En el siguiente diagrama se resaltan las soluciones propuestas para los desafíos del Modelo de cascada.

En el diagrama anterior, las Soluciones probables para los problemas que enfrentan los Desarrolladores y las Operaciones se resaltan en azul. Esto establece las pautas para una estrategia de desarrollo de software ideal.

Desde el punto de vista de los desarrolladores:

Un sistema que permite la implementación de código sin demora o tiempo de espera.

Un sistema donde el trabajo se realiza en el código actual, es decir, los sprints de desarrollo son cortos y bien planificados.

Desde el punto de vista de Operaciones:

El sistema debe tener al menos un 99% de tiempo de actividad.

Las herramientas y sistemas están ahí para una fácil administración.

Debería haber un sistema efectivo de monitoreo y retroalimentación.

Mejor colaboración entre desarrollo y operaciones y es un requisito común para los desarrolladores y el equipo de operaciones.

Creo que es hora de que exploremos qué es DevOps y cómo supera estos desafíos.

DevOps:

DevOps integra a los desarrolladores y al equipo de operaciones para mejorar la colaboración y la productividad.

De acuerdo con la cultura de DevOps, un solo grupo de Ingenieros (desarrolladores, administradores de sistemas, control de calidad, probadores, etc. convertidos en Ingenieros de DevOps) tiene la responsabilidad de la aplicación (Software) de extremo a extremo, desde la recopilación del requisito de desarrollo, la prueba y la infraestructura. implementación, a la implementación de la aplicación y, finalmente, a la supervisión y recopilación de comentarios de los usuarios finales, y luego se implementan nuevamente los cambios.

Este es un ciclo sin fin y el logotipo de DevOps tiene mucho sentido para mí. Solo mire el diagrama anterior: ¿Cuál podría haber sido un mejor símbolo que el infinito para simbolizar DevOps?

Ahora veamos cómo DevOps se encarga de los desafíos que enfrenta el Desarrollo y las Operaciones. La siguiente tabla describe cómo DevOps aborda los desafíos de desarrollo.

Yendo más lejos, la tabla a continuación describe cómo DevOps aborda los desafíos de operaciones.

Sin embargo, todavía se estaría preguntando cómo implementar DevOps. Para acelerar y actualizar el proceso de DevOps además de aceptarlo culturalmente, también se necesitan varias herramientas de DevOps como Puppet, Jenkins, GIT, Chef, Docker, Selenium, AWS, etc. Pruebas, implementación continua, monitoreo continuo para entregar un software de calidad al cliente a un ritmo muy rápido.

Ahora eche un vistazo al siguiente diagrama de DevOps con varias herramientas de DevOps e intente descodificarlo.

Estas herramientas han sido categorizadas en varias etapas de DevOps. Por lo tanto, es importante que primero le cuente las etapas de DevOps y luego hable más sobre las herramientas de DevOps.

DevOps Lifecycle se puede dividir ampliamente en las siguientes etapas de DevOps:

  • Desarrollo continuo
  • Integración continua
  • Pruebas continuas
  • Monitoreo continuo
  • Virtualización y contenedorización.

Estas etapas son los bloques de construcción para lograr DevOps en su conjunto.

Puede consultar el video a continuación sobre las herramientas de DevOps para comprender cómo se puede implementar DevOps en la vida real. Ofrece una buena introducción a todas las herramientas principales de DevOps, como Git, Jenkins, Puppet, Docker, etc.

También te recomendaría que consultes los siguientes blogs sobre las principales herramientas de DevOps que te ayudarán a obtener mejores perspectivas:

Git

Jenkins

Estibador

Marioneta

Cocinero

Ansible

DevOps (“desarrollo” cumple con “operaciones”) sigue siendo un campo en evolución. Al pedirle una definición, incluso algunos en otros roles técnicos podrían tener dificultades para definirla. Sin embargo, la mejor manera de pensarlo es menos como una colección específica de habilidades necesarias para un rol específico, y más como una cultura o filosofía sobre cómo desarrollar software.

El credo central de DevOps gira en torno a la idea de que la colaboración interdepartamental, la comunicación y la mejora constante son las claves para un ciclo de desarrollo de software exitoso y eficiente. Los equipos de ingenieros o gerentes de DevOps, entonces, son simplemente ingenieros y gerentes que combinan sus habilidades específicas de rol con las mejores prácticas de DevOps.

Sin embargo, trabajar en un equipo DevOps no es para todos. Los ingenieros que prefieren largos períodos de trabajo solos pueden verse frustrados por los intercambios de retroalimentación constante. Se necesita un tipo específico de persona para tener éxito en una de estas posiciones. Estos siete atributos te servirán bien en un futuro rol de DevOps.

1. Aprendizaje autodirigido.

Dado que DevOps es un campo en constante evolución, la capacidad y la motivación para enseñarte nuevas habilidades es fundamental. Anant Agarwal, CEO de edX, dice: “Es difícil aprender algo que parece evolucionar tan rápido como se enseñan las lecciones. Los autoaprendizaje son los candidatos perfectos para abrazar y perseguir la adopción de DevOps, ya que requiere un resumen. “Mangas, prueba y error, hágalo usted mismo, enfoque de aprendizaje continuo”.

Lisa Phillips, vicepresidenta de ingeniería de confiabilidad de sitios en Fastly, agrega: “Ser un profesional de DevOps significa saber 1000 cosas bastante bien, no ser un especialista en solo una. Para tener éxito, debe estar abierto y dispuesto a aprender cada paso del y vuelva a aprender las cosas que han demostrado ser incorrectas (o se han vuelto incorrectas con el tiempo) “.

2. Colaboración

DevOps, por su propia naturaleza, ve a todos los diferentes equipos técnicos en una oficina como parte de un todo unificado. Agarwal señala que “DevOps combina desarrollo y operaciones, y por lo tanto es imperativo que todos los miembros del equipo puedan adoptar una mentalidad de equipo”.

Omri Gazitt, Director de Producto en Puppet, enfatiza que los mejores profesionales de DevOps siempre estarán pensando en cómo pueden ayudar al equipo. “Cualquier problema es un problema de todos, y un gran ingeniero siempre hace que quienes los rodean sean mejores”.

3. la comunicación

“Hace mucho tiempo que pasaron los días de la persona de Ops que vive en una cueva”, dice Ben Porterfield, cofundador y vicepresidente de ingeniería en Looker. “La gente de DevOps necesita poder trabajar con todo el departamento de ingeniería, con el producto y, a menudo, con host de otros departamentos que utilizan herramientas internas. “Los ingenieros de DevOps se comunican regularmente con personas de todos los niveles de formación técnica y necesitan poder ajustar su nivel de comunicación para asegurarse de que haya comprensión”.

Agarwal señala que la comunicación va de la mano con la colaboración. “La comunicación es clave para una colaboración efectiva. Los contratiempos y los éxitos, así como lo que el equipo aprende en cada paso del camino, deben comunicarse de manera transparente e inmediata en toda la organización. Además, el objetivo final de una gran parte de las necesidades de adopción de DevOps para estar claramente comunicado en toda la organización, incluso antes del primer día “.

Obtenga más videos gratuitos: suscríbase ➜ https://goo.gl/5ZqDML‌

Primero: Las habilidades blandas
Curiosamente, son estas habilidades blandas las que son necesarias y frecuentemente ridiculizadas. “Todos los que hacen DevOps, ya sea Dev, Ops, seguridad, control de calidad, gestión de proyectos, todos necesitan [habilidades blandas]”, dice David Mortman, arquitecto jefe de seguridad e ingeniero distinguido de Dell, Enstratius.

1. La capacidad de comunicarse de forma clara y concisa.
“Compartir es un principio clave de DevOps y si no puedes compartir lo que sabes y lo que has aprendido, entonces tener ese conocimiento es efectivamente inútil. Te acabas de hacer un cuello de botella “, dice Mortman. La otra habilidad que Mortman citó a lo largo de estas líneas es esforzarse por comprender realmente los zapatos en los que están sus colegas colaboradores. “No puedo enfatizar lo suficiente el valor de tener empatía por todos los demás y lo que necesitan hacer. “Cada rol tiene sus desafíos y la empatía por esos desafíos va un largo camino hacia un lugar de trabajo más agradable”, dice.

2. Técnicas de colaboración.
Nuevas técnicas de colaboración son esenciales, explica Donnie Berkholz.
Analista de la industria de TI en RedMonk, y miembro del consejo y desarrollador senior en Gentoo Linux. “Los operadores deberán aprender técnicas de colaboración distribuidas y eficaces, como las que se utilizan en el desarrollo de software de código abierto. Las organizaciones DevOps de vanguardia hacen un uso intensivo del chat en línea y las herramientas compartidas para registrar tanto la comunicación como la acción. En algunos pioneros, esto implica incluso los llamados “ChatOps”, donde puede realizar cambios en la infraestructura a través de llamadas a un bot automatizado en un chat en línea. Por lo general, esto incluye la comunicación asíncrona en lugar de las llamadas telefónicas, tanto de forma larga (por ejemplo, correo electrónico) como de forma corta (por ejemplo, IRC), en una forma archivada y con capacidad de búsqueda “, dice.

Esto permite, según Berkholz, las operaciones de guardia durante cualquier crisis o incendio que surja, así como la capacidad de identificar y generar cambios en la infraestructura, donde todos puedan aportar sus ideas fácilmente.

3. Una mentalidad flexible
No estamos hablando necesariamente de formas avanzadas de Yoga mental, pero ciertamente la capacidad de cambiar a medida que cambian los conocimientos y las condiciones, ya sea que estos cambios sean técnicos o de negocios. “La voluntad de hacer cambios y evaluar opciones alternativas es clave para DevOps. Las cosas van a fallar, usted o una decisión que haya tomado serán la causa de ese fracaso. O las cosas simplemente no funcionarán tan bien como esperabas o pensaste. Esté dispuesto a cambiar de opinión y buscar mejores opciones “, dice Mortman.

4. Lo suficientemente bueno nunca es suficiente
Se trata de buscar constantemente la mejora continua. “Esta mentalidad se centra en el láser en la mejora continua diaria”, dice BEHR. “Es la capacidad de desaprender y adquirir nuevos conocimientos más relevantes a la luz de la complejidad y la información emergente; luego, desconfirmar con el método científico y pasar a la aplicación solo donde sea relevante”, dice Kevin Behr, director de ciencia de CXO, asesoría y consejo de la junta practicar ensamblaje Pointe, Inc.

A continuación: Las habilidades técnicas.

Comprensión de la ingeniería de software moderna.
5. “Para pasar a un mundo de” infraestructura como código “, donde todos los sistemas se mantienen utilizando herramientas de gestión de la configuración como Puppet o Chef, que incluyen control de versiones, pruebas de unidad e integración, desarrollo ágil de software, así como entrega continua y modelos de despliegue “, dice Berkholz. “Los administradores de sistemas tradicionales aún pueden vivir en un mundo de solicitudes de inicio de sesión y ediciones manuales de archivos de configuración, por lo que este será quizás el mayor obstáculo en términos de conocimiento”, estima Berkholz.

“La mentalidad técnica que busco son habilidades que le permiten a un equipo tratar a los servidores como si fueran ganado y menos como gatos”, dice DevOps, director principal de Andrew Storms en CloudPassage. “Para trabajar de manera efectiva en este tipo de mentalidad de sistemas, los ingenieros de DevOps necesitan habilidades de programación y arquitectura de sistemas. Si eso significa Ruby o Python o lo que sea necesario para trabajar de manera efectiva con las herramientas de orquestación, las API y la automatización. “Se trata menos de la necesidad de conocer un lenguaje de programación específico, más sobre la comprensión de los algoritmos de programación y el diseño robusto de sistemas”, dice Storms.

6. Arquitectura moderna del software.
Esto incluye la implementación y administración en la nube, así como los sistemas distribuidos. “A medida que nos movemos hacia un mundo nublado de software, las operaciones deberán implementar, mantener, monitorear y solucionar problemas de producción con esta infraestructura. Y, sin embargo, en muchos casos es mucho más complejo que el equivalente anterior, aunque trae beneficios significativos en agilidad y tiempo de actividad si se hace correctamente. Las operaciones deberán familiarizarse con las instancias y servicios de la nube, así como con la infraestructura de software de nivel inferior, como las distribuciones y bases de datos de Linux, cuando se implementen en una nube “, dice Berkholz.

Eso también incluye dar un paso atrás de los árboles para mantenerse constantemente al tanto del bosque. “Ver el sistema y sus límites en lugar de solo las tareas y sus fechas de vencimiento. Esta comprensión de las interacciones entre los diversos actores en un sistema y [la comprensión] de cómo esas interacciones están haciendo que el valor se produzca es fundamental “, dice. “Sin esta comprensión, no sabremos cuándo presionar más fuerte o guardar silencio”, dice.

7. Entender que la respuesta a incidentes de seguridad es un esfuerzo continuo.
La seguridad y la protección en el nuevo entorno de DevOps deben abarcar nuevas formas de abordar la seguridad y el control de calidad. “Esto requiere soluciones continuamente emergentes en lugar de utilizar ‘mejores prácticas probadas y verdaderas’. “El equipo efectivo evolucionará a través de la implacable autoevaluación, el estudio y la aplicación de métodos más relevantes y efectivos para trabajar en entornos de infraestructura complejos”, dice Behr.

Eso es un gran consejo, y ciertamente no todos incluyen las habilidades ideales. También nos pareció interesante que la encuesta de CA Technologies a 1,300 tomadores de decisiones de TI de alto nivel se hiciera eco de la necesidad de un negocio más amplio y las llamadas habilidades de comunicación suave cuando se trataba del éxito de DevOps.

Estos incluyen: conocimiento de las prioridades / estrategias / métricas de negocios (47%), conocimiento de los procesos de negocios actuales (42%), habilidades de comunicación (36%) y gestión de proyectos y habilidades de personal, ambas con un 30%. De hecho, la experiencia con herramientas específicas fue la última en la encuesta al 12%.

Fuente: Las 7 habilidades que los profesionales de Ops necesitan para tener éxito con DevOps – DevOps.com

Prerrequisitos de DevOps.

  • Conocimientos básicos en LINUX y UNIX.
  • EDITOR DE TEXTO
  • Interfaz de línea de comandos
  • Monitoreo de pruebas de automatización
  • Idea sobre la creación de aplicaciones

es suficiente para aprender DevOps ..

Buscando el mejor entrenamiento de DevOps. Aprenda la capacitación de DevOps por más de 16 años de “Google” Working Professional Trainer.

Comience su entrenamiento con una clase DEMO.

Para DEMO: Regístrese ahora – Tecnologías QEdge

La habilidad requerida es una combinación de habilidades en lugar de una habilidad singular. Las necesidades individuales tienen una base sólida en el desarrollo de software o en las pruebas de software. A partir de esa base sólida, pueden construir barracas laterales para convertirse en un individuo que puede navegar a través de ambos territorios.

Los DevOps requieren un conocimiento básico que son.

  • Conocimientos básicos sobre linux.
  • Fundamentos de la virtualización
  • Conceptos básicos de redes
  • Tecnicas de colaboracion
  • Comprensión de la ingeniería de software moderna.

Saludos,

Disha,

Aprender DevOps Online Training – Cursos

Dirigí esta pregunta en un largo artículo que se serializa aquí, Habilidades esenciales de DevOps: Parte I – DZone DevOps Compruebe si eso ayudaría.

Mira este artículo y todo el blog, podría ser útil:

Servicios gestionados mataron a DevOps

Debajo de los videos ayudaria