Examples and Use Cases (ตัวอย่างและกรณีการใช้งาน)
ระบบ ที่มีระดับ modularity ทั้งด้านฟังก์ชันและข้อมูลสูง เป็นตัวเลือกที่ดีสำหรับสถาปัตยกรรม microservices ตัวอย่าง กรณีใช้งานที่ดีซึ่งแสดงพลังของสไตล์นี้คือระบบตรวจสอบสัญญาณชีพทางการแพทย์ ที่คอยตรวจสอบสัญญาณชีพของผู้ป่วย เช่น อัตราการเต้นของหัวใจ ความดันโลหิต ระดับออกซิเจน และอื่น ๆ สัญญาณชีพแต่ละอย่างที่ระบบตรวจสอบถือเป็นฟังก์ชันที่แยกจาก กันและเป็นอิสระ ซึ่งจัดการข้อมูลของตัวเอง เข้ากันได้ดีกับสถาปัตยกรรมสไตล์นี้และแนวคิด bounded-context
ระบบตรวจสอบผู้ป่วยนี้อ่านข้อมูลจากอุปกรณ์ตรวจสอบผู้ป่วย บันทึกสัญญาณชีพ วิเคราะห์สัญญาณชีพเหล่านั้นเพื่อหาปัญหาหรือ ความผิดปกติ และแจ้งเตือนบุคลากรทางการแพทย์หากพบปัญหา สัญญาณชีพแต่ละอย่างสามารถแทนด้วย microservice แยกกันซึ่งเป็น อิสระจาก service และข้อมูลอื่น ๆ เป็นส่วนใหญ่ ข้อยกเว้นหนึ่งของความเป็นอิสระนี้คือกรณีที่สัญญาณชีพอย่างหนึ่ง (เช่น อัตราการเต้นของหัวใจ) ต้องการข้อมูลเพิ่มเติมจากสัญญาณชีพอีกอย่าง (เช่น sleep-monitor service) เพื่อวิเคราะห์หาคำเตือนหรือปัญหา
Figure 18-17 แสดงให้เห็นว่าระบบนี้อาจถูกออกแบบด้วยสถาปัตยกรรม microservices ได้อย่างไร สังเกตว่าสัญญาณชีพแต่ละอย่างถูก implement เป็น microservice แยกกัน โดยแต่ละอันมี data store ของตัวเองสำหรับเก็บค่าที่อ่านได้และข้อมูลย้อนหลัง
ฟังก์ชันการแจ้งเตือน ซึ่งเป็นสิ่งที่ vital-signs service ทุกตัวมีร่วมกัน ถูกแทนด้วย shared service ชื่อ Alert Staff มันจะแจ้งเตือนพยาบาลหรือแพทย์หาก service ใด service หนึ่งพบว่าค่าที่อ่านได้มีความผิดปกติ แต่ละ service จะส่งค่า สัญญาณชีพล่าสุดของมันแบบ asynchronous ไปยังจอมอนิเตอร์ในห้องผู้ป่วย ซึ่งแทนด้วย shared service Display Vital Signs
Figure 18-17. ระบบตรวจสอบสัญญาณชีพทางการแพทย์ที่ implement ด้วยสถาปัตยกรรม microservices
ตัวอย่างนี้แสดงให้เห็นจุดแข็งและข้อได้เปรียบบางส่วนของสถาปัตยกรรม microservices ได้อย่างชัดเจน ลองดู fault tolerance หากหนึ่งใน vital-sign service เกิดล่มหรือหยุดตอบสนอง vital-sign service อื่น ๆ ทั้งหมดยังคงทำงานได้เต็มที่ ซึ่งสำคัญมากในการตรวจสอบทางการแพทย์ อีกหนึ่งความสามารถพิเศษคือ testability หากนักพัฒนาทำ maintenance บาง service ตรวจวัดความดันโลหิต ขอบเขตของการทดสอบก็เล็กพอที่พวกเขาจะมั่นใจได้ว่า สัญญาณชีพนี้ถูกทดสอบครบถ้วน และการ maintenance ไม่กระทบ vital-sign service อื่น สุดท้าย สัญญาณของ evolvability (อีกหนึ่งความสามารถพิเศษของ microservices) คือสถาปนิกสามารถเพิ่ม vital-sign monitor ตัวใหม่ได้ง่าย ๆ โดยไม่กระทบ service อื่น
เราได้พูดถึงแง่มุมสำคัญหลายอย่างของสถาปัตยกรรม microservices ในบทนี้ และยังมีแหล่งข้อมูลดี ๆ อีกมากมายที่คุณ สามารถใช้เรียนรู้เพิ่มเติมได้ หากต้องการเจาะลึก microservices เราขอแนะนำดังนี้:
-
Building Microservices ฉบับพิมพ์ครั้งที่ 2 โดย Sam Newman (O'Reilly, 2021)
-
Building Micro-Frontends ฉบับพิมพ์ครั้งที่ 2 โดย Luca Mezzalira (O'Reilly, 2025)
-
Microservices vs. Service-Oriented Architecture โดย Mark Richards (O'Reilly, 2016)
-
Microservices AntiPatterns and Pitfalls โดย Mark Richards (O'Reilly, 2016)