(Otro) Cambio de Paradigma
Por Javier García Jaime
Mi nombre es Javier y puedo ser etiquetado como Millennial aunque esta sea una palabra a la que no le tengo especial afecto. A pesar de ello, me podría autodenominar de esta forma. Si asumo dicha etiqueta y hablo desde la perspectiva del rango que da la edad que se supone tengo ubicándome como Millennial, puedo decir que ya llevo tiempo en el mundo de la informática.
Cuando echo la vista atrás, recuerdo cuando ensamblaba estaciones y servidores prácticamente pieza a pieza, para después instalar el sistema operativo, configurarlo, securizarlo, llegar a montarlo en un rack para después ponerlo en marcha y finalmente comprobar que cumplía con su función y todo encajaba a la perfección. Había entonces toda una liturgia para poner en marcha aquel pesado artilugio. Algunos de los lectores se sentirán identificados con este proceso y otros ni siquiera sabrán de qué hablo; ahora la nube nos proporciona mucha más potencia y versatilidad con un par de clicks o un simple script.
De la misma manera, muchos de los lectores no serán ajenos a la cantidad de ofertas de trabajo que se pueden ver actualmente con el título DevOps.
La abreviación DevOps como tal sólo nos indica que dos departamentos van a encontrarse –Development por un lado y Operations por el otro- con un objetivo común. Hasta aquí todo queda claro y creo que no estoy contando nada nuevo para cualquier persona relacionada con el mundo de la informática.
El termino DevOps no habla de una tecnología, ni de un conjunto de herramientas, ni siquiera es un departamento dentro de una empresa, tal y como nos quieren hacer creer las ofertas que pululan por LinkedIn, DevOps es simplemente una cultura o una manera de entender y articular el día a día de un conjunto de personas que buscan la misma meta: crear un producto con la mayor calidad posible y presentarlo al mercado en el momento adecuado, ni antes ni después.
No obstante, este texto no tratará de convencer al lector de las bondades o carencias de esta filosofía de trabajo. De la misma manera que hace unos años dimos paso a la virtualización, con todas las ventajas en eficiencia, comodidad, velocidad y optimización de recursos que aportaba, ahora haremos lo propio con algunos nombres y acrónimos que resuenan allá donde miramos: DevOps; que intenta integrar lo máximo posible los equipos de operaciones y desarrollo, DevSecOps; centrados en poner el mismo énfasis en el desarrollo, la seguridad y las operaciones, SRE (Site Reliability Engineer); que tomará prestada la misma filosofía para mantener las aplicaciones y sistemas funcionando y con buena salud dentro de una organización, MLOps; que dedicará sus esfuerzos a integrar equipos de Inteligencia Artificial y Machine Learning con operaciones y un largo etcétera de nombres terminados en Ops.
Conceptos como la comunicación continua entre equipos, el feedback de usuarios y clientes, la detección de tareas repetibles y su posterior automatización mediante técnicas de programación, el control de versiones distribuido, la integración continua y el despliegue continuo del código (CI/CD), el uso de microservicios en lugar de aplicaciones monolíticas, las pruebas de calidad del código, la llegada al mercado de manera temprana, son ideas y metodologías que deben resultarnos más que familiares en la actualidad.
Para los profanos en la materia, un sencillo ejemplo: basta con revisar el número de actualizaciones que recibe nuestra aplicación móvil favorita en un periodo relativamente corto, fruto del esfuerzo de un conjunto de personas por hacer llegar un producto mejorado, testeado y con las funcionalidades que el mercado espera de de dicha aplicación en el tiempo adecuado. No basta con llegar, hay que llegar a tiempo. Y para ello se deben adoptar metodologías que permitan dar esta capacidad de adaptación y de respuesta.
En definitiva, no se trata de usar una nube u otra, sea privada o pública, o un sistema operativo concreto (los fanatismos los dejamos para otro día) sino de una cultura de trabajo.
La tecnología subyacente, los lenguajes de programación o scripting y las herramientas utilizadas para poner en práctica una cultura DevOps, serán elección del equipo que lo quiera poner en práctica y tendrán la misma validez.
Porque como siempre ocurre en un mundo tan cambiante, un nuevo paradigma ha llegado para quedarse y es mejor estar preparados que dejarnos llevar por el.