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鈥檚 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 鈥渂ajo 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!