Vivimos en un mundo completamente digital. En nuestro día a día, utilizamos diversas aplicaciones para comunicarnos con nuestros amigos y familiares, para ver películas o series, escuchar música, aprender sobre aquello que nos motiva, o buscar un nuevo trabajo.

El crecimiento exponencial de este ecosistema digital que nos rodea ha cambiado completamente la manera de diseñar, desarrollar y desplegar las aplicaciones. Hemos pasado  de aplicaciones muy pesadas y poco eficientes a otras formadas de procesos muy pequeños e individuales que permiten llegar a una mayor eficiencia y ahorro de costes.

Durante años, el desarrollo de las aplicaciones se ha planteado desde la perspectiva de una arquitectura monolítica, donde uno o unos pocos procesos muy pesados (como por ejemplo, una arquitectura de dos o tres capas) se despliega en varios servidores. Esta arquitectura conlleva ciclos más lentos de actualización tanto de los servidores como de las propias aplicaciones, debido a las fuertes dependencias entre los distintos componentes que forman la aplicación. También aumenta el tiempo necesario para desplegar las propias aplicaciones, así como la probabilidad de que existan errores no detectados.

Microservicios vs arquitecturas monolíticas

Las arquitecturas monolíticas, complejas de mantener y actualizar respecto a las necesidades de los usuarios, comenzaron a descomponerse en procesos más pequeños y con menor acoplamiento, hasta llegar a los microservicios. Estos son procesos independientes del resto, que pueden ser desarrollados, desplegados, actualizados y escalados de manera individual, lo que habilita reemplazar y actualizar componentes a la velocidad necesaria para cubrir los requisitos que el negocio impone.

Para dar forma a estos microservicios se utilizan los contenedores, que son procesos aislados con todo lo necesario para funcionar en el sistema operativo para el que hayan sido programados.

Sin embargo, los microservicios implican una mayor complejidad lógica debido a la cantidad de conexiones entre procesos, que crecen de forma exponencial con cada nuevo despliegue, por lo que aumenta también la dificultad para administrar la aplicación final. Para solventar esta problemática necesitamos automatizar los procesos que gestionan los microservicios, logrando así una mayor eficiencia sobre los recursos disponibles y disminuyendo la complejidad de la arquitectura al crear una capa de abstracción sobre esta información. Para obtener estos beneficios se utilizan los orquestadores de contenedores.

Kubernetes

Cuando hablamos de contenedores y microservicios, es necesario mencionar Kubernetes, el estándar de facto en cuanto a orquestación de contenedores. Kubernetes nos permite:

  • Aprovisionar y desplegar contenedores de manera fácil y rápida.
  • Controlar la redundancia y la disponibilidad de cada microservicio. para aumentar y reducir las instancias en función de las necesidades.
  • Administrar el balanceo de carga entre servidores.
  • Controlar de manera dinámica los contenedores desplegados, por lo que si un servidor se cae o sus recursos disminuyen, puede mover los contenedores que no están funcionando a otro servidor.
  • Exponer nuestros servicios al exterior, habilitando así el acceso de los usuarios a través de Internet.

En resumen, Kubernetes hace que la gestión de una infraestructura sea mucho más fácil y eficiente.

Metodologías ágiles

También es importante mencionar el cambio en las metodologías de trabajo, pasando de metodologías clásicas o de cascada a metodologías ágiles, iterativas e incrementales estas últimas: en ciclos cortos de tiempo se construye un sistema con los requisitos mínimos, para después ir iterando sobre el mismo sistema o proyecto, añadiendo nuevas funcionalidades y solucionando los posibles problemas que existan. Esto permite tener un producto funcional mucho más rápido.

Otra de las transformaciones importantes que ha traído consigo la arquitectura de microservicios es el cambio de perfil hacia profesionales del mundo IT. Se buscan hoy en día perfiles con conocimientos y habilidades transversales, basados en la filosofía DevOps, en la cual, los equipos de desarrollo y operaciones trabajan unidos en el día a día de sus tareas.

En definitiva, vivimos en una época de cambio constante, donde los ciclos de obsolescencia de lo digital son muy cortos, y es necesario renovarse para adaptarse rápidamente a los cambios.

Tanto los microservicios y los proveedores de cloud en el plano tecnológico, como las metodologías ágiles y la filosofía DevOps, nos permiten adquirir esa capacidad para el cambio si se introducen en la cultura de la empresa con acierto. Es importante conseguirlo por los beneficios que nos aporta.

En el plano económico, el ahorro en hardware es sustancial, y también supone un beneficio económico al realizar una gestión mejor del tiempo. Además, los equipos trabajan más unidos y esto supone una mayor transferencia de conocimiento entre sus miembros, mayor colaboración, y mejora continua de todos nuestros procesos.

Como agentes del cambio, en Teldat apostamos por estas tecnologías como parte de nuestra cultura de empresa, y las situamos en la base del desarrollo de nuestras soluciones SDN / SD-WAN.

 


Sobre el autor

Juan Garcia
Juan Garcia
Ingeniero Informático. Trabaja dentro del departamento de I+D de Teldat como DevOps en el área de infraestructura.

Comparte este post


Nuestras Soluciones Relevantes