Clustering หัวใจสำคัญของการทำระบบให้ทำงานได้อย่างต่อเนื่อง

สำหรับนักพัฒนาทุกคนแล้ว การทำให้ระบบทำงานได้อย่างต่อเนื่องถือว่าเป็นสิ่งสำคัญในการทำระบบเลยก็ว่าได้ ดังนั้นเมื่อเวลาผ่านไป การพัฒนาก็ได้ถือกำเนิดขึ้น จึงมีการคิดค้นวิธีขึ้นมาซึ่งเรียกว่าการทำ Clustering แต่การทำ Clustering คืออะไร มีประโยชน์อย่างไรนั้น วันนี้เราจะมาหาคำตอบกันในบทความนี้


Cluster เกิดขึ้นได้อย่างไร

โดยปกติแล้ว Server หรือ VM แต่ละเครื่องจะทำงานแยกกันโดยสิ้นเชิง ซึ่งถ้าเกิดมีเครื่องใดเครื่องหนึ่งตายขึ้นมา ระบบของเราที่ถูกเก็บไว้ในเครื่องที่เสียหายนั้นก็อาจจะได้รับความเสียหาย ทำให้ระบบทำงานได้ไม่สมบูรณ์ หรือไม่สามารถทำงานได้อีกเลย

นอกจากนี้เราก็ไม่สามารถรู้ได้เลยว่าสิ่งที่อยู่ในเครื่องที่ได้รับความเสียหายนั้นจะสามารถกู้คืนกลับมาได้ภายในระยะเวลาเมื่อไร ดังนั้นจึงเกิดระบบแบบ Clustering ที่ช่วยแก้ปัญหาดังกล่าว ทำให้ระบบยังสามารถทำงานได้อย่างต่อเนื่องเป็นปกติ แม้จะมีเครื่องใดเครื่องหนึ่งเกิดความเสียหายอยู่ก็ตาม


Cluster ทำงานอย่างไร

การทำงานแบบ Clustering จะเป็นการทำงานของกลุ่ม Server หรือ VM ที่เชื่อมต่อกันผ่านเครือข่าย และทำงานร่วมกันในแบบที่สามารถทำงานทดแทนกันได้ด้วย โดยจะมีการแบ่งการทำงานของ Server หรือ VM ทั้งหมดในระบบ ด้วยสองหน้าที่หลัก ๆ ด้วยกัน ดังนี้

  • Master : คือเครื่องที่มีหน้าที่คอยคุม Worker ทำหน้าที่มอนิเตอร์ เรียกใช้ และจ่ายงานให้ Worker แต่ละเครื่อง ซึ่งส่วนใหญ่คอมพิวเตอร์ส่วน Master จะใช้ Spec ค่อนข้างต่ำ แต่ทั้งนี้เองก็ขึ้นอยู่กับผู้ออกแบบระบบว่าต้องการให้ Master ทำงานในส่วนของ Worker ด้วยหรือไม่
  • Worker : คือเครื่องที่ทำหน้าที่ตาม Master สั่ง ด้วยความเป็น Worker จึงต้องใช้แรงงานการประมวลผลหนัก ส่วนมากแล้วนิยมใช้ Spec เครื่องสูง ๆ 

นอกจากจะมีการทำระบบให้มีเครื่องทำงานเป็นแบบ Master และ Worker แล้ว Clustering ยังต้องมีการทำ High Availability และการทำ Load Balance ควบคู่กันไปด้วย

โดยการทำ High Availability จะมารองรับในส่วนของการทำให้ระบบสามารถทำงานแทนกันได้ หากมี Worker ตัวใดตัวหนึ่งตาย Master ก็จะสั่งการให้อีกตัวทำงานแทนทันที ทำให้ระบบสามารถทำงานได้อย่างต่อเนื่อง

ส่วนการทำ Load Balance จะเข้ามาเกี่ยวข้องในส่วนของการแบ่งภาระการทำงาน ให้ระบบสามารถทำงานได้มีประสิทธิภาพมากขึ้น โดยลักษณะการทำงานก็คือ สมมุติระบบเรามี Worker อยู่สามเครื่องด้วยกัน คือ A , B และ C หากเครื่อง A มีการใช้งานสูง เครื่องที่ทำหน้าที่เป็น Master จะทำการ Load Balance ด้วยการเกลี่ยภาระงานไปยังเครื่อง B และ C เท่า ๆ กัน เพื่อไม่ให้มีเครื่องใดเครื่องหนึ่งทำงานหนักจนเกินไป


ประโยชน์ของ Cluster

  1. เพิ่มเสถียรภาพในการทำงานของระบบ : ทำให้ระบบของคุณสามารถทำงานได้อย่างต่อเนื่อง ผู้ใช้งานจะสามารถใช้งานได้ตามปกติ แม้ระบบบางส่วนเกิดความเสียหาย เพื่อลดการเสียโอกาสทางธุรกิจ เช่นธุรกิจธนาคาร ที่ต้องการความเสถียรสูง ซึ่งถ้าระบบล่มเท่ากับว่าธนาคารจะต้องสูญเสียเม็ดเงินและความน่าเชื่อถือไปไม่ใช่น้อย เป็นต้น
  2. เพิ่มประสิทธิภาพในการทำงานของระบบ : โดยการทำ Clustering จะเข้ามารองรับในส่วนของการทำระบบแบบ Auto Scale เพื่อเพิ่มประสิทธิภาพของการทำงาน โดยระบบแบบ Auto Scale จะช่วยปรับทรัพยากรของระบบให้ยืดหยุ่นต่อจำนวนผู้ใช้งาน รองรับระบบที่ต้องการย่อ หรือขยาย ในช่วงระยะเวลาหนึ่ง เช่นเว็บไซต์จองบัตรคอนเสิร์ตที่บางครั้งมีจำนวนผู้ใช้งานสูงในเฉพาะช่วงระยะเวลาหนึ่ง หากไม่มีระบบนี้ ระบบก็จะสามารถล่มได้ เป็นต้น

จากที่อธิบายข้างต้น คุณจะเห็นได้ว่า การทำ Clustering นั้นเรียกได้ว่าเป็นหัวใจสำคัญในการทำระบบที่ไม่สามารถมองข้ามได้เลยทีเดียว ซึ่งคุณสามารถนำ Clustering ไปปรับใช้กับระบบของคุณได้หลายรูปแบบ เช่นการทำ Container Clustering ที่คุณสามารถจัดการ แบ่ง และจัดกลุ่ม Container เพื่อช่วยลดความเสี่ยงในการสูญเสียข้อมูลได้ เป็นต้น

Share with

Leave a Reply

Your email address will not be published. Required fields are marked *