kantver - Fotolia
Habilidades del ingeniero DevOps necesarias para el despliegue continuo
El ingeniero DevOps mantiene una posición crítica en las TI modernas. El papel requiere alguien que pueda hacer el trabajo técnico y administrar equipos múltiples con diferentes prioridades.
El ingeniero DevOps se está convirtiendo rápidamente en un papel crítico para las empresas de vanguardia. Sin un claro camino de avance para la posición, los departamentos de TI deben identificar la combinación correcta de habilidades del ingeniero DevOps en nuevos empleados o empleados con experiencia.
Una carrera de ingeniero DevOps podría parecerle atractivo si usted tiene habilidades técnicas duras en varias plataformas, así como habilidades sociales tales como la comunicación eficaz y oportuna.
Las empresas necesitan orientación de alto nivel para la convergencia exitosa de desarrollo, pruebas y operaciones como parte de una iniciativa de entrega continua, o DevOps. En un entorno DevOps, alguien con habilidades específicas –incluyendo un conocimiento integral de las prácticas de colaboración y de negocios– es necesario para mantener las ruedas rodando y lograr los mejores resultados de negocio. Esto ha dado lugar a la aparición de los ingenieros DevOps.
La lista de habilidades base requeridas del ingeniero DevOps es larga; aún más son necesarias para dominar el papel. Sin embargo, no hay una ruta de carrera formal para convertirse en un ingeniero DevOps.
Habilidades de plataforma son imprescindibles
Las organizaciones de TI suelen estar construidas en torno a la idea de una pila, la combinación de sistemas operativos imperantes, servicios y conjuntos de herramientas asociadas para desarrollar, implementar y dar soporte a las aplicaciones. A menudo existe cierta superposición o entrenamiento cruzado entre pilas. Pero los ingenieros DevOps más exitosos y efectivos tienen la experiencia más profunda en administrar la pila que la empresa utiliza actualmente o planea utilizar. Las tres pilas principales son Microsoft Windows Server, las distribuciones de servidores Linux y una estructura de nube.
La pila de Microsoft típicamente incluye sistemas operativos como Windows Server 2012 R2 y Windows Server 2016; plataformas de gestión como System Center y sus diferentes iteraciones, como Operations Manager; aplicaciones de soporte, tales como SQL para base de datos o SharePoint para la colaboración, y así sucesivamente.
Una pila de Linux se basa en el kernel del sistema operativo de código abierto. También incluye muchas otras herramientas de código abierto, como Chef y Puppet, así como marcos de código abierto, como OpenStack, que crean una nube privada. Las pilas de código abierto han ganado atención en los últimos años a medida que el número de máquinas virtuales prolifera, haciendo los licenciamientos y los acuerdos de mantenimiento de software costosos.
Las opciones de nube pública incluyen Microsoft Azure –que puede complementar las pilas de Microsoft–, así como Google Compute Platform y Amazon Web Services, que pueden complementar las pilas Linux. Ir con la nube requiere que un ingeniero DevOps tenga un sólido conocimiento de los servicios del proveedor de nube elegido, las opciones de gestión y la estructura de costos.
Las habilidades técnicas son parte del trabajo
Las habilidades del ingeniero DevOps incluyen construir, desplegar y operar software, así como la gestión de la pila. También deben construir una amplia experiencia con muchas herramientas específicas y adoptar las mejores prácticas.
Saber escribir código. DevOps puede tener diferentes significados para diferentes organizaciones, pero en última instancia se trata de poner nuevo código en desarrollo y en producción rápidamente. Los ingenieros DevOps podrían no estar escribiendo código de bajo nivel, pero necesitarán entender el código, desarrollar guiones y hacer frente a las integraciones –tales como hacer que la nueva versión del código hable con la base de datos SQL– para hacer que los despliegues se ejecuten en el lado de las operaciones. Los ingenieros DevOps deben tener una base sólida en PHP, Python, Perl, Ruby y otros lenguajes de programación. Los ingenieros DevOps también se benefician de una formación en herramientas de gestión de la integración, como Jenkins, Maven o Apache Ant.
Saber cómo gestionar el cambio. La velocidad y la fluidez son las características de una cultura DevOps; el código siempre está cambiando, y se necesita sólidas habilidades de colaboración y de gestión de versiones para ensamblar los componentes correctos y crear una versión que funcione. Los ingenieros DevOps trabajan con herramientas tales como Git, Perforce y Apache Subversion para el control de versiones y revisiones. Para implementar mejor este código en constante cambio, muchos ingenieros DevOps abrazan la gestión de la configuración, que casi siempre está automatizada para acelerar el ritmo de lanzamiento de nuevas versiones. Muchos ingenieros DevOps son expertos con herramientas como Puppet, Chef y Vagrant.
Conocer cómo aprovisionar y desplegar. Los ingenieros DevOps no solo pastorean el código a través del desarrollo; también proporcionan el puente necesario para facilitar esos nuevos lanzamientos en el lado de las operaciones. Las habilidades del ingeniero DevOps se extienden al campo del hardware e infraestructura de TI: servidores y almacenamiento, redes y sistemas operativos. Debido a que el ingeniero DevOps conoce toda la pila de TI, puede guiar el aprovisionamiento y la implementación de cada nuevo lanzamiento. Este conocimiento por lo general se extiende a la creación y mantenimiento de servicios fiables y disponibles.
Saber cómo se desempeña la liberación. Un ingeniero DevOps es el consultor consumado, alguien que pueda evaluar objetivamente el desempeño de cada nueva versión, realizar ajustes en los recursos y plataformas provisionados según sea necesario, utilizar varias herramientas para medir el rendimiento de la carga de trabajo y analizar los resultados del registro, y luego compartir ese contenido con todo el personal para mejorar iteraciones futuras. Los ingenieros DevOps conocerán herramientas como Nagios, Zabbix, Sensu, Amazon CloudWatch, Splunk, New Relic y otros productos que monitorean el desempeño a nivel local y en las plataformas de nube pública.
Comunicar y gestionar al personal
Las habilidades del ingeniero DevOps no terminan con el conocimiento técnico y un conjunto de herramientas de gestión. El éxito en este papel también depende de las habilidades blandas que se encuentran en los líderes y gerentes de negocios.
Conocer las plataformas de soporte. El software moderno es más acerca de la integración de plataformas y servicios de escribir código de bajo nivel. Por ejemplo, nadie crea funcionalidades de mensajería o de base de datos hoy en día; el código se integra a las plataformas existentes, tales como Exchange, SQL, Redis o un sinnúmero de otras aplicaciones empresariales de terceros o de código abierto que utilizan API comunes. Estas plataformas son generalmente parte de la pila de negocios, pero los ingenieros deben saber cómo usarlas. Por ejemplo, si el negocio ata un nuevo producto de software a un back end de SQL, un ingeniero DevOps debe saber cómo configurar la base de datos y hacer consultas SQL complejas.
Saber gestionar y comunicar. Un ingeniero DevOps representa un papel de alto nivel que se extiende por varios equipos dentro de una organización. Un ingeniero DevOps funciona entre diferentes disciplinas, interactuando con los desarrolladores, personal de TI y líderes de negocios con el mismo aplomo. Esto significa que las habilidades de un ingeniero DevOps incluyen ser un comunicador experto, que es también un administrador capaz, que puede hablar el idioma, hacer la caminata y ver el punto de cada equipo, y luego reunir a esos profesionales dispares de una manera productiva para garantizar desarrollo continuo rápido que les permita lograr los mejores resultados de negocio.
Saber cómo solucionar problemas. Con tantas personas y distintos intereses en juego en el proceso DevOps, hay un sinnúmero de problemas técnicos y profesionales que inevitablemente surgirán con el tiempo. Entre ellos se incluyen los conflictos interpersonales, roles y responsabilidades cambiantes dentro de la organización, y procesos de negocio rotos. Un ingeniero DevOps debe evaluar estas situaciones y buscar soluciones constructivas que permitan lograr los objetivos, manteniendo felices a los componentes. Por ejemplo, si un ciclo de lanzamiento se ha retrasado por pasos manuales ineficientes, un ingeniero DevOps puede hacer un caso técnico y de negocio para invertir en automatización.
Haciendo el viaje
Los ingenieros DevOps a menudo tienen uno de los papeles más desafiantes técnicamente y profesionalmente en los negocios modernos. Las personas que se enfrentan a los retos reconocen las recompensas que se extienden más allá del cheque de pago. Para algunos ingenieros DevOps, hay una emoción innegable en participar en todo el ciclo de entrega de software. Otros disfrutan de romper las barreras tradicionales y fusionar los silos de desarrollo y operaciones. Otros más tienen una habilidad especial para la racionalización de los procesos y la optimización de cómo las aplicaciones se implementan y ejecutan.
En última instancia, el verdadero reto de ser un ingeniero DevOps es llegar allí en primer lugar. Actualmente no existe una ruta formal de la carrera y la lista de habilidades es larga. Un ingeniero DevOps no está hecho; tal persona evoluciona y crece dentro del papel, por lo general comenzando como un profesional de TI con un fuerte interés en la codificación, o como un desarrollador dedicado a las pruebas y despliegue de código. En ambos casos, el candidato se extiende mucho más allá de los típicos silos, cruzando disciplinas para lograr una visión integral de la empresa y su desarrollo de productos de software.
Los ingenieros DevOps no solo adoptan las nuevas habilidades de programación, las herramientas de automatización o las tácticas de aprovisionamiento de máquinas virtuales. Ellos colaboran entre equipos, escuchan las ideas y preocupaciones de los compañeros, y buscan maneras de mejorar los procesos y métodos para hacer las cosas. No es solo el software, sino más bien el proceso, que mueve el negocio hacia adelante y proporciona un beneficio estratégico.