Ensayo Microservios Vs Web Services

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

Web Services vs Microservicios

Mario Adrian López Méndez 153172


Los microservicios se convirtió en una solución revolucionaria en el nicho de
software solo recientemente. Sin embargo, se han implementado en todas partes,
desde plataformas de desarrollo de blogs hasta software corporativo que cubre
cientos de tareas diferentes. Muchas veces nos encontramos con artículos o notas
informativas donde los propietarios de las empresas dicen que son los
microservicios que los ayudan a resolver todos los problemas de las soluciones de
software existentes basadas en la arquitectura monolítica.
Sin embargo, según la práctica, la arquitectura de microservicios no siempre es la
solución más adecuada. Es mucho mejor, en algunos casos, emplear el buen
desarrollo de servicios web. De manera similar a los microservicios, los servicios
web usan dominios separados (a diferencia del código monolítico que tiene un
almacenamiento de datos por separado, un modelo de datos, etc.), pero tienen una
funcionalidad más amplia.
Un servicio web o un web service es un servicio ofrecido por una aplicación que
expone su lógica a clientes de cualquier plataforma mediante una interfaz accesible
a través de la red utilizando tecnologías (protocolos) estándar de Internet. En otras
palabras, un servicio web es una forma de exponer la funcionalidad de una
aplicación a otra aplicación, sin una interfaz de usuario. Es un servicio que expone
una API sobre HTTP.
Los servicios web permiten que las aplicaciones desarrolladas en diferentes
tecnologías se comuniquen entre sí a través de un formato común como XML,
Jason, etc. Los servicios web no están vinculados a ningún sistema operativo o
lenguaje de programación. Por ejemplo, una aplicación desarrollada en Java puede
comunicarse con la desarrollada en C #, Android, etc., y viceversa. El servicio web
es una tecnología de conexión, una forma de conectar servicios juntos en una
arquitectura orientada a servicios (SOA).
Mientras que un microservicio es un servicio de implementación independiente
modelado alrededor de un dominio comercial. Es una variedad especial de
arquitectura de software distribuida por dominios separados. Es de naturaleza
estrecha y centrada. Esto significa que cada microservicio maneja una determinada
tarea, utiliza el almacenamiento de datos autónomo y su propio medio
(independiente de cualquier módulo externo) de conexión con el almacenamiento.
De forma similar a los servicios web, puede combinar fácilmente microservicios en
Java, C #, Python e incluso en lenguajes de desarrollo de software móvil.
Los microservicios están diseñados para hacer frente a fallas de grandes
aplicaciones. Debido a que múltiples servicios únicos se comunican entre sí, puede
suceder que un servicio en particular falle, pero las aplicaciones más grandes en
general no se ven afectadas por la falla de un solo módulo.
Teniendo en cuenta las ventajas de los servicios web y los microservicios, podemos
observar que ambas soluciones son superiores a las aplicaciones con arquitectura
monolítica. Por ejemplo, una aplicación con arquitectura monolítica, si se encuentra
con la necesidad de personalizar una función por separado, tendrá que rehacer toda
la arquitectura. Esto lleva mucho tiempo y puede causar errores graves. Además, el
software monolítico no es a prueba de fallas. En caso de que aparezca un error en
un módulo, el resto de la estructura del software se desmorona y todos los procesos
se detienen.
Los microservicios y servicios web representan componentes de protocolos de red
separados e interconectados que funcionan de forma independiente. Si necesita
personalizar un componente, no se requerirán transformaciones adicionales en el
resto de la estructura de la aplicación.
Un dato interesante es que, cualquier microservicio se puede incluir en un servicio
web. Es decir. el servicio web es más un concepto generalizado que implica una
funcionalidad más amplia en general y un microservicio maneja solo una única
tarea. Tomando una tienda en línea como ejemplo, un servicio web puede tener
todas las funciones de interacción de la base de datos, mientras que un
microservicio solo puede realizar una función, por ejemplo, procesar solicitudes de
registro, autenticación y contabilidad de usuarios.
Entonces ¿Cuál es mejor entre estos dos conceptos de arquitectura de desarrollo
de aplicaciones? De hecho, ambas soluciones ofrecen una administración sencilla
de seguridad contra fallas en aplicaciones comerciales que no aceptan ningún
tiempo de inactividad. Ofrecen dejar de lado la estructura monolítica de la aplicación
proporcionando un conjunto interconectado de componentes que funcionan de
forma independiente.
Cada microservicio / servicio web está conectado a una fuente de datos separada
(DBMS). Por lo tanto, el uso simultáneo de las características múltiples de la
aplicación requerirá que su estructura ejecute docenas de solicitudes de los
usuarios. Cuantos más componentes de microservicio tenga la aplicación, más
accesos de almacenamiento hay. Como resultado, un servidor puede sobrecargarse
y la aplicación puede derrumbarse bajo la presión de usuarios activos. Los servicios
web pueden ayudar a encontrar un equilibrio entre el acceso a escala y un nivel de
seguridad contra fallas. Son menos seguros contra fallas que microservicios, pero
al mismo tiempo, tienen menos impacto en el servidor.
La necesidad de personalizar la estructura monolítica inicial del software es otra
razón. Supongamos que decides descentralizarlo. Probablemente se enfrentará al
problema de que ciertos componentes que, en teoría, pueden separarse en
microservicios, simplemente no funcionen por separado dentro de la funcionalidad
existente. No sería una decisión demasiado racional reescribirlos desde cero. Es
exactamente por eso que a veces es mejor proporcionar dichos componentes en
forma de una solución compleja: servicio web.
En conclusión, al crear una aplicación para empresas, definitivamente tendrá que
proporcionarle una amplia seguridad ante fallas. Los microservicios y los servicios
web son aspectos que pueden influir positivamente en este factor. Decidir entre web
servicios o microservicios será cuestión de valoración de la empresa.

También podría gustarte