Por qué los administradores de sistemas deberían convertirse en ingenieros de DevOps

Por qué los administradores de sistemas deberían convertirse en ingenieros de DevOps

No hay mejor momento para aprender en la vida que hoy.


Estamos en 2019 y DevOps es más relevante que nunca. Dicen que los días de los administradores de sistemas han terminado, al igual que la era del mainframe. ¿Pero es esto realmente así?
Como suele ocurrir en TI, la situación ha cambiado. Ha surgido la metodología DevOps, pero no puede existir sin una persona con habilidades de administrador de sistemas, es decir, sin Ops.

Antes de que el enfoque DevOps adoptara su forma moderna, me clasifiqué como Ops. Y sé muy bien lo que experimenta un administrador de sistemas cuando se da cuenta de todo lo que aún no puede hacer y del poco tiempo que tiene para aprenderlo.

Por qué los administradores de sistemas deberían convertirse en ingenieros de DevOps

¿Pero realmente da tanto miedo? Yo diría que la falta de conocimiento no debe percibirse como un gran problema. Es más un desafío profesional.

Los productos a escala web se basan en Linux u otro software de código abierto, y cada vez hay menos personas en el mercado capaces de mantenerlos. La demanda ya ha superado el número de profesionales en este campo. Un administrador de sistemas ya no podrá simplemente continuar trabajando sin mejorar su nivel de habilidad. Debe tener habilidades de automatización para administrar múltiples servidores/nodos y tener una buena comprensión de cómo funcionan para resolver los problemas que surjan.

Antes de convertirse en miembro del equipo DevOps, debe recorrer un viaje bastante largo pero interesante, aprendiendo nuevas tecnologías y diversas herramientas necesarias para mantener el sistema de acuerdo con los estándares DevOps.

Entonces, ¿cómo puede un administrador de sistemas pasar del enfoque habitual de trabajo al nuevo concepto de DevOps? Todo es como siempre: primero debes cambiar tu forma de pensar. No es fácil abandonar el enfoque que se ha seguido durante los últimos diez o veinte años y empezar a hacer las cosas de otra manera, pero es necesario.

En primer lugar, es importante entender que DevOps no es un puesto específico en una empresa, sino un conjunto de prácticas específicas. Estas prácticas implican la distribución de sistemas aislados, la reducción del daño causado por fallos y errores, actualizaciones de software frecuentes y oportunas, una interacción bien establecida entre desarrolladores (Dev) y administradores (Ops), así como pruebas constantes no solo del código, sino también del código. También toda la estructura dentro del proceso. integración y entrega continuas (CI/CD).

Además de cambiar la forma de pensar, es necesario aprender cómo mantener la infraestructura y garantizar su funcionamiento estable, confiabilidad y disponibilidad para la integración y entrega continua de aplicaciones, servicios y software.

Lo que quizás te falte como profesional de operaciones son habilidades de programación. Ahora escribir scripts (scripts), que los administradores de sistemas utilizan para instalar automáticamente parches en un servidor, administrar archivos y cuentas, solucionar problemas y compilar documentación, ya se considera obsoleto. Las secuencias de comandos todavía se aplican en casos relativamente simples, pero DevOps trata de resolver problemas a gran escala, ya sea implementación, pruebas, compilaciones o implementaciones.

Por lo tanto, si quieres aprender a automatizar, necesitas dominar al menos un poco de programación, incluso si no eres desarrollador, porque en esta etapa de tu desarrollo automatización de infraestructura en DevOps requiere esta habilidad.

¿Qué hacer? Para seguir teniendo demanda como especialista, es necesario adquirir las habilidades adecuadas: dominar al menos un lenguaje de programación, por ejemplo Python. Esto puede parecer difícil para una persona que se dedica profesionalmente a la administración, ya que está acostumbrada a pensar que sólo los desarrolladores programan. No es necesario convertirse en un experto, pero sí conocimiento de alguno de los lenguajes de programación (podría ser Python, Bash o incluso Powershell), definitivamente será una ventaja.

Aprender a programar lleva algo de tiempo. Ser consciente y paciente le ayudará a estar al tanto de todo cuando se comunique con los miembros del equipo de DevOps y los clientes. Media hora al día, una hora o más, aprender un lenguaje de programación debe ser tu principal objetivo.

Los administradores de sistemas y los especialistas en DevOps resuelven problemas similares, aunque existen diferencias significativas. Se cree que un administrador de sistemas no puede hacer todo lo que puede hacer un ingeniero de DevOps. Dicen que el administrador del sistema está más centrado en configurar, mantener y garantizar el rendimiento de los sistemas de servidores, pero el ingeniero DevOps tira de todo este carro y otro pequeño carro.

Pero ¿qué tan cierta es esta afirmación?

Administrador del sistema: un guerrero en el campo

A pesar de las diferencias y similitudes señaladas en este artículo, sigo creyendo que no existe una diferencia significativa entre la administración de sistemas y DevOps. Los administradores de sistemas siempre han realizado las mismas funciones que los especialistas en DevOps, solo que antes nadie lo llamaba DevOps. Creo que no tiene sentido buscar diferencias específicamente, especialmente si no está relacionado con ninguna tarea. No olvide que, a diferencia de un administrador de sistemas, DevOps no es un puesto, sino un concepto.

Cabe señalar una cosa más importante, sin la cual una conversación sobre administración y DevOps estará incompleta. La administración de sistemas en el sentido habitual presupone que un especialista tenga un conjunto específico de habilidades y esté enfocado en dar servicio a varios tipos de infraestructuras. No en el sentido de que se trate de un empleado universal, sino en el de que hay una serie de tareas realizadas por todos los administradores.

Por ejemplo, de vez en cuando tienen que actuar como una especie de personal de mantenimiento técnico, es decir, hacer literalmente de todo. Y si solo hay un administrador para toda la organización, generalmente será él quien realizará todo el trabajo técnico. Esto podría ser cualquier cosa, desde mantener impresoras y fotocopiadoras hasta realizar tareas relacionadas con la red, como configurar y administrar enrutadores y conmutadores o configurar un firewall.

También será responsable de las actualizaciones de hardware, la inspección y el análisis de registros, las auditorías de seguridad, la aplicación de parches al servidor, la resolución de problemas, el análisis de la causa raíz y la automatización, generalmente a través de scripts de PowerShell, Python o Bash. Un ejemplo de uso escenarios es la gestión de cuentas de usuarios y grupos. Crear cuentas de usuario y asignar permisos es una tarea extremadamente tediosa ya que los usuarios aparecen y desaparecen casi todos los días. La automatización mediante scripts libera tiempo para tareas de infraestructura más importantes, como actualizar conmutadores y servidores y otros proyectos que afectan la rentabilidad de la empresa donde trabaja el administrador (aunque generalmente se acepta que el departamento de TI no genera ingresos directamente).

La tarea del administrador del sistema es no perder el tiempo y ahorrar dinero a la empresa de cualquier forma posible. A veces, los administradores de sistemas trabajan como miembros de un gran equipo, uniendo, por ejemplo, administradores de Linux, Windows, bases de datos, almacenamiento, etc. Los horarios de trabajo también varían. Por ejemplo, un cambio en una zona horaria al final del día transfiere los casos al siguiente turno en otra zona horaria para que los procesos no se detengan (sigue al sol); o los empleados tienen jornada normal de trabajo de 9 a 5 horas; o está funcionando en un centro de datos XNUMX horas al día, XNUMX días a la semana.

Con el tiempo, los administradores de sistemas han aprendido a pensar estratégicamente y combinar asuntos importantes con tareas rutinarias. Los equipos y departamentos en los que trabajan suelen tener pocos recursos, pero al mismo tiempo todos intentan completar las tareas diarias al máximo.

DevOps: desarrollo y mantenimiento como uno solo

DevOps es una especie de filosofía para los procesos de desarrollo y mantenimiento. Este enfoque en el mundo de las TI se ha vuelto verdaderamente innovador.

Bajo el paraguas de DevOps, hay un equipo de desarrollo de software por un lado y un equipo de mantenimiento por el otro. A menudo se les unen especialistas en gestión de productos, evaluadores y diseñadores de interfaces de usuario. Juntos, estos expertos agilizan las operaciones para implementar rápidamente nuevas aplicaciones y actualizaciones de código para respaldar y mejorar la eficiencia de toda la empresa.

DevOps se basa en el control sobre el desarrollo y operación del software durante todo su ciclo de vida. El personal de mantenimiento debe apoyar a los desarrolladores, y los desarrolladores tienen la tarea de comprender algo más que las API utilizadas en los sistemas. Necesitan comprender lo que hay debajo del capó (es decir, cómo funcionan el hardware y los sistemas operativos) para poder manejar mejor los errores, resolver problemas e interactuar con los técnicos de servicio.

Los administradores de sistemas pueden pasar a un equipo de DevOps si quieren aprender las últimas tecnologías y están abiertos a ideas y soluciones innovadoras. Como dije antes, no es necesario que se conviertan en programadores de pleno derecho, pero dominar un lenguaje de programación como Ruby, Python o Go les ayudará a convertirse en miembros muy útiles del equipo. Aunque los administradores de sistemas tradicionalmente hacen todo el trabajo ellos mismos y a menudo se les percibe como solitarios, en DevOps tienen una experiencia completamente opuesta, donde todos en el proceso interactúan entre sí.

El tema de la automatización es cada vez más relevante. Tanto los administradores de sistemas como los especialistas en DevOps están interesados ​​en escalar rápidamente, reducir errores y encontrar y corregir rápidamente los errores existentes. Así, la automatización es un concepto donde convergen dos áreas. Los administradores del sistema son responsables de los servicios en la nube como AWS, Azure y Google Cloud Platform. Deben comprender los principios de integración y entrega continua y cómo utilizar herramientas como Jenkins.

Además, los administradores del sistema deben utilizar herramientas de configuración y gestión como Ansible, necesario para el despliegue paralelo de diez o veinte servidores.

El concepto principal es infraestructura como código. El software lo es todo. De hecho, para que la profesión de administrador de sistemas no pierda relevancia, basta con cambiar un poco el énfasis. Los administradores de sistemas están en el negocio de servicios y deben poder comunicarse de manera efectiva con los desarrolladores y viceversa. Como dicen, una cabeza es buena, pero dos son mejores.

Y el último detalle de este mecanismo es Git. Trabajar con Git es una de las responsabilidades diarias tradicionales de un administrador de sistemas. Este sistema de control de versiones es ampliamente utilizado por desarrolladores, especialistas en DevOps, equipos ágiles y muchos otros. Si su trabajo está relacionado con el ciclo de vida del software, definitivamente trabajará con Git.

Git tiene muchas características. Probablemente nunca aprenderá todos los comandos de Git, pero comprenderá exactamente por qué es un elemento básico en la comunicación y colaboración del software. Un conocimiento profundo de Git es muy importante si trabajas en un equipo de DevOps.

Si es administrador de sistemas, entonces necesita estudiar mejor Git, comprender cómo se construye el control de versiones y recordar los comandos comunes: estado de git, git commit -m, git add, git pull, git push, git rebase, git branch, git diff y otros. Existen muchos cursos y libros en línea que pueden ayudarte a aprender este tema desde cero y convertirte en un profesional con habilidades específicas. También hay maravillosos hojas de trucos con comandos de Git, por lo que no tienes que abarrotarlos todos, pero cuanto más uses Git, más fácil será.

Conclusión

En última instancia, usted decide si necesita convertirse en un especialista en DevOps o si es mejor seguir siendo administrador del sistema. Como puedes ver, hay una curva de aprendizaje para hacer la transición, pero cuanto antes empieces, mejor. Elija un lenguaje de programación y simultáneamente aprenda herramientas como Git (control de versiones), Jenkins (CI/CD, integración continua) y Ansible (configuración y automatización). Cualquiera que sea la opción que elijas, no olvides que necesitas aprender y mejorar tus habilidades constantemente.

Fuente: habr.com

Añadir un comentario