Combining Models (การผสมผสานโมเดล)
หนึ่งในแรงขับเคลื่อนหลักเบื้องหลัง Scale Cube ดั้งเดิมคือการหยุดไม่ให้เราคิดแคบๆ ในแง่ของ scaling ประเภทเดียว และช่วยให้เราเข้าใจว่ามันมักสมเหตุสมผลที่จะ scale แอปพลิเคชันของเราไปตามหลายแกน ขึ้นอยู่กับความต้องการของเรา มากลับมาที่ตัวอย่างที่ระบุไว้ใน Figure 13-6 กัน เราได้ดึงฟังก์ชันการทำงาน Order ของเราออกมาแล้ว เพื่อให้ตอนนี้มันสามารถรันบน infrastructure ของตัวเองได้ เป็นขั้นตอนถัดไป เราสามารถ scale microservice Order แยกต่างหากได้โดยมีสำเนาหลายชุด ตามที่เราเห็นใน Figure 13-7
Figure 13-7. Microservice Order ที่ถูกดึงออกมาตอนนี้ถูกทำสำเนาเพื่อ scale
ต่อไป เราสามารถตัดสินใจรัน shard ต่างๆ ของ microservice Order ของเราสำหรับพื้นที่ทางภูมิศาสตร์ที่แตกต่างกัน ตามใน Figure 13-8 Horizontal duplication ถูกใช้ภายในแต่ละขอบเขตทางภูมิศาสตร์
Figure 13-8. Microservice Order ของ MusicCorp ตอนนี้ถูกแบ่งพาร์ทิชันข้ามภูมิศาสตร์ พร้อมการทำสำเนาในแต่ละกลุ่ม
ควรสังเกตว่าการ scale ไปตามแกนหนึ่งอาจทำให้แกนอื่นใช้งานได้ง่ายขึ้น ตัวอย่างเช่น functional decomposition ของ Order ทำให้เราสามารถ spin up สำเนาหลายชุดของ microservice Order และยัง partition โหลดในการประมวลผล order ได้ด้วย หากไม่มี functional decomposition เริ่มต้นนั้น เราจะถูกจำกัดให้ใช้เทคนิคเหล่านั้นกับ monolith ทั้งหมด
เป้าหมายเมื่อ scale ไม่จำเป็นต้องเป็นการ scale ไปตามทุกแกน แต่เราควรตระหนักว่าเรามีกลไกที่แตกต่างกันเหล่านี้ให้ใช้ เมื่อมีตัวเลือกนี้ สิ่งสำคัญคือเราต้องเข้าใจข้อดีข้อเสียของแต่ละกลไกเพื่อหาว่าอันไหนสมเหตุสมผลที่สุด