Section 11: Lab: Resilience ของระบบหลายบริการ
- ตั้ง Timeout ให้การเรียกบริการด้วย RxJS
- Retry แบบเว้นระยะและเมื่อไรไม่ควร Retry
- แนวคิด Circuit Breaker และ Fallback
- Graceful Shutdown ด้วย enableShutdownHooks
- Lab: Gateway ที่ยังตอบได้เมื่อบริการปลายทางล่ม
Section 12: ความปลอดภัยระหว่างบริการ
- ยืนยันตัวตนที่ Gateway ด้วย JWT แล้วส่งข้อมูลผู้ใช้ต่อ
- ตรวจสิทธิ์ในบริการภายในด้วย Guard
- แยกเครือข่ายภายในและไม่เปิดพอร์ตบริการสู่ภายนอก
- เก็บ Secret อย่างปลอดภัยและแนวคิด TLS ระหว่างบริการ
- Lab: ป้องกันบริการคำสั่งซื้อให้รับเฉพาะคำขอที่ผ่าน Gateway
Section 13: Lab: Health Check, Log และ Tracing
- Health Check ของบริการ ฐานข้อมูล และ Broker ด้วย @nestjs/terminus
- Structured Log พร้อม Correlation ID ข้ามบริการ
- Distributed Tracing ด้วย OpenTelemetry
- ดูเส้นทางของคำขอใน Jaeger
- Lab: ตามหาบริการที่ทำให้คำสั่งซื้อช้า
Section 14: Lab: Test และ Deploy ด้วย Docker Compose
- Unit Test ของ Handler ด้วย Vitest และการจำลอง ClientProxy
- เขียน Dockerfile แบบ Multi-stage ให้แต่ละบริการ
- รวมทุกบริการ Broker และฐานข้อมูลใน docker-compose.yml
- ขยายจำนวน Instance และกระจายงานผ่าน Queue
- PM2 สำหรับเซิร์ฟเวอร์เดี่ยว และภาพรวมการขยายสู่ Kubernetes
Section 15: Workshop: Capstone ร้านค้าแบบ Microservices
- รวม Gateway, บริการผู้ใช้ สินค้า คำสั่งซื้อ และแจ้งเตือน
- เชื่อมบริการด้วย RabbitMQ, NATS และ gRPC ตามที่ออกแบบ
- ทดสอบกรณีบริการล่มและข้อความซ้ำ
- ติดตามการทำงานทั้งระบบผ่าน Health Check และ Tracing
- Workshop: นำเสนอสถาปัตยกรรมและแนวทางต่อยอดในองค์กร