TacBlog

Teach
Aprendes más si compartes

TacGuía de Transformación Digital: Episodio 1, Los Microservicios

June 12, 2023

By:

Gabriel Moraga

,

CEO

Miembros del equipo uniendo sus manos como símbolo de apoyo mutuo

¡Iniciamos una nueva sección que iremos actualizando con regularidad! Las aventuras de la Transformación Digital hechas guía. Porque es más que un concepto de moda o para tirar en la mesa cuando quieres parecer una persona que sabe del tema (y al final no sabes tanto 😅). 

Pero como somos un team que busca siempre compartir conocimientos vamos a ir completando esta pequeña guía con conceptos que pueden ser claves. Y quisimos partir con los microservicios. ¿Por qué? Pues nos hemos encontrado en diversas instancias con personas que no tienen 100% claro el tema y, además, buscamos en esta ocasión entregarles una versión más orientada a la práctica o cómo lo vemos en uso en el negocio, más allá de lo técnico, pero si quieren leer técnico: acá pueden ver más de eso.

Partamos por el principio ¿qué son los microservicios? 

Una arquitectura de microservicios, o simplemente "microservicios", es un concepto para crear una aplicación en forma de una serie de servicios que se pueden implementar de forma independiente, están descentralizados y se desarrollan de forma autónoma. Estos servicios están poco vinculados, se pueden implementar de forma independiente y se mantienen fácilmente. Así lo define el siempre afamado Atlassian.


¿Pero en la práctica? Qué pueden hacer por ti y por tu negocio (para que no los nombres sólo por nombrarlos)

Esto es como los 3 mosqueteros cuando decían “uno para todos y todos para uno”, ya que el trabajar con microservicios si bien significa una abstracción entre dominios de una solución de software, también debemos pensar que en algún momento todos deberán orquestarse para trabajar juntos.

De aquí nace la primera ventaja que tiene el trabajar con microservicios: puedes asignar personas y recursos (servidores, tráfico de datos, etc) por cada microservicio, lo que hace más fácil entender las necesidades del dominio de la solución y también la administración.

Podrás ver cuál microservicio está requiriendo más CPU, por ejemplo, y aumentarle recursos solo a ese microservicio, y así, poder seguir operando normalmente tu sistema, sin incurrir en mayores costos que tener que “agrandar” todo un monolito.

Otra ventaja es la versatilidad de lenguajes: acá no te amarras con ningún lenguaje. Puedes tener un microservicio desarrollado en Node.js y otros en Golang, y el día de mañana podrías tener otro microservicio desarrollado en Python. Lo importante es escoger el lenguaje de acuerdo a su aptitud al problema/dominio que debas resolver y ponerse de acuerdo en cómo se van a comunicar estos microservicios. Lo mismo para bases de datos, puedes tener una mezcla siendo cada una la mejor para cada microservicio.

Mucha independencia y beneficios, ¿no?

Bueno, también tiene algo que requiere un poco más de trabajo y expertiz: la coordinación entre todos tus microservicios.

Normalmente se construye una capa de coordinación, que en la práctica es un servicio más, que se encarga de ir a consultar a cada microservicio para entregar la respuesta a la petición que hiciste a través del sitio web, mobile app o lo que sea el cliente.


¿Y quien podrá rescatarte para esto? Pues, para esta parte más compleja es esencial tener la ayuda de Tactech 🙂. A un mail de distancia: hola@tactech.cl y conversamos. Y atentos, a nuestro siguiente episodio de #TacGuía, que seguirá muy interesante y práctico.

 

Fotografía de portada: Krakenimages en Unsplash