arrow_back Volver
Inicio keyboard_arrow_right Artículos keyboard_arrow_right Artículo

Los microservicios permiten una rápida integración a nuevas tecnologías

Javier Flores Herrera

Estudiante en Ciencia de Datos

av_timer 2 Min. de lectura

remove_red_eye 3510 visitas

En el mundo de la programación siempre se están buscando nuevas y mejores formas de crear sistemas, como consecuencia van apareciendo nuevas tecnologías. Si consideramos un sistema monolítico que está en producción, es muy probable que nunca se integren nuevas tecnologías en este sistema debido a que implica: reestructurar el código, riesgos de seguridad, nuevos bugs, nunca se sabe cuál tecnología trae mejores beneficios al negocio. Empresas grandes como Netflix, eBay, Amazon, Twitter, Paypal han migrado sus sistemas monolíticos a una arquitectura de microservicios ya que les permite una rápida integración a nuevas tecnologías. Les explicaré en este artículo cómo es esto posible.

Para empezar, necesitamos definir qué es un microservicio, estos son pequeños servicios autónomos e independientes que exponen sus funcionalidades a través de APIs. Imaginemos que un sistema monolítico es un cuadrado azul, si dividimos este cuadrado en piezas de lego, cada pieza sería un microservicio con una función específica que se encuentra desocoplada del resto, es decir, funciona por si sola sin depender de otras. Pero ¿Qué tan pequeño debe ser el programa para considerarse un microservicio? Por lo general esto es algo intuitivo, si consideras que el servicio ya no es grande, estas en el tamaño correcto para considerarse microservicio ;).

Considerando que cada microservicio es un programa separado del resto, podemos decir que esta característica nos permite aislar el código. Por lo tanto, tenemos un conjunto de microservicios independientes y comunicados, lo que nos proporciona un nivel de encapsulación y desacoplación que no tienen los sistemas monolíticos donde suele suceder que si aparece una falla en el código todo el sistema empieza a fallar, en cambio con el uso de microservicios si uno de estos llega a fallar, todo el sistema sigue funcionando. Es importante mencionar que cuando se modifican estos microservicios no deben de afectar a los demás ni requerir cambios en otros microservicios, por lo que las interfaces deben estar muy bien definidas y estandarizadas.

Al desarrollar con microservicios, terminaremos con un sistema compuesto por muchos de estos, por lo que podemos elegir la tecnología que más nos beneficie para el desarrollo de cada microservicio, es decir, podemos tener microservicios desarrollados en java, nodeJs, c++, python etc. Esto se debe a que sólo nos interesa obtener el output correcto del microservicio en base a un input y no la forma en que se realizo todo el proceso dentro del microservicio. Incluso podríamos crear diferentes microservicios para realizar operaciones crud en distintas bases de datos como: mysql, json, triplestore, etc.

En conclusión, el desarrollo de microservicios nos permite que sea fácil desarrollar, probar y escalar los sistemas lo que facilita la adopción a nuevas tecnologías debido a que no necesitamos cambiar todo el código del sistema, sólo una pequeña parte de este para integrar nuevas funcionalidades. Además nos permite detectar fácilmente en que parte del sistema se puede encontrar un fallo y no tener que buscar en todo el sistema.