Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Suplementaria 2bim

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

Si tuviese que proponer el diseño, codificación e implementación de una

aplicación Web, ¿qué estilo y patrón arquitectónico utilizaría y por qué?

Al desarrollar el diseño, la codificación y la implementación de una aplicación


web, es fundamental elegir un estilo y patrón arquitectónico que se ajusten a
los requisitos del proyecto, así como a la escalabilidad, mantenibilidad y
experiencia del usuario. A continuación, se presenta una propuesta
fundamentada en el estilo arquitectónico de Microservicios y el patrón de
Arquitectura de API.

Estilo Arquitectónico: Microservicios

Argumentos a favor de Microservicios:

1. Escalabilidad Independiente:

Cada microservicio puede ser escalado de manera independiente según


la demanda. Esto es especialmente útil en aplicaciones que
experimentan picos de tráfico en ciertas funcionalidades (por ejemplo, un
servicio de pagos durante eventos de ventas).

2. Desarrollo Ágil y Descentralizado:

Los equipos pueden trabajar en diferentes microservicios


simultáneamente, lo que acelera el ciclo de desarrollo. Esto permite la
implementación continua y la entrega continua (CI/CD), facilitando la
adaptación a cambios en los requisitos.

3. Flexibilidad Tecnológica:

Cada microservicio puede ser desarrollado utilizando diferentes


tecnologías y lenguajes de programación, lo que permite elegir la mejor
herramienta para cada tarea. Esto es beneficioso para aprovechar las
fortalezas de diferentes tecnologías.

4. Resiliencia:

La falla de un microservicio no afecta a toda la aplicación. Esto mejora la


disponibilidad y la experiencia del usuario, ya que otros servicios pueden
seguir funcionando.
5. Mantenimiento y Actualización:

Los microservicios permiten realizar actualizaciones y mantenimiento de


manera más sencilla, ya que los cambios en un servicio no requieren la
reimplementación de toda la aplicación.

Patrón Arquitectónico: API Gateway

Argumentos a favor de API Gateway:

1. Punto de Entrada Centralizado:

El API Gateway actúa como un punto de entrada único para todas las
solicitudes del cliente, lo que simplifica la gestión de las API y mejora la
seguridad al centralizar la autenticación y autorización.

2. Transformación de Protocolo:

Permite manejar la transformación de protocolos (por ejemplo, de HTTP


a WebSocket), facilitando la comunicación entre diferentes
microservicios y el cliente.

3. Balanceo de Carga:

El API Gateway puede gestionar el balanceo de carga entre los


microservicios, mejorando el rendimiento y la disponibilidad de la
aplicación.

4. Facilidad de Monitoreo y Registro:

Proporciona un lugar centralizado para implementar el monitoreo y el


registro de las solicitudes, lo que facilita la identificación de problemas y
la optimización del rendimiento.

5. Gestión de Versiones:

Permite gestionar diferentes versiones de los microservicios, lo que es


útil para implementar nuevas funcionalidades sin interrumpir el servicio
existente.
¿Qué estilo o patrón arquitectónico utilizaría para llevar a cabo el
balanceo de carga si diseña e implementa una aplicación Web, móvil y
servicios?

Para la implementación del balanceo de carga en una aplicación web, móvil y


servicios depende se ha tomado en cuenta el estilo arquitectónico de
microservicios y el patrón arquitectónico Aoi Gateway.

Microservicios con API Gateway y Load Balancer

• Microservicios:

Este estilo arquitectónico permite dividir la aplicación en componentes


pequeños e independientes que pueden ser desarrollados, desplegados
y escalados de manera autónoma. Esto es especialmente útil para
aplicaciones que requieren flexibilidad y escalabilidad, ya que puedes
ajustar la capacidad de cada microservicio según la demanda.

• API Gateway:

Razón: Actúa como un punto de entrada único para todas las solicitudes
de los clientes. El API Gateway puede gestionar el balanceo de carga al
dirigir las solicitudes a las instancias de microservicios disponibles.
Además, permite implementar funcionalidades adicionales como
autenticación, monitoreo y gestión de tráfico, lo que mejora la seguridad
y la experiencia del usuario.

• Load Balancer:

Razón: Un balanceador de carga (ya sea hardware o software) es


esencial para distribuir las solicitudes entrantes entre múltiples instancias
de la aplicación. Esto no solo mejora la disponibilidad y el rendimiento,
sino que también proporciona redundancia y resiliencia al sistema.

• Ventajas de esta Elección

o Escalabilidad: Puedes escalar cada microservicio de manera


independiente según la carga, lo que optimiza el uso de recursos.
o Resiliencia: Si un microservicio falla, el API Gateway puede redirigir
las solicitudes a otras instancias, minimizando el impacto en el
usuario.
o Flexibilidad: Permite a los equipos trabajar en diferentes
microservicios de manera simultánea, lo que acelera el desarrollo y
la implementación.
o Mantenimiento: Facilita el mantenimiento y la actualización de la
aplicación, ya que los cambios en un microservicio no afectan a los
demás.

Argumentos de la elección del estilo y el patrón

La interacción entre un API Gateway y un Load Balancer es básico en las


arquitecturas de microservicios, ya que fortalece el rendimiento, la
escalabilidad, la seguridad y la gestión de errores, al mismo tiempo que
simplifica el mantenimiento.

Rendimiento: El API Gateway mejora la gestión de solicitudes y disminuye la


latencia al consolidar las respuestas de los microservicios.

Escalabilidad: El Load Balancer distribuye la carga y permite escalar las


instancias, mientras que el API Gateway protege los servicios mediante
limitaciones de tasa.

Seguridad: El API Gateway centraliza el control de acceso, lo que facilita la


gestión de la seguridad.

Gestión de Errores: El Load Balancer garantiza la disponibilidad al redirigir el


tráfico a instancias saludables, y el API Gateway se encarga de los errores
mediante reintentos y mensajes claros.

Mantenimiento: Ambos componentes favorecen el desacoplamiento de


servicios, lo que facilita el desarrollo y la integración de herramientas de
monitoreo.
Bibliografía
• Kumar, A. (2018). Microservices architecture: Make the architecture of a
software as simple as possible. Packt Publishing.
• Lewis, J., & Fowler, M. (2014). Microservices: A definition of this new
architectural term. MartinFowler.com.
https://martinfowler.com/articles/microservices.html
• Newman, S. (2015). Building microservices: Designing fine-grained
systems. O'Reilly Media.
• Richardson, C., & Smith, F. (2016). Microservices patterns: With
examples in Java. Manning Publications.
• Bishop, P. (2019). API design patterns. O'Reilly Media.
• Nginx. (2020). Nginx: The high-performance web server and reverse
proxy server. Nginx Documentation.
https://www.nginx.com/resources/glossary/api-gateway/
• López, D., & Maya, E. (s/f). Arquitectura de Software basada en
Microservicios para Desarrollo de Aplicaciones Web. Redclara.net.
Recuperado el 24 de julio de 2024, de
https://documentos.redclara.net/bitstream/10786/1277/1/93%20Arquitect
ura%20de%20Software%20basada%20en%20Microservicios%20para%
20Desarrollo%20de%20Aplicaciones%20Web.pdf

También podría gustarte