Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

สถาปัตยกรรมความพร้อมใช้งานสูงทำให้เข้าใจได้ง่ายขึ้น

สถาปัตยกรรมความพร้อมใช้งานสูงคืออะไร

สถาปัตยกรรมที่มีความพร้อมใช้งานสูงคือเมื่อมีส่วนประกอบ โมดูล หรือบริการต่างๆ จำนวนมากที่ทำงานร่วมกันเพื่อรักษาประสิทธิภาพสูงสุด โดยไม่คำนึงถึงการโหลดในช่วงเวลาเร่งด่วน

สถาปัตยกรรมความพร้อมใช้งานสูงทำให้เข้าใจได้ง่ายขึ้น

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

ในสถานการณ์จริงบางสถานการณ์ ชีวิตอาจขึ้นอยู่กับฐานข้อมูลที่สร้างขึ้นเพื่อความพร้อมใช้งานสูง เมื่อผู้ป่วยมาถึงห้องฉุกเฉิน บุคลากรทางการแพทย์จำเป็นต้องเข้าถึงบันทึกทางการแพทย์ของตนในทันทีเพื่อทำความเข้าใจว่าการตัดสินใจในการรักษาแบบใดดีที่สุด ความล่าช้าในการเข้าถึงข้อมูลนี้อาจส่งผลกระทบร้ายแรง

หมายเหตุ:ความพร้อมใช้งานสูงมักจะวัดเป็นเปอร์เซ็นต์ของเวลาที่ผู้ใช้บริการได้ ตามอภิธานศัพท์สำหรับนักพัฒนาเครือข่ายของ Microsoft เพื่อให้เซิร์ฟเวอร์ได้รับการพิจารณาว่า "มีความพร้อมใช้งานสูง" จะต้องมีเวลาทำงานของเครือข่ายถึง 99.999%

คลัสเตอร์ที่มีความพร้อมใช้งานสูงคืออะไร

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

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

คลัสเตอร์ที่มีความพร้อมใช้งานสูงทำงานอย่างไร

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

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

แนวคิดคลัสเตอร์ที่มีความพร้อมใช้งานสูง

คลัสเตอร์ Active-Passive

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

คลัสเตอร์ Active-Active

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

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

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

แชร์-ไม่มีอะไรเทียบกับคลัสเตอร์ดิสก์ที่แชร์

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

ลองนึกภาพถ้าคุณมีโหนดที่ทำงานอยู่ 50 โหนดที่ขับเคลื่อนโดยฐานข้อมูลเดียว หากโหนดใดโหนดหนึ่งล้มเหลว โหนดนั้นจะไม่มีผลกระทบต่อสถานะที่คงอยู่ของโหนดอื่น โดยไม่คำนึงถึงจำนวนของโหนดที่ทำงานอยู่

แต่ฐานข้อมูลควรล้มเหลว คลัสเตอร์ทั้งหมดจะล่ม ทำให้ฐานข้อมูลเป็นจุดล้มเหลวเพียงจุดเดียวใช่หรือไม่ สิ่งนี้เรียกว่า คลัสเตอร์ดิสก์ที่ใช้ร่วมกัน

ในทางกลับกัน หากแต่ละโหนดรักษาฐานข้อมูล ความล้มเหลวของโหนดจะไม่ส่งผลกระทบต่อคลัสเตอร์ทั้งหมด สิ่งนี้เรียกว่า คลัสเตอร์ที่ไม่มีการแชร์อะไร

หมายเหตุ: หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเทคโนโลยีการทำคลัสเตอร์ที่มีความพร้อมใช้งานสูง อย่าลืมดูการสัมมนาผ่านเว็บนี้ ด้วยประสบการณ์มากกว่า 20 ปีในอุตสาหกรรมซอฟต์แวร์ George Carbonnel จะแกะทุกอย่างที่คุณจำเป็นต้องรู้เกี่ยวกับวิธีที่เทคโนโลยีการทำคลัสเตอร์ด้วย Redis Enterprise มอบประสิทธิภาพสูงและความพร้อมใช้งานสูง

ความต้องการของสถาปัตยกรรมที่มีความพร้อมใช้งานสูง

มีข้อกำหนดต่างๆ มากมายที่คุณต้องใช้เพื่อเพิ่มความทนทานและความพร้อมใช้งานสูง ซึ่งรวมถึง:

โหลดบาลานซ์

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

ความสามารถในการปรับขนาดข้อมูล

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

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

ความหลากหลายทางภูมิศาสตร์

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

การสำรองข้อมูลและการกู้คืน (การกู้คืนจากภัยพิบัติ)

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

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

วิธีวัดความพร้อมใช้งานสูง

ความพร้อมใช้งานสูงมักจะวัดเป็นเปอร์เซ็นต์ของเวลาที่ผู้ใช้บริการได้ ซึ่งทำได้โดยการหารเวลาทำงานทั้งหมดด้วยระยะเวลาของระบบ จากนั้นคูณด้วย 100 เพื่อให้ได้เปอร์เซ็นต์ ตามอภิธานศัพท์สำหรับนักพัฒนาเครือข่ายของ Microsoft เพื่อให้เซิร์ฟเวอร์ได้รับการพิจารณาว่า "มีความพร้อมใช้งานสูง" จะต้องมีเวลาทำงานของเครือข่ายถึง 99.999%

ค่อนข้างบ่อยเปอร์เซ็นต์ความพร้อมใช้งานจะเรียกว่าจำนวนเก้าในหลัก สี่เก้าจะเป็น 99.99%

หมายเหตุ: ความพร้อมใช้งาน 99.99% ถือเป็นมาตรฐานอุตสาหกรรม

แนวทางปฏิบัติที่ดีที่สุดสำหรับความพร้อมใช้งานสูง

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

บรรลุความซ้ำซ้อนทางภูมิศาสตร์

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

หมายเหตุ: คุณสามารถบรรลุสิ่งนี้ได้อย่างง่ายดายด้วยฐานข้อมูลที่มี Active-Active Geo-Distribution

ใช้โซลูชันเฟลโอเวอร์

สถาปัตยกรรมที่มีความพร้อมใช้งานสูงมักจะเกี่ยวข้องกับเซิร์ฟเวอร์ที่เชื่อมต่อกันอย่างหลวม ๆ จำนวนมากที่ให้ความสามารถในการเฟลโอเวอร์ เฟลโอเวอร์ถูกมองว่าเป็นโหมดการทำงานสำรองที่ใช้โดยอัตโนมัติเมื่อฟังก์ชันของระบบหลักหยุดทำงาน

ใช้ตัวโหลดบาลานซ์

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

ตรวจสอบให้แน่ใจว่าการซิงโครไนซ์ข้อมูลของคุณตรงตามวัตถุประสงค์ของจุดกู้คืน (RPO)

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

การตั้งค่า RPO ของคุณให้น้อยกว่าหรือเท่ากับ 60 วินาทีจะช่วยให้คุณคงความพร้อมใช้งานสูงสุดได้ การทำเช่นนี้จะช่วยให้มั่นใจได้ว่าหากมีความล้มเหลวของแหล่งที่มาหลัก คุณจะไม่สูญเสียข้อมูลมูลค่าเกิน 60 วินาที

บทบาทของ Redis ในสถาปัตยกรรมที่มีความพร้อมใช้งานสูง

Redis Enterprise เป็นโซลูชันที่ทรงพลังสำหรับองค์กรขนาดใหญ่ที่ต้องการความพร้อมใช้งานสูงสุด เป็นแพลตฟอร์มข้อมูลตามเวลาจริงที่รับรองความพร้อมใช้งานห้าเก้ารายการซึ่งให้ความยืดหยุ่นของฐานข้อมูลอัตโนมัติที่ยอดเยี่ยม ในขณะที่ลดความเสี่ยงของความล้มเหลวของฮาร์ดแวร์และความล้มเหลวของระบบคลาวด์

Redis Enterprise ตอบสนองความต้องการความพร้อมใช้งานสูงของแอปพลิเคชันระดับองค์กรที่มีความสำคัญต่อภารกิจมากที่สุด โดยนำเสนอฟังก์ชันระดับชั้นนำของอุตสาหกรรมเพื่อให้มีความพร้อมใช้งาน 99.999% โดยใช้:Active-Active Geo Distribution, Automatic Failover, Intelligent Clustering, สถาปัตยกรรมที่ไม่มีการแชร์ข้อมูล และการกระจายทั่วโลก

ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการบรรลุความพร้อมใช้งานสูงหรือไม่