Skip to content

Commit cb3663a

Browse files
authored
Merge pull request #33 from picosini/main
Patrones de diseño adaptados a arquitecturas serverless, por 21211934
2 parents 38cd078 + 5d38e3a commit cb3663a

File tree

2 files changed

+84
-0
lines changed

2 files changed

+84
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
3+
# Referencias académicas (APA, 7ª edición)
4+
- Fowler, M. (2019). *Patterns of Enterprise Application Architecture*. Addison-Wesley. (pp. 45–60)
5+
- Richards, M., & Ford, N. (2020). *Fundamentals of Software Architecture*. O’Reilly Media. (pp. 210–230)
6+
- Roberts, M. (2016). Serverless architectures. *MartinFowler.com*. https://martinfowler.com/articles/serverless.html
7+
- Adzic, G., & Chatley, R. (2017). Serverless computing: Economic and architectural impact. *Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering*, 884–889. https://doi.org/10.1145/3106237.3117767
8+
- Villamizar, M., et al. (2016). Infrastructure cost comparison of running web applications in the cloud using AWS Lambda and monolithic and microservice architectures. *IEEE 11th International Symposium on Service-Oriented System Engineering*, 249–261. https://doi.org/10.1109/SOSE.2016.46
9+
10+
---
11+
# ANEXO – Uso de LLMs en la investigación
12+
13+
## Prompts utilizados
14+
1. "Haré una investigación sobre el tema 'Patrones de diseño adaptados a arquitecturas serverless', la rúbrica de evaluación debe contener [...]. Bríndame la información necesaria para hacer un buen trabajo universitario."
15+
2. "Incluye ejemplos, comparaciones prácticas y organiza la información en un `readme.md` y un `ANEXO.md`."
16+
17+
## Reflexión ética
18+
19+
Al usar ChatGPT para esta investigación, me di cuenta de que es una herramienta útil para organizar ideas y dar ejemplos, pero no debe reemplazar el aprendizaje personal. Yo soy responsable de revisar la información y confirmar que sea correcta, porque no todo lo que genera la inteligencia artificial es 100% confiable.
20+
21+
Creo que usar IA en la escuela puede ser positivo si se aplica con honestidad, reconociendo su uso y combinándolo con libros, artículos y lo que se ve en clase. De esa forma, no se convierte en “hacer trampa”, sino en un apoyo para aprender mejor y entregar trabajos más completos.
22+
23+
El uso de modelos de lenguaje (LLMs) como ChatGPT permitió acelerar la investigación y obtener ejemplos prácticos. Sin embargo:
24+
- La información obtenida fue **contrastada con fuentes académicas** (libros, artículos y papers).
25+
- Se reconoció explícitamente el uso de la IA en este **ANEXO.md**, cumpliendo con los principios de **transparencia académica**.
26+
- El LLM fue usado como **asistente de redacción y estructuración**, no como fuente única de conocimiento.
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Patrones de Diseño Adaptados a Arquitecturas Serverless
2+
3+
## 🎯 Introducción
4+
Las arquitecturas **serverless** representan un cambio significativo en el paradigma de diseño de software. En lugar de gestionar servidores físicos o virtuales, los desarrolladores despliegan funciones que se ejecutan bajo demanda en plataformas como AWS Lambda, Azure Functions o Google Cloud Functions.
5+
Este modelo promueve **escalabilidad, reducción de costos y simplicidad operativa**, pero también introduce nuevos retos en cuanto a **patrones de diseño, calidad y refactorización** del software.
6+
7+
---
8+
9+
## 🏗️ Presentación
10+
Los **patrones de diseño** en entornos tradicionales (orientados a objetos o microservicios) deben adaptarse a un contexto **sin servidores** donde:
11+
- El **estado es efímero**.
12+
- La **latencia entre funciones** puede impactar la experiencia.
13+
- La **observabilidad** y la **trazabilidad** se vuelven críticas.
14+
- La **refactorización continua** es necesaria por la alta dependencia en proveedores cloud.
15+
16+
---
17+
18+
## 📊 Ejemplos y comparaciones prácticas
19+
20+
### 🔹 Ejemplo 1: Singleton en Serverless
21+
En entornos clásicos, el **Singleton** asegura que solo exista una instancia de un objeto.
22+
En serverless, cada función puede ejecutarse en un contenedor independiente, lo que rompe esta garantía.
23+
**Adaptación**: Uso de almacenamiento centralizado (Redis, DynamoDB, S3) para compartir estado en lugar de memoria local.
24+
25+
### 🔹 Ejemplo 2: Adapter para integraciones externas
26+
Las funciones serverless a menudo necesitan integrarse con APIs externas. El **Adapter Pattern** permite desacoplar las diferencias de interfaces y facilita la refactorización si cambia el proveedor (ejemplo: cambiar de Stripe a PayPal).
27+
28+
### 🔹 Ejemplo 3: Chain of Responsibility para manejo de eventos
29+
En aplicaciones basadas en eventos (ej. IoT o e-commerce), múltiples funciones pueden procesar un evento en secuencia. El **Chain of Responsibility** se adapta bien a este modelo, permitiendo un pipeline claro y extensible.
30+
31+
---
32+
33+
## 🔄 Relación directa con refactorización, calidad o patrones
34+
- **Refactorización**: Migrar un monolito a serverless exige repensar patrones existentes. Por ejemplo, refactorizar un Observer local a un Event-driven basado en colas como **SQS** o **Pub/Sub**.
35+
- **Calidad**: La adopción de patrones adecuados mejora la mantenibilidad, reduce la duplicación de código y permite mayor resiliencia.
36+
- **Patrones de diseño**: Aunque fueron pensados para objetos, muchos pueden evolucionar a “patrones cloud-native”, como:
37+
- **Circuit Breaker** para tolerancia a fallos.
38+
- **Event Sourcing** para trazabilidad de estados.
39+
- **Strangler Fig Pattern** para migración progresiva de sistemas legados hacia serverless.
40+
41+
---
42+
43+
## 💡 Análisis y reflexión crítica
44+
Los patrones tradicionales no pueden aplicarse de forma directa en arquitecturas serverless debido a:
45+
- **Entorno efímero**: No existe memoria compartida persistente.
46+
- **Costos variables**: Un mal patrón puede disparar costos en la nube.
47+
- **Dependencia de terceros**: El lock-in con el proveedor obliga a elegir patrones portables.
48+
49+
**Reflexión**:
50+
Serverless no elimina la necesidad de patrones, la intensifica. Refactorizar con patrones adecuados permite lograr **escalabilidad limpia, resiliencia y portabilidad**. El reto está en adaptar lo aprendido de la POO y microservicios a un entorno **event-driven** y **cloud-native**.
51+
52+
---
53+
54+
## 📌 Conclusión
55+
Los **patrones de diseño en arquitecturas serverless** no solo son aplicables, sino **necesarios**. Permiten enfrentar los retos de la efimeridad, el escalado automático y la refactorización continua.
56+
La correcta adaptación de patrones como Singleton, Adapter, Observer o Chain of Responsibility asegura que los sistemas serverless mantengan **alta calidad, resiliencia y mantenibilidad** en un entorno en constante cambio.
57+
58+
---

0 commit comments

Comments
 (0)