DevOps versus SysAdmin: ¿Rivales o Colaboradores?
Hace una pocas publicaciones atrás hablábamos sobre los SysAdmin, específicamente en la publicación llamada “Sysadmin: El Arte de ser un Administrador de Sistemas y Servidores”. Y decíamos que los mismos eran una especie de “… experimentado Profesional IT todo en uno, cuyo día normal suele estar lleno de una gran cantidad de variadas actividades programadas o no… ” y “… el responsable de garantizar el correcto funcionamiento de toda plataforma tecnológica e informática de donde trabaja, …”.
En esta publicación hablaremos de los DevOps, esa especie de nueva “raza” (generación) de Desarrolladores de Software, de la que se escucha desde aproximadamente ocho o diez años atrás. Esta nueva generación de programadores nacida de las entrañas de los Centros Tecnológicos y las modernas Empresas IT de alto renombre mundial, y que debe su nombre al término derivado de las palabras inglesas “Development” y “Operation”.
Introducción
En pocas palabras podríamos decir que un DevOps es un programador capaz de realizar todas las funciones que intervienen en el ciclo de vida del “Desarrollo del Software” y más, tales como: Programación, Operación, Pruebas, Desarrollo, Soporte, Servidores, Base de Datos, Web y cualquier otra que sea necesaria.
Se dice que esta nueva “Generación de Desarrolladores de Software” surgió en esas pequeñas, modernas y exitosas “Startup Tecnologicas” formadas por pequeños grupos de “Especialistas TI”, principalmente Desarrolladores de Software.
Y como ya sabemos por lo general esas “Startups” lo que hacen es desarrollar soluciones de software expeditas (de 6 a 12 meses) y así resolver problemas y necesidades puntuales y complejas del mundo real. Esto hace que las mismas, tiendan a tener una tasa de mortalidad extremadamente alta.
De esa realidad vivida en esas Startups se origina una nueva “Cultura de Desarrollo de Software” basada en la filosofía conocida como “Release Early, Release Often” (Lanzamientos Tempranos, Lanzamientos Frecuentes) donde el Software es modificado y lanzando “On Fly” (En vuelo), es decir, sobre la marcha para ser utilizado inmediatamente por los usuarios del mismo.
Usuarios que alimentaban a los Desarrolladores a partir de los “Feedbacks” obtenidos con los que realizaban las mejoras y actualizaciones al código sobre la marcha.
Esta nueva “Cultura de Desarrollo de Software” ha ido cambiando la “tradicional Cultura de Desarrollo de Software” en donde cada integrante de una “Unidad TI” (Informática / Tecnología) tiene un cargo con funciones bien definidas y especificas, tales como: Desarrollador Junior, Desarrollador Senior, Administrador de Base de Datos, Administrador de Sistemas y/o Servidores , Analista y/o Probador de Aplicaciones, Soporte Técnico, entre otros.
Esta situación es la que hace precisamente un DevOps se parezca mucho a un SysAdmin, es decir, pequeñas Empresas de gran actividad que tratan de reducir el tamaño del personal de Especialistas TI para producir una disminución de los costos operativos de la misma y toda la organización. Dando origen a “Desarrolladores de Software” y “Administradores de Sistemas y Servidores” que manejan comunes muchas áreas y funciones multi-disciplinarias de la tecnología.
Por ende, el DevOps no es solo una persona o un cargo, es también una tendencia, un movimiento, una cultura organizacional muy extendida actualmente. Sobre la que se puede saber más leyendo estos otro 2 artículos llamados: “DevOps” y “¿Qué es DevOps?“.
Contenido
Lo antes expuesto es precisamente por lo que actualmente los DevOps y Sysadmin son vistos literalmente como unos “Jack of all Trades” o “Master of None”, es decir, unos “Sirvientes de todo” o “Maestros de nada”, ya que son capaces de “hacerlo todo o muchas cosas sin llegar a ser experto en nada”.
Lo que tiende a devaluar el valor de dichos profesionales en el mercado laboral, ya que la especialización a largo plazo es la mejor inversión para un profesional y una organización. Esto debido a que la tecnología de la información está compuesta por múltiples y extensas áreas de conocimiento que virtualmente es imposible dominar (aprender, retener, actualizar) completamente para un solo profesional.
Para un DevOps o un Sysadmin poder contar con la capacidad intelectual de resolver casi cualquier problema tecnológico que se presente implica un costo cognitivo altísimo, lo que favorece que los mismos tiendan a presentar ciertos grados de “Estrés laboral” (Burn Out), y sufran en consecuencia una disminución en su productividad o eficiencia laboral.
SysAdmin
Los Sysadmin tienden a abarcar las siguientes funciones y actividades:
- Implementar nuevos o remover obsoletos
- Realizar respaldos
- Monitorizar el rendimiento
- Administrar los cambios de configuración
- Operar las Aplicaciones y los Sistemas Operativos
- Gestionar las cuentas de usuarios
- Vigilar la seguridad informática
- Afrontar los fallos y las caídas
- Atender los requerimientos de los usuarios
- Reportar a los niveles directos responsables de la Organización
- Documentar las actividades informáticas del Sistema y la Plataforma
Y ha tener ciertos conocimientos de:
- Programación
- Bases de Datos
- Seguridad Informática
- Redes
- Sistemas Operativos
DevOps
Los DevOps tienden a dominar una gran variedad de lenguajes de programación, además de poseer capacidades técnicas y habilidades de gestión. Un DevOps suele ser también una mezcla de Desarrollador de Software y Sysadmin cuya función suele verse como una eliminación de las barreras entre ambos perfiles. Por lo que es de esperar que un DevOps posea conocimientos tanto del Software como del Hardware (Infraestructura/Plataforma) de la Organización donde se desempeñe.
Por ende, los DevOps suelen ser capaces de:
- Escribir código y realizar la función de un Programador.
- Administrar Servidores Multi-Plataformas y realizar la función de un SysAdmin.
- Gestionar Redes y realizar la función del NetAdmin.
- Manejar una base de datos (BD) y realizar la función de un DBA.
Esto nos deja como conclusión que un buen DevOps:
Es capaz de realizar las mínimas actividades y funciones de cada especialista de área en una Unidad TI. Lo cual suele no darse con frecuencia en el caso inverso, para los SysAdmin y otros Especialistas TI, ya que un SysAdmin, un NetAdmin, un DBA o un Especialista de Soporte Técnico, por lo generalmente no tiende a para escribir código consistente y eficientemente en lenguajes de alto nivel o popularidad comercial.
Lo que nos deja con que un DevOps, suele tener un conocimiento que le permite sustituir a todos los demás, sin que se de lo mismo a la inversa. Y esto hace que los DevOps sean más apreciados en el mercado laboral, es decir, estén de moda y toda pequeña o mediana organización (principalmente) quiera uno, causando una desvalorización del resto de los cargos tradicionales dentro de una Unidad TI.
Y que estos 2 cargos son de naturaleza diferente, aunque compartan muchas tareas que son comunes. Diferencias tales como que los DevOps:
- Colaboran en un alto nivel de las Organizaciones y garantizan la sinergia en cada sección de la empresa, mientras los SysAdmin están más enfocados a Gestionar (Configurar, Mantener y Actualizar Servidores y sistemas informáticos).
- Tienden a trabajar más a menudo en proyectos con un producto de extremo a extremo, mientras que los SysAdmin tienden a estar más limitados a un alcance y una responsabilidad más pequeña (puntual) con respecto a los mismos proyectos/productos.
- Suelen poder hacer todo lo que un SysAdmin hace, pero un SysAdmin no suele poder hacer todo lo que hace un DevOps.
Conclusión
El objetivo que persigue el termino “DevOps” como tendencia o cultura organizacional es impulsar la cultura de equipo, basándose en la colaboración y comunicación entre los individuos de las distintas áreas involucradas en el Desarrollo de Sistemas de software. Por lo que el “DevOps” en una Organización favorece la integración entre los miembros de las área de Desarrolladores de Software, los Operadores de los Sistemas, o los Administradores de Sistemas y Servidores, tratando de hacerla más perfecta, transparente y amigable.
Aunque algunos dentro de las Organizaciones tiendan a ver el efecto contrario, es decir, a ver como la cultura DevOps representa la destrucción de la mayoría de los roles dentro de las Unidades TI. Por ejemplo, como los programadores tienden a convertirse en DevOps para luego reemplazar a los SysAdmin, NetAdmin, DBA, Especialistas de Soporte y demás, incluyendo a los Desarrolladores de Software que solo escriben código.
El artículo DevOps versus SysAdmin: ¿Rivales o Colaboradores? aparece primero en DevOps versus SysAdmin: ¿Rivales o Colaboradores?.