Hay enormes beneficios derivados de trabajar con una arquitectura de microservicios; ese el camino que estamos tomando aquí en Platzi, por esta razón les queremos compartir esta experiencia, que es el futuro de la web.
Los microservicios han cambiado la forma en que se estructura la arquitectura de una aplicación web, haciéndola más estable, ágil y eficiente.
Pero antes de tratar de los beneficios que representa para el desarrollo esta clase de arquitectura, debemos hacer referencia a los sistemas monolíticos, antecesores de este nuevo modelo.
Desde el contraste entre estas dos formas de organizar la información podremos entender más fácilmente las ventajas derivadas de los microservicios.
Cortesía de Martin Fowler.
Un sistema monolítico es el que se organiza en su totalidad de forma horizontal, allí la información tiene que atravesar el sistema de la misma forma “horizontal” para llegar a su destino, desde la base de datos, pasando por una o varias partes de todo el sistema, hasta llegar al usuario.
Un sistema monolítico corriendo en un solo proceso
Puede ser que algunas partes de la aplicación no necesariamente dependan unas de otras, pero igual están encapsuladas en un solo sistema horizontal, esta estructura en aplicaciones robustas y complejas las podría llevar a tener diferentes desafíos y dificultades.
He aquí una pequeña lista de las situaciones a afrontar:
Escalando un sistema monolítico en múltiples servidores.
Al ver las dificultades que se generan al trabajar en un sistema monolítico, grandes compañías como Netfilx, Amazon y SoundCloud empezaron a contemplar un cambio.
Ahora veremos como un microservicio puede cambiar la forma en que están estructurados estos sistemas monolíticos.
Cortesía de Martin Fowler
Un sistema basado en Microservicios es aquel que distribuye toda su organización de forma vertical, aquí el detalle es que un tipo de información solicitada puede ser consultada a su servicio específico, este servicio independiente en recursos es capaz de responder la solicitud.
Múltiples funcionalidades, múltiples servicios
Debido a que ninguna parte depende necesariamente de otras partes, y cada parte de forma independiente sabe responder ante cualquier situación, esta clase de arquitectura es la más importante hoy en día para un desarrollo ágil y estable en muchos sentidos.
Aqui una lista de las principales características de los microservicios:
Ditribución de microservicios en múltiples servidores.
Este documento es de hace 6 años, y aun para mi concepto esta bastante importante lo que se menciona en el. Platzi tiene algun curso de microservicos de su funcionamiento e implementación? Gracias
Hola anthony, yo tambien estoy buscando algun un curso sobre microservicios y como comunicarlos entre ellos, esperemos que pronto desde platzi hagan alguno, se que en el de Curso Profesional de Arquitectura de Software se toca en una clase, pero busco algo mas profundo.
Saludos y felices fiestas
@Danielalala los microservicios son sistemas chicos que colaboran para formar un todo, y se comunican entre si mas de forma horizontal, no hay jerarquias como en las clase, pero podrias tener fachadas que simplifiquen la comunicación con grupos de microservicios