Microservices Design - up1/training-courses GitHub Wiki
Microservices Workshop (Design Workshop)
เป้าหมาย
Microservices architecture เป็นอีกแนวคิดหนึ่งสำหรับการออกแบบและพัฒนา software ซึ่งทำการแบ่งส่วนการทำงานของ software ออกเป็นส่วนการทำงานเล็ก ๆ เพื่อช่วยทำให้แต่ละส่วนการทำงานเป็นอิสระต่อกัน สามารถ deploy และรองรับการขยายตัวได้อย่างอิสระ
ใน course นี้จะอธิบายให้เข้าใจว่า Microservices คืออะไร ทำไม Microservices จึงได้รับความนิยม Microservices ช่วยแก้ไขปัญหาและมีประโยชน์อย่างไร ตลอดจนข้อเสียต่าง ๆ ที่ต้องรับมือจากการนำ Microservices มาปรับใช้งาน
กลุ่มเป้าหมาย
- Software Developer/Programmer
- Software Analyst
- Software Architect
- Operation/Infrastructure
Duration
- 2 Days
Course Outlines
-
การออกแบบ
- วิวัฒนาการของสถาปัตยกรรมของ software
- Monolith
- Tier/Layer
- Service-Oriented Architecture (SOA)
- Microservices
- Function-as-a-Service (FaaS)
- เหตุผลว่าทำไมจึงต้องการ Microservice
- ความรู้พื้นฐานของ Microservice
- ประโยชน์ของการออกแบบด้วยแนวคิด Microservice
- คุณสมบัติหลักของการออกแบบระบบงานด้วยแนวคิด Microservice
- ข้อดีและข้อเสียของการออกแบบด้วยแนวคิด Microservice
- ปัญหาและความท้าทายของการนำ Microservice มาใช้งาน
- การแบ่งหรือแยกส่วนการทำงานต่าง ๆ ออกจากกัน เพื่อให้ทำงานได้อย่างมีอิสระต่อกัน
- การจัดการการติดต่อสื่อสารระหว่าง service หรือระบบงานย่อย ๆ
- Synchronous (Request-Response Model)
- Asynchronous (Observer/Event)
- Microservices patterns
- วิวัฒนาการของสถาปัตยกรรมของ software
-
Domain-Driven Design(DDD) for Microservices
- Boundary context
- Context map
- Strategic phase
- Workshop with Event storming
- Types of relationships
- Open Host
- Published language
- Anti-Corruption Layer (ACL)
- Separate way
- Tactical phase
- Entity and Value Object
- Aggregation
- Domain service
- Domain event
-
การพัฒนาและทดสอบระบบ
- แนวทางในการพัฒนาด้วยแนวคิด Microservices
- แนวทางการทดสอบระบบงาน
- Unit testing
- Integration testing
- Component testing
- Contract testing
- End-to-End testing