Cómo iniciarse en la arquitectura de Microservicios
Súbete al coche de los microservicios, una arquitectura muy solicitada hoy en la industria del software 🔥

Esta es una preguna básica que muchos desarrolladores se están haciendo, y si eres de los que aún no logra entender este tema, pues entonces este post es para ti, con estos conceptos básicos pero muy importantes tendrás unos excelentes fundamentos, como debe de ser 😉.

Sin embargo, para comprender la arquitectura basada en microservicios hay que saber antes de qué tratan esto de las arquitecturas en Software, en esta entrada puedes encontrar su concepto y aquí algunos ejemplos de arquitecturas.

Entender diagramas te ayudará mucho. Foto de Christina @ wocintechchat.com en Unsplash

Arquitectura monolítica

Comencemos entendiendo primero la sencilla arquitectura monolítica, esta es la arquitectura que probablemente hayamos usado cuando iniciamos a programar, es la más fácil de implementar y la que se usa "por default".

Esta arquitectura básicamente es aquella donde toda la responsabilidad se centraliza en un sólo proyecto y esto incluye a la base de datos.

VentajasDesventajas
Fácil de mantenerDifícil de escalar
Es fácil de hacer testsTiene poca tolerancia a fallos al estar todo el proyecto junto
Ideal para grupos reducidos de desarrolladoresEs poco práctica de codificar cuando hay muchos desarrolladores
Rápida implementaciónComplejidad de código crece rápidamente, más fácil de aplicarle malas prácticas y "código spaguetti"

Vamos a poner un ejemplo, imagina el siguiente proyecto: Mi tienda online Brave Store, si utilizara la arquitectura monolítica entonces tendría el siguiente diagrama:

Brave Store con arquitectura monolítica

Como puedes apreciar, los usuarios o clientes se conectan a mi aplicación web la cual a su vez se conecta a un único API RESTful que contiene una base de datos.

Cabe mencionar también que hay niveles de arquitecturas monolíticas, por ejemplo hay casos donde el frontend y backend están mezclados en un único proyecto, lo cual refuerza más aún las desventajas de esta arquitectura.

Microservicios

Esta arquitectura por su parte convierte tu proyecto en pequeños componentes a modo de piezas de lego y le asignas a cada pieza de autonomía, responsabilidad e independencia.

Foto de Ivan Diaz en Unsplash

Para hablar en un lenguaje más técnico, cada una de esas "piezas" vienen a llamarse servicio o microservicio, todos en conjunto hacen tu proyecto, como verás esto significa un salto evolutivo respecto a la arquitectura monolítica donde estaba todo junto.

VentajasDesventajas
Permite escalar tanto vertical como horizontalmenteMayor complejidad de código
Permite trabajar con múltiples tecnologíasMayor complejidad en la estructura del proyecto y la documentación
Promueve el trabajo en equipo, ideal para equipos numerosos o especializadosCurva de aprendizaje más elevada para el equipo de desarrollo
Despliegue optimizadoDebugging y logging más complejo y elaborado
Testing es más fácilRequiere de mayor atención y cuidado en las prácticas de código, las buenas prácticas y patrones no son opcionales sino obligatorias.
Alta tolerancia a fallos ya que si falla un servicio, los demás al ser independientes seguirán funcionandoMayor número de herramientas de software a utilizar como bibliotecas y software de terceros.

El proyecto de ejemplo utilizando esta arquitectura tendría un diagrama así:

Brave Store con arquitectura microservicios

En buen cristiano como se dice, la mayoría de los microservicios que formen parte de tu proyecto serán APIs RESTful, adicionalmente tendrás un proyecto web en cualquier framework, un proyecto cuya responsabilidad será la de gateway y dependiendo de la complejidad que decidan darle algunos otros proyectos más. Cada uno de los API RESTful con una tecnología distinta y su base de datos si así lo desea el equipo de ingeniería.

Pues bien estimado lector y developer, eso es todo por ahora, en la siguiente entrada profundizaremos más en estos temas tan importantes y tan solicitados por la industria actual. Hasta la vista crack 😉

Si te ha encantado esta entrada, compártela 😊

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *