Section 1: รู้จัก Microservices
- Monolith เทียบกับ Microservices ข้อดีและข้อเสียที่ต้องรับมือ
- เมื่อไรควรแยกระบบ และเมื่อไรยังไม่ควร
- แบ่ง Service ตามขอบเขตงาน (Bounded Context)
- ทำไมต้อง Python และ FastAPI สำหรับ Microservices
- Workshop: แบ่งระบบจองตั๋วภาพยนตร์ออกเป็น Service
Section 2: Lab: เตรียมเครื่องมือ
- ติดตั้ง uv และสร้างโปรเจกต์ Python 3.14
- ติดตั้ง Docker Desktop และทดสอบ Docker Compose
- โครงสร้าง Repository ที่มีหลาย Service
- รัน FastAPI ด้วยคำสั่ง fastapi dev และดูเอกสาร API อัตโนมัติ
- Lab: Service แรกที่ตอบ Health Check
Section 3: Lab: REST API ด้วย FastAPI
- Path, Query และ Request Body พร้อม Type Hint
- ตรวจข้อมูลด้วย Pydantic v2 และแยก Schema รับกับ Schema ส่ง
- แยกโครงสร้างด้วย APIRouter และ Dependency Injection
- จัดการ Error และ Status Code ให้เป็นมาตรฐาน
- Lab: Movies API ที่เพิ่ม ค้นหา แก้ไข และลบได้
Section 4: Lab: ใช้ PostgreSQL กับ FastAPI
- รัน PostgreSQL 18 บน Docker
- SQLAlchemy 2.0 แบบ Async และการจัดการ Session ผ่าน Dependency
- สร้างและอัปเดตตารางด้วย Alembic Migration
- เปิดและปิดการเชื่อมต่อด้วย Lifespan ของ FastAPI
- Lab: Movies Service ที่เก็บข้อมูลลง PostgreSQL
Section 5: รูปแบบการจัดการข้อมูลของ Microservice
- แยกฐานข้อมูลต่อ Service (Database per Service)
- ใช้ฐานข้อมูลร่วมกัน (Shared Database) และความเสี่ยง
- รวมข้อมูลผ่าน API (API Composition)
- การคัดลอกข้อมูลบางส่วนและ Eventual Consistency
- Workshop: ออกแบบข้อมูลของ Movies และ Casts Service