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)
  • การพัฒนาและทดสอบระบบ

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