Microservices Thai - up1/training-courses GitHub Wiki
Microservices Workshop (Design -> Develop -> Deploy)
เป้าหมาย
Microservices architecture เป็นอีกแนวคิดหนึ่งสำหรับการออกแบบและพัฒนา software ซึ่งทำการแบ่งส่วนการทำงานของ software ออกเป็นส่วนการทำงานเล็ก ๆ เพื่อช่วยทำให้แต่ละส่วนการทำงานเป็นอิสระต่อกัน สามารถ deploy และรองรับการขยายตัวได้อย่างอิสระ
ใน course นี้จะอธิบายให้เข้าใจว่า Microservices คืออะไร ทำไม Microservices จึงได้รับความนิยม Microservices ช่วยแก้ไขปัญหาและมีประโยชน์อย่างไร ตลอดจนข้อเสียต่าง ๆ ที่ต้องรับมือจากการนำ Microservices มาปรับใช้งาน
จากนั้นใน course จะมีการลงมือทำ workshop เพื่อออกแบบ พัฒนาและ deploy ระบบงาน ตลอดจนเรื่องของการ maintain และ monitoring ระบบงาน
กลุ่มเป้าหมาย
- Software Developer/Programmer
- Software Analyst
- Software Architect
- Operation/Infrastructure
Duration
- 2-3 Days
- 70% Workshop (design + develop + deploy)
- 30% Theory
เครื่องมือที่ใช้งาน
- Docker
- Kubernetes (optional)
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)
- วิวัฒนาการของสถาปัตยกรรมของ software
-
การพัฒนาและทดสอบระบบ
- การติดตั้งและ setup เครื่องมือในการพัฒนา
- แนวทางในการพัฒนาด้วยแนวคิด Microservices
- แนวทางการทดสอบระบบงาน
- Unit testing
- Integration testing
- Component testing
- Contract testing
- End-to-End testing