หนึ่งในปัญหาที่พบบ่อยที่สุดที่คุณสามารถเผชิญเมื่อโปรเจกต์ของคุณเติบโตขึ้นคือความจำเป็นในการรักษา environment ที่หลากหลายซึ่งอาจจำเป็นต่อการรับความจุที่เพียงพอ (เพื่อให้บริการลูกค้าทั้งหมด) เช่น การจัดการแอปเวอร์ชันต่างๆ คุณมักประสบปัญหาเกี่ยวกับการกระจาย traffic ที่เหมาะสมระหว่างสำเนาของโปรเจกต์รวมถึงจำนวนของทิศทางต่างๆ เช่น การตั้งค่าวิธีการที่เหมาะสมสำหรับการกำหนดเส้นทางคำขอ อัตราการโหลดเซิร์ฟเวอร์ ฯลฯ การแก้ปัญหาทั้งหมดนี้อาจกลายเป็นเรื่องท้าทายแม้แต่นักพัฒนาที่มีประสบการณ์
ดังนั้นเพื่อแก้ปัญหาเหล่านี้ Ruk-Com Cloud ขอเสนอโซลูชันที่ใช้งานง่ายและฟรีโดยอิงจากการกำหนดค่า load balancer โดยอัตโนมัติซึ่งจะถูกส่งเป็น Traffic Distributor add-on พิเศษที่พร้อมใช้งาน สำหรับการติดตั้งเพียงคลิกเดียวอย่างรวดเร็วผ่าน Marketplace และจัดเตรียมการกำหนดเส้นทางรับส่งข้อมูลอย่างอัจฉริยะตามความต้องการของคุณ
โซลูชันนี้คุณสามารถตั้งค่าปริมาณงานที่เหมาะสม สมดุลระหว่างคู่ของโฮสต์และประโยชน์จากฟีเจอร์และโอกาสต่อไปนี้ที่จัดเตรียมไว้ให้:
- high availability และ advanced failover – แชร์โหลดระหว่างสองสำเนาของแอปพลิเคชัน ซึ่งอาจจะอยู่ในฮาร์ดแวร์ที่แตกต่างกันเพื่อป้องกันการล้มเหลวให้ดีขึ้น
- การ deploy แอปพลิเคชัน Blue-Green (zero downtime) – เปลี่ยนเส้นทางคำขอที่เข้ามาทั้งหมดไปยัง backend เดียวในขณะที่อีกอันอยู่ระหว่างการบำรุงรักษา
- การทดสอบ A/B อย่างต่อเนื่อง – กำหนดเส้นทางการรับส่งข้อมูลขาเข้าระหว่างแอปพลิเคชันสองเวอร์ชันที่แตกต่างกัน และเปรียบเทียบประสิทธิภาพและอัตรา UX เพื่อเลือกเวอร์ชันที่ดีที่สุดสำหรับการผลิต
- UI ที่ใช้งานง่าย – แบบฟอร์มการกำหนดค่าช่วยตั้งค่าพารามิเตอร์หลักทั้งหมดของการกระจาย traffic (ทั้งในระหว่างการสร้างหรือการปรับเปลี่ยนที่ตามมา) รวมถึงความพร้อมใช้งานในการเลือกเส้นทาง 3 ประเภทที่แตกต่างกันให้เหมาะกับความต้องการของคุณมากที่สุด: Round Robin, Sticky Sessions และ Failover
- การตรวจสอบสุขภาพ: backends ทั้งสองจะได้รับการตรวจสอบโดยอัตโนมัติสำหรับการตอบกลับปกติ (เช่น สถานะ return 200 ซึ่งงบ่งบอกว่าคำขอได้รับการตอบสนองแล้ว) ตามที่กำหนดค่าพารามิเตอร์ (ความถี่ หมดเวลา ฯลฯ)
- ความยืดหยุ่นและความสามารถในการยืดขยาย – นอกเหนือจากการตั้งค่าการกระจายหลัก ความพร้อมใช้งานผ่าน add-on graphic interface คุณสามารถใช้การปรับแต่งเพิ่มเติมที่ต้องการ (เช่น การตั้งค่า cache, TCP mapping, SNI และอื่นๆ) ผ่านการกำหนดค่าด้วยตนเองที่ไฟล์ NGINX – ไม่จำกัดการใช้งาน
โดยทั่วไปเมื่อเปรียบเทียบกับการรันเซิร์ฟเวอร์ Traffic Distributor จะเร่งการประมวลผลคำขอ,ลดความล่าช้าในการตอบกลับของผู้ใช้และจัดการเธรดเพิ่มเติมพร้อมกัน
วิธีการกำหนดเส้นทาง
การกระจาย traffic ผ่านโซลูชัน Ruk-Com Cloud คุณสามารถเลือกวิธีการกำหนดเส้นทางได้ 3 วิธีเพื่อให้ได้วิธีที่ตรงตามความต้องการของคุณมากที่สุดและเหมาะสมกับการใช้งานซึ่งควรพิจารณาในส่วนนี้:
- Round Robin – วิธีการกำหนดเส้นทางที่ตรงไปตรงมาที่สุดและใช้กันเป็นส่วนมากซึ่งช่วยให้สามารถกระจายการรับส่งข้อมูลระหว่าง environment ได้เท่าๆกันโดยชี้แต่ละคำขอไปยังคำขอเหล่านั้นแบบหมุนเวียน (ทีละรายการ) เนื่องจากเรียงตามลำดับความสำคัญของ backend ที่ตั้งไว้
เพิ่มเติม: การใช้ตัวเลือกนี้ คุณควรจัดเตรียมเนื้อหาที่เหมือนกันกับ backend ของคุณ (เนื่องจากข้อมูลที่ผู้ใช้ร้องขอจะถูกโหลดจากทั้งสองแบบ)
- Sticky Sessions – การกำหนดเส้นทางประเภทนี้ขึ้นอยู่กับการเกาะติดผู้ใช้แต่ละรายโดยเฉพาะ (ตามน้ำหนักของเซิร์ฟเวอร์ที่ตั้งไว้) ซึ่งจะประมวลผลคำขอทั้งหมดจนกว่าเซสชันผู้ใช้ที่เกี่ยวข้องจะถูกสร้างขึ้นในการเข้าแอปครั้งแรก หมดอายุ
- Failover – การกำหนดเส้นทางประเภทนี้คุณสามารถตั้งค่าสำเนา backup ของเซิร์ฟเวอร์หลักและเก็บไว้ในโหมด standby (เช่น สำรอง) หากมีปัญหาเกิดขึ้นกับ backend หลักคำขอทั้งหมดจะถูกเปลี่ยนเส้นทางไปยังเซิร์ฟเวอร์ที่ทำงานโดยอัตโนมัติซึ่งผู้ใช้มักจะไม่สังเกตเห็นช่วงเวลาที่แอปพลิเคชันหยุดทำงาน
การใช้งาน TD
สิ่งที่คุณต้องทำเพื่อให้ได้ Traffic Distributor ของคุณเองคือคุณต้องกรอกจำนวนของพารามิเตอร์หลัก (เช่น เลือกโฮสต์เพื่อกำหนดเส้นทางคำขอ, ประเภทของการกำหนดเส้นทาง, อัตราส่วนของ traffic, ฯลฯ) และเริ่มติดตั้งเพียงกดปุ่มเดียว หลังจากสร้าง Traffic Distributor เสร็จจะแสดง environment ที่แยกกันด้วยจำนวนของ NGINX load balancer nodes ที่กำหนดไว้และ add-on พิเศษที่ติดตั้งไว้ด้านบน
ก่อนการติดตั้งคุณสามารถเลือก entry point ได้เช่น คำขอจะได้รับการประมวลผลผ่าน Shared Load Balancer หรือ public IP address
เคล็ดลับ: Traffic Distributor ทำงานโดยใช้โปรโตคอล HTTP และ HTTPS มาตรฐานและยังเหมาะสำหรับโปรโตคอลอื่นๆแบบเดียวกัน (รวมถึง WebSockets) การทำโหลดบาลานซ์เองจะดำเนินการเฉพาะในระหว่าง HTTP handshake หลังจากนั้นการเชื่อมต่อ WebSockets แบบถาวรกับ backend จะถูกสร้างขึ้น
ด้วยวิธีนี้คุณจะได้รับ Traffic Distributor ที่ยืดหยุ่นมากซึ่งสามารถช่วยให้คุณบรรลุเป้าหมายต่างๆ ตั้งแต่สถานการณ์ง่ายๆของเซิร์ฟเวอร์โหลดไปจนถึงสถานการณ์ที่ซับซ้อนมากขึ้น เช่น การใช้ blue-green deployment เพื่อติดตั้งการอัปเดตแอปพลิเคชันโดยไม่ต้องหยุดทำงาน การดำเนินการทดสอบ A/B อย่างต่อเนื่องและการใช้การป้องกัน failover ขั้นสูง เป็นต้น