Portada » ¿Qué es un ingeniero DevOps? Respuestas a preguntas frecuentes

¿Qué es un ingeniero DevOps? Respuestas a preguntas frecuentes

by Donal Sandro Noblejas Huaman

Hola mi nombre es donal Sandro Noblejas Huamán de Lima Perú 🇵🇪 hoy vengo con otro artículo de Devops y como siempre y en cada uno de ellos completamente solo y me agrada porque se aprende, y como siempre sin empresas, personas, familiares, ni el estado ni ningún tipo de ayuda cuidado con los estafadores solo en mis tiempos libres redactando jejeje, bueno ahí vamos.

Es imposible hablar de un ingeniero DevOps en pocas palabras: alguien dice que ese especialista no existe y alguien está convencido de que este es el mismo administrador del sistema, pero desde un ángulo diferente. No es una profesión, sino un misterio. Para mayor claridad, entrevistamos a expertos que dieron respuestas detalladas a preguntas comunes sobre esta especialidad.

¿Qué es DevOps?

Development Operations es una metodología de desarrollo que tiene como objetivo comunicar de manera efectiva a los desarrolladores con otros profesionales de TI. Por ejemplo, los programadores y probadores son responsables del Desarrollo y los administradores son responsables de las Operaciones. Y cuando un especialista está involucrado no solo en el desarrollo directo, sino también en el proceso de implementación y operación del sistema, esto es DevOps.

DevOps no es un conjunto de herramientas y plataformas, sino un concepto, un conjunto de prácticas y reglas que cierra la brecha entre los desarrolladores de servicios y los empleados responsables de mantener y operar la aplicación.

¿Por qué es necesario?

Los miembros del equipo trabajan juntos y adquieren una visión holística de todo el sistema. Esto contribuye a una interacción efectiva y, como resultado, a una mejora en la calidad del producto.

Vale la pena señalar de inmediato que cuando hablamos de DevOps, no nos referimos a una posición. Esta no es una profesión separada, sino una metodología y siguiendo un conjunto de prácticas y estrategias específicas destinadas a garantizar en última instancia que el resultado (implementado en código y realizando la funcionalidad en un entorno productivo) cumpla con una serie de requisitos comerciales. Un negocio necesita una alta velocidad de desarrollo, estabilidad durante la operación, al hacer cambios y escalar, minimizar costos y la capacidad de evitar la contratación de especialistas adicionales.

¿Es esta una industria prometedora?

Todavía lo haría. Las habilidades adicionales y la comprensión de todo el proceso lo convertirán en un empleado codiciado. Esta especialidad apareció en el mercado de TI hace relativamente poco tiempo y casi de inmediato se convirtió en una de las más populares y demandadas. Pero vale la pena señalar que muchos empleadores, al publicar una vacante de este tipo, confunden a un especialista en DevOps con representantes de otras profesiones o simplemente buscan 2 en 1. Como resultado, la demanda ahora supera la oferta.

¿qué es un ingeniero DevOps?

Un ingeniero devops, como persona con un rol dedicado, es un administrador cuyo área de actividad se encuentra un poco al margen en relación con el desarrollo del producto/productos. Se dedica a configurar herramientas y sistemas que le permitan transmitir con mayor frecuencia y eficiencia las características de los productos desarrollados a los clientes. Los ingenieros de Devops son constructores de carreteras que manejan camiones cargados con productos que han creado otros ingenieros. En la mayoría de los casos, Devops Engineer es un rol que cualquier miembro del equipo puede asumir. En las grandes empresas donde se pueden lograr ahorros mediante la creación de un rol dedicado, los ingenieros de Devops diseñan y mantienen sistemas de entrega de cambios para muchos equipos, estandarizando estos procesos.

¿Qué problemas resuelve?

La “magia” de DevOps viene al rescate cuando un proyecto tiene problemas de estabilidad, escalado, trabajando bajo carga o poniéndolo en producción, y también, por ejemplo, si el proceso de lanzamiento del producto toma demasiado tiempo.

¿Cuál es la diferencia entre un ingeniero DevOps y un administrador de sistemas?

La principal diferencia entre un administrador de sistemas y un ingeniero de DevOps, por supuesto, no está en el conjunto de herramientas ni en el conocimiento. Creo que esta es una diferencia en el enfoque del trabajo. El administrador del sistema tiene una lista específica e invariable de tareas que realiza a diario. Quizás otro plan para el desarrollo o automatización de la infraestructura. Un ingeniero DevOps, como parte de un equipo, no tiene tales restricciones. La lista de tareas puede ser extremadamente diversa: ayer escribí el código, hoy estoy probando la aplicación, mañana haré lo que sea relevante para el equipo en ese momento, por ejemplo, desarrollar una nueva función, solucionar un problema de red en un entorno de prueba, o configurar un proceso de CI/CD.

¿Cuál es su papel en el equipo?

El desarrollador escribe el código, el probador escribe las pruebas, el administrador del sistema mantiene todo y el ingeniero DevOps “amigo” los resultados de su trabajo. Hace un botón mágico en el que el desarrollador hace clic después de escribir el siguiente fragmento de código, y luego el código escrito ingresa al entorno de prueba, pasa por todas las etapas de prueba y entra en producción. La tarea principal de un ingeniero DevOps es minimizar la interacción entre los equipos de desarrollo y operaciones. En empresas grandes, los antiguos administradores de sistemas a menudo se convierten en ingenieros de DevOps, que no son indiferentes al dolor de los desarrolladores.

¿Con qué herramientas trabaja este especialista?

De las principales herramientas de un ingeniero DevOps, destacaría:

Sistema de contenerización Docker.

Orquestador de contenedores de Kubernetes como un servicio proporcionado en la nube: para crear y automatizar canalizaciones de entrega universales y para administrar aplicaciones.

Una plataforma para organizar un flujo de trabajo completo de DevOps es GitLab.

Jenkins: para implementar canalizaciones de CI/CD.

Ansible: para la gestión de infraestructuras.

Servicios en la nube de plataforma (PaaS), como bases de datos administradas, Hadoop y Spark en la nube, para automatizar tareas de administración de infraestructura y simplificar la implementación de tareas comunes.

Dada la amplia área de interés, DevOps tiene que usar muchas herramientas y probar constantemente algo nuevo por sí mismo:

construir sistemas que le permitan crear y mantener un proceso de CI/CD (GitLab, Jenkins);

servicio de verificación de código fuente (SonarQube);

almacenamiento y transferencia del artefacto (Nexus, Docker);

servicios de monitoreo y alerta (Prometheus + Grafana + AlertManager, Zabbix, Nagios);

servicios de registro (Grafana Loki, Kibana/Graylog + ElasticSearch).

¿Cuáles son las responsabilidades de un ingeniero DevOps?

Un ingeniero DevOps es un especialista que automatiza el proceso de desarrollo de productos. Este concepto incluye una amplia gama de tareas:

Preparar el entorno de desarrollo del producto.

Elaboración y conexión de herramientas de análisis de calidad de desarrollo, incluyendo herramientas de automatización de pruebas.

Preparación del entorno de prueba.

Preparación y conexión de herramientas de entrega de cambios de un entorno a otro (de un entorno de desarrollo a un entorno de pruebas, de un entorno de pruebas a un entorno de producción).

Establecer relaciones y el entorno entre todas las herramientas de desarrollo y control para garantizar una línea de ensamblaje automatizada (creación) de un producto de software que funcione continuamente: una canalización.

Supervisión del estado de todos los entornos y herramientas de desarrollo (incluido el control de calidad del desarrollo o las herramientas de transferencia de datos).

¿Dónde puedes conseguir un trabajo, siendo tan especialista?

En cualquier gran empresa que se dedique al desarrollo, implementación y administración. Se observa escasez de ingenieros DevOps donde se están desarrollando una gran cantidad de servicios B2C: estos son operadores móviles, bancos, proveedores de Internet, etc. Los empleadores potenciales también incluyen a Google, Facebook, Amazon y otros gigantes.

¿Qué pasa con el umbral de entrada?

Si recién está comenzando su viaje en TI, no será fácil, porque el bagaje de conocimientos necesarios es sólido. Es mucho más fácil pasar a DevOps como desarrollador o administrador del sistema, en cuyo caso deberá dominar aproximadamente la mitad de lo que se requiere.

¿Por dónde empezar a convertirse en un ingeniero DevOps?

Comience con artículos útiles:

En la red puede encontrar mucha información

Obtenga un conocimiento más seguro de varios libros:

Filosofía DevOps. El arte de la gestión de TI

Agile IT se ha convertido en el mantra de la era digital. Con el crecimiento de los proyectos, la transición de aplicaciones monolíticas a un sistema de microservicios, el aumento y acumulación de productos, surgen interrogantes que requieren un enfoque completamente diferente. Ahora la metodología DevOps, ubicada en la intersección del desarrollo y la gestión operativa, es de gran interés.

DevOps no es solo un conjunto de técnicas, es una filosofía. Los desarrolladores centrados en el usuario deben prestar atención al soporte y las solicitudes de soporte. Los administradores de sistemas deben informar los problemas del producto y contribuir a la mejora del proceso. Pero la creación de redes dentro de la empresa es solo el primer paso. Para que el producto sea simple y conveniente, deberá invertir tiempo y recursos en su refinamiento. Configuración a través de un servicio central, implementación mediante copia simple, sin dependencias externas, métricas bien pensadas en lugar de basura en los registros: estas son solo algunas de las tareas que deberán resolverse en el camino.

La Filosofía de DevOps le presentará los aspectos técnicos, culturales y administrativos de la cultura devops y organizará su trabajo para que disfrute desarrollando, manteniendo y usando software.

entrega continua. La práctica de las actualizaciones continuas (inglés)

Este libro ayudará a cualquiera que esté a punto de pasar a la entrega continua de software. Los gerentes de proyecto se familiarizarán con los principales procesos, beneficios y requisitos técnicos. Los desarrolladores, administradores y arquitectos obtendrán las habilidades organizativas necesarias y aprenderán cómo se integra la entrega continua en la arquitectura de software y la organización de TI.

Eberhard Wolf le presentará tecnologías de vanguardia populares que facilitan el trabajo de los desarrolladores: Docker, Chef, Vagrant, Jenkins, Graphite, ELK stack, JBehave y Gatling. Pasará por todas las etapas de ensamblaje, integración continua, pruebas de carga, implementación y control.

Guía DevOps. Cómo lograr flexibilidad, confiabilidad y seguridad de clase mundial en las empresas de tecnología(inglés)

El movimiento DevOps profesional comenzó en 2009. Su objetivo es establecer una estrecha relación de trabajo entre los desarrolladores de software y los departamentos de operaciones de TI. La integración de las prácticas de DevOps en la vida cotidiana de una organización puede acelerar significativamente la ejecución del trabajo planificado, aumentar la frecuencia de los lanzamientos y mejorar la seguridad, la confiabilidad y la resiliencia del entorno de producción. Este libro es la guía más completa y completa de DevOps escrita por los principales expertos del mundo.

Y recuerde que este especialista requiere un estudio cuidadoso de una serie de cuestiones.

Respuestas de expertos adicionales

En definitiva, un ingeniero DevOps es un nexo entre la infraestructura y los desarrolladores, simplificando el trabajo de cada uno de los equipos. Un ingeniero de DevOps comprende tanto los detalles del desarrollo como los detalles de la administración y las pruebas. Su tarea principal es automatizar y simplificar los procesos de liberación de productos.

Diría que no existe una separación clara entre un ingeniero de sistemas y un ingeniero de DevOps: ambos son responsables del funcionamiento del producto en producción. Sin embargo, el enfoque del trabajo del primero se puede desplazar hacia el soporte del rendimiento del producto que ya se encuentra en el entorno terminado, mientras que el ingeniero DevOps se centra más en preparar este mismo entorno.

Todos los días, un ingeniero DevOps opera con una gran cantidad de herramientas. Se pueden dividir condicionalmente en diferentes grupos, por ejemplo, aquellos relacionados con el entorno de implementación continua (herramientas de CI / CD), configuración automática, monitoreo, infraestructura en la nube, etc. Al elegir cada tecnología, el especialista debe ser claramente consciente de cómo la implementación de u otra decisión afectará los procesos en el equipo. Dichos empleados deben tener una perspectiva amplia: esta es una profesión muy popular en nuestro tiempo, y los verdaderos profesionales valen su peso en oro.

Las principales tareas de un administrador de sistemas en un equipo son garantizar el funcionamiento de la red y los recursos de hardware. Casi siempre, esta lista también incluye soporte para recursos de software y resolución de algunos problemas de seguridad de la información, por ejemplo, configuración de firewalls, conexiones VPN, administración de acceso a recursos e instalación de antivirus.

Son los administradores del sistema quienes tienen delegada la necesidad de comunicarse con los usuarios finales. ¿El correo no funciona? Teclado roto? Todas estas preguntas al administrador del sistema. A menudo, los administradores del sistema ayudan a los desarrolladores a configurar una red, servidores. Los administradores del sistema no participan directamente en el proceso de desarrollo.

Pero el trabajo de un ingeniero DevOps se centra precisamente en la integración de los procesos de desarrollo, pruebas, despliegue y soporte de productos y servicios de software, implica una estrecha interacción con los desarrolladores y la implicación en el proyecto. En la caja grande, las tareas de un ingeniero DevOps incluyen:

diseño de infraestructura;

configuración, soporte y gestión de servicios en la nube;

gestión de configuración de servidores de trabajo, prueba y producción;

Gestión de integración continua de CI/CD (las herramientas de Jenkins/Bamboo/TeamCity vienen inmediatamente a la mente en este punto);

migración de aplicaciones a la nube;

monitoreo de infraestructura y aplicaciones;

gestión de entrega de software.

Por lo tanto, la tarea principal de un ingeniero DevOps es hacer todo lo posible para garantizar que el cliente reciba una versión de software funcional a tiempo.

Comencemos con el hecho de que DevOps es un enfoque, no un ingeniero. El papel de DevOps en el proyecto es fundamental. El proyecto y todo lo relacionado con él se basa en procesos DevOps. DevOps se trata de unir diferentes partes de todo el ecosistema (Dev, QA, Ops, Sec) y proporcionar automáticamente SDLC.

Basado en el enfoque DevOps y los ingenieros que lo brindan, el proyecto obtiene flexibilidad, automatización, continuidad y tolerancia a fallas, administración de costos, recursos, etc.

¿En qué se diferencia DevOps de un administrador de sistemas? Casi todos. El administrador del sistema es responsable de tareas específicas: administrar el acceso de los usuarios, configurar el componente de red de la infraestructura, servidores de correo/DNS, VMS, actualizaciones del sistema operativo, etc. En el ecosistema complejo y los procesos asociados con el proyecto y SDLC, este es un pequeño parte de las tareas relacionadas con Ops.

Las principales responsabilidades de DevOps incluyen los siguientes procesos fundamentales en la vida del producto:

CI/CD (Jenkins, Teamcity, Octopus, Gitlab CI, etc.);

Automatización (automatización de pruebas, automatización de tareas, automatización de actualizaciones, automatización de copias de seguridad, TODA la automatización);

IaC (Terraform, Cloud Native: ARM, Cloud Formation, etc.);

alertas/supervisión;

Copia de seguridad de restauracion;

Recuperación de desastres;

Gestión de Seguridad (DevSecOps);

Gestión de versiones y más.

Cada elemento se puede descomponer en docenas de subtareas. La tecnología cuenta por cientos. La base se ve así:

herramientas de CI/CD (por ejemplo, Jenkins);

Nube (AWS/Azure/GCP);

IaC (Terraform);

Contenedores (Docker, K8s);

Lenguajes de Scripting (PS, Python, Bash).

Los estaré esperando

Autor Donal Sandro Noblejas Huamán

Lima Perú 🇵🇪

Whatsapp:51924118897 – 51939416004

Sitio web verlista.com

verlista.com

https://pe.linkedin.com/in/donal-sandro-noblejas-huaman

You may also like

Leave a Comment

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00