ปัญหาที่เกิดขึ้นกับ Website ที่มีคนมากๆนั้น จะสัมพันธ์กับปริมาณความต้องการใช้งาน ณ ช่วงเวลาหนึ่งๆ เราน่าจะเคยได้พบกับปัญหา web ล่ม จากการเข้าตรวจสอบคะแนนสอบ A-Net, O-Net หรือ แม้กระทั่ง website ขนาดใหญ่อย่าง fifa.com ก็เคยล่มตอนเกมการแข่งขันฟุตบอลโลกมาแล้ว นั่นเป็นเพราะมีจำนวนผู้ใช้ร้องขอข้อมูลพร้อมๆกันมากเกินไป ซึ่งความต้องการข้อมูลจะกลายเป็นมากกว่า 500,000 หรือ 1 ล้านครั้งภายในชั่วโมงเดียว
ความลับที่ไม่ลับมากของผู้ให้บริการ website ขนาดใหญ่ ใช้กลไกของสถาปัตยกรรมระบบต่างๆที่มีอยู่แล้ว ในการจัดการเพื่อให้บริการ Website ในสถานการณ์ที่มีความต้องการหนักๆได้ สิ่งที่ต้องเน้น 3 จุดหลักๆคือ ความเร็วของเครือข่าย (Network Bandwidth), ช่องทางบริการตัวเว็บไซต์ (HTTP Server), ข้อมูลของเว็บไซต์ผ่านระบบฐานข้อมูล (Database Server)
Network Bandwidth น่าจะเป็นอะไรที่ง่ายที่สุดในการจัดการ ช่องทางให้บริการของ Network ที่มีผู้ใช้งานหนักๆ อาจจะมีตั้งแต่ 10Gbit หรือ 100Gigabit แต่โดยสื่อการส่งข้อมูลที่เร็วขนาดนั้นไม่ได้เกิดจากการต่อสายเส้นเดียวที่มีความเร็วขนาดนั้นได้ วิธีการทำ Trunk ซึ่งเสมือนการต่อสายส่งข้อมูลหลายๆเส้น แต่ให้ระบบมองเป็นเส้นเดียวได้ การทำ Trunk จะมีการประยุกต์ไปในรูปแบบต่างๆ ซึ่งเราสามารถให้ Server มี Trunk port โดยการต่อการ์ด LAN จำนวนหลายๆไปก็ได้ หรือ การต่อสาย LAN กับ Network Switch หลายๆเส้น หรือ สายไฟเบอร์ 10Gbps จำนวนหลายๆ port ก็เป็นการทำงานเพื่อเพิ่มประสิทธิภาพของสายส่งข้อมูลที่มีจำกัดได้
Example of Trunk port for switch [Image credits Allied Telesis] |
Load balancer method [Image credits ARR Architecture IIS.net ] |
ส่วน Clouds หรือการทำ Virtualization นั้นคือวิธีคิดเหมารวมของคำอธิบายทั้ง 3 เรื่องที่ผ่านมา ทั้งนี้เพื่อให้การจัดการของผู้ดูแลระบบง่ายขึ้น เราก็เพียงให้ผู้ดูแลระบบไม่ต้องสนใจว่าองค์ประกอบของสถาปัตยกรรมระบบการเชื่อมต่อเป็นอย่างไร ขอให้มีพื้นที่เว็ป, มีฐานข้อมูล ระบบที่อยู่ภายใน Clouds จะทำการบริหารจัดการทุกอย่างเพื่อให้ระบบสามารถทำงานได้ภายใต้เงื่อนไขทรัพยากรที่กำหนด
Cloud Services |
สิ่งที่กล่าวมาทั้งหมด คือทำให้ระบบรองรับความสามารถในการเพิ่มศักยภาพได้ Scalability เพื่อที่จะเพิ่มขีดความสามารถในระบบการให้บริการ ที่ไม่สามารถทำได้ด้วยเครื่อง Server เพียงเครื่องเดียว แต่เป็นการทำให้ Server หลายตัว ทำงานในรูปแบบเดียวกันโดยไม่เกิดความขัดแย้งในการจัดการข้อมูล และทำตัวเสมือนเป็นเครื่องให้บริการเพียงตัวเดียวได้ ดังนั้น Admin น้องๆที่ออกแบบระบบหรือการพัฒนาระบบจะต้องคิดถึงกรณีที่สิ่งที่เราทำงานอยู่ในวันนี้อาจจะมีการใช้งานที่จำกัด ต้องการประหยัด แต่ในวันหนึ่งถ้าเราต้องโตขึ้นไปจะต้องหาทางโตไปให้ได้ภายในงบประมาณที่เหมาะสมเช่นกัน
Written by Tiwakorn Laophulsuk
No comments:
Post a Comment
Give a comment ...