Microservice Design and DDD - up1/training-courses GitHub Wiki

Microservices (Design Workshop) + Domain-Driven Design (DDD)

เป้าหมาย

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 design patterns
      • Application patterns
      • Application-Infrastructure patterns
      • Infrastructure patterns
    • Domain-Driven Design (DDD)
      • Goals of DDD
      • Strategic design
      • Tactical design
    • Workshop :: Microservices with DDD concepts
  • การพัฒนาและทดสอบระบบ

    • แนวทางในการพัฒนาด้วยแนวคิด Microservices
    • แนวทางการทดสอบระบบงาน
      • Unit testing
      • Integration testing
      • Component testing
      • Contract testing
      • End-to-End testing