Skip to content

Commit da26abc

Browse files
authored
Create readme.md
1 parent 8fbbd55 commit da26abc

File tree

1 file changed

+58
-0
lines changed
  • docs/temas/Patrones de diseño adaptados a arquitecturas serverless

1 file changed

+58
-0
lines changed
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)