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 22

Preguntas 1

Ordenar por:

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

o inicia sesión.

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.

Los Micro-Servicios permiten permiten desacoplar los componentes de una aplicación (funcionalidades) en distintos lugares, por ende podrán ser consumidas mediante APIs.

Beneficios

  • Permiten mayor escalabilidad.
  • El sistema se vuelve mantenible.
  • Seguridad.
  • Aislamiento de código.
  • Utilizar diferentes lenguajes y tecnologías en el desarrollo de los componentes en nuestra aplicación.

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.

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

Bajo Acoplamiento, alta cohesion. Separar todos los componentes de una aplicacion a nivel logico y fisico, esto dio paso a los famosos microservicios.

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!