Create an account or log in

Keep learning for free! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
11 Hrs
45 Min
27 Seg

Apps Monolíticas vs microservicios

3/17
Resources

What are monolithic applications and microservices?

In the world of software development, a fundamental approach has been the transition from monolithic applications to microservices. During the 1990s, a number of programming languages such as PHP and Pearl enabled the quick and easy development of web applications. A typical application contained everything from HTML, CSS, JavaScript to PHP code and database queries in a single file. While this technique made development easier, it had considerable disadvantages: a single line of bad code could cause the entire application to fail.

How did web development evolve?

As time progressed, template engines made it possible to separate the HTML and CSS from the main PHP file. Meanwhile, database queries began to be handled by systems called ORMs, and frameworks emerged that further improved this process. Despite these improvements, the main problem persisted: bringing the entire application together on a single server. This meant that any problem, whether in the server, RAM or Internet connection, could cause the application to stop working completely.

What role do low coupling and high cohesion play?

Over time, software engineering advanced significantly, focusing on the concept of low coupling and high cohesion. This principle suggests separating application components, not only at the logical level, but also at the physical level. As these techniques gained popularity, microservices emerged as a viable solution.

What is a microservice?

A microservice is a component or application that is concerned with performing a single specific function. Today, modern applications do not rely exclusively on a single server. It is possible to develop an application that uses microservices or external elements from different sites.

What are some examples of microservices?

  • CSS and UI frameworks: You can leverage CSS from frameworks such as Bootstrap directly from their website.
  • Web fonts: Use Google Fonts to integrate specific typographic styles.
  • Analytics tools: To monitor your site traffic, you can use Google Analytics.
  • Authentication: Implement login via social networks such as Facebook or Twitter.
  • External APIs: Bring additional data to your application using third-party APIs.

What are the benefits of microservices?

The microservices framework allows each element of the application to run independently and be managed separately. This provides several important advantages:

  • Improved redundancy: In the event of a server failure, backup servers can be used.
  • Scalability: Improved resource management and scalability according to the needs of the application.
  • Reduced dependency: Minimized dependency on a single point of failure.
  • Flexibility: Ease of integrating and managing diverse technologies and services.

The evolution towards the use of microservices has revolutionized the way of deploying and managing web applications, allowing greater efficiency and optimization. Developers today have the ability to create robust and scalable applications that can overcome the limits of traditional monolithic applications.

Contributions 22

Questions 1

Sort by:

Want to see more contributions, questions and answers from the community?

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)
.

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!

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.

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.

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!