Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Apps Monolíticas vs microservicios

3/17
Recursos

Aportes 23

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Pequeño resumen de la clase:
1. Apps Monolíticas: En los 90’s surgieron lenguajes como PHP y Perl, los cuales permitian desarrollar aplicaciones de una forma fácil y rápida. donde se mezclaba código HTML con código PHP para consultas a la base de datos, etc. La desventaja de esto era que se tenía mucha disponibilidad del archivo (si una linea de código fallaba se podía romper toda la aplicación). Con el paso de los años esto se fue mejorando, separando el HTML y el CSS de los archivos PHP mediante el uso de motores de templating, se dejaba la lógica en otros archivos PHP y las consultas a la Base de Datos mediante ORMs. Esto mejoró un poco la estructura de la aplicación, sin embargo teníamos el problema de tener toda la aplicación en un solo servidor. Cuando algo fallaba en el servidor, esto hacía que toda la aplicación dejara de funcionar.
Con el paso de los años se empezó a buscar un concepto llamado “bajo acoplamiento, alta cohesión”, que básicamente consiste en separar componentes de las aplicaciones no solo a nivel lógico sino a nivel físico, será mucho mejor.

2. Microservicios: Los microservicios son un enfoque para el desarrollo de aplicaciones en el que una aplicación se construye como un conjunto de servicios modulares (es decir, módulos / componentes débilmente acoplados). Cada módulo apoya un objetivo comercial específico y utiliza una interfaz simple y bien definida para comunicarse con otros conjuntos de servicios. En lugar de compartir una sola base de datos como en la aplicación Monolitica, cada microservicio tiene su propia base de datos. Tener una base de datos por servicio es esencial si desea beneficiarse de los microservicios, ya que garantiza un acoplamiento flexible. Cada uno de los servicios tiene su propia base de datos. Además, un servicio puede utilizar el tipo de base de datos que mejor se adapte a sus necesidades.

Las imagenes y algunos textos fueron tomados de: este artículo

Aplicaciones Monolíticas vs Microservicios

Monolíticas basadas en PHP y Perl, eran poco robustas y mantenibles. Todo dependía de un solo servidor.

Luego se inició con “bajo acoplamiento-alta cohesión” que separa los componentes de las apps tanto lógica como físicamente y de aquí los microservicios (se encargan de una parte del proceso)
.

Para profundizar un poco más sobre este tema, les dejo este enlace donde se explica más a fondo cada una de las arquitecturas y la comparación respectiva. Saludos.

Lo recomendable hoy en día es dividir nuestra aplicación ya no solo a nivel lógico, sino también a nivel físico. Un error muy común que se suele encontrar es que las aplicaciones suelen cargar archivos en el mismo disco duro del servidor, pero hoy en día existe una cosa maravillosa llamada Amazon S3, recomiendo investigarlo:D!

Se me hace muy pobre la explicación sobre que son los microservicios, si usamos una base de datos relacional, en cierta forma el motor es monolítico, porque es single point of failure, claro que se medio soluciona con un cluster de base de datos donde tenemos nodos de solo lectura (que replican el master) y un nodo master, así como un mecanismo que en caso de falla pasa la operación a un nodo secundario.

Me agradó bastante la definición de microservicio, la verdad, era algo que me imaginaba de esa manera. Es decir, si usas Docker, pues un contenedor que solo cumpla la función de base de datos. Otro que sea el servidor web, y así por delante.

que buena clase justo me preguntaron esto en una entrevista de trabajo!

Un microservicio es un componente por ejemplo cuando utilizamos un framework como materialize que nos provee una funcionalidad., eso es un microservicio que llamamos desde nuestro codigo y que esta alojado en la nuebe.
El load balancer en nuestros productos nos permiten tener microservicios aislados en otros servidores que en el momento de una contingencia podamos utilizar y resolver el conflicto.

Mi aporte Las aplicaciones monolíticas son sistemas integrados donde todos los componentes están interconectados y se despliegan juntos. Son más fáciles de desarrollar y probar inicialmente, pero pueden volverse difíciles de mantener y escalar a medida que crecen. Los microservicios, en cambio, dividen la aplicación en servicios independientes, cada uno responsable de una funcionalidad específica y que se comunica con otros servicios mediante APIs. Esto facilita el escalado y la actualización de partes individuales sin afectar al sistema entero. Sin embargo, son más complejos de desarrollar y gestionar debido a la necesidad de coordinar múltiples servicios y manejar su comunicación.
Hola a todos! Espero alguien me pueda ayudar con lo siguiente: Estoy desplegando una web App en React en digital ocean, pero el front cuando se comunica con el backend falla o es lenta. Estoy consumiendo micro servicios para pagos y fotos de productos y descripciones, estos también fallan. Realmente no sé qué estoy haciendo mal. o talvez estoy utilizando mal las herramientas de despliegue ya que en mi entorno local el código funcionaba a la perfección. Agradezco quién me pueda ayudar!
ME gusta que viene bien sintetizado y simple, como para que lo entienda un dummy como yo

Interesante saber esto y como los dos enfoques tienen pros y contras.

la clase esta bien explicada

buena explicacion, pero falto profundizar un poco mas

tipos de aplicaciones monolíticas y microservicios

++Apps Monolíticas: ++

Ventajas: Fácil y rápida
Desventajas: Mucha disponibilidad del archivo, si una línea del archivo fallaba podía comprometer toda la aplicación.
Con el paso de los años mejoró, separando en diferentes archivos, pero teníamos el problema de tener todo en un mismo servidor.

Microservicios:

**Ventajas: **Bajo acoplamiento, alta cohesión. Separando todos los componentes de las aplicaciones a nivel lógico y físico. Escalabilidad y Funcionalidad modular, módulos independientes.

Desventajas: Aumento de costos en equipamiento, IaaS (Infrastructure As a Service), PaaS (Platform As A Service). Compleja administración.

Buena explicacion

Microservicios dividir tu aplicacion tanto a nivel logico como fisico para no sobresaturar el servidor. Por ejemplo, llamadas a otras APIS, mapas de google, fonts, bd, etc.

usamos microservicios permite escalabilidad

Excelente clase Santiago!

,

Excelente explicación. gracias!