Cloud Server กับ Server High Availability

Cloud Server คืออะไร 

ถ้าพูดถึงเซิฟเวอร์ในรูปแบบเก่า จะหมายถึงเซิฟเวอร์ที่เป็นเครื่องๆ เหมือนคอมพิวเตอร์ตั้งโต๊ะทั่วไป (แต่มีความเสถียรมากกว่า) ไปวางบน Data Center เพื่อให้ผู้ใช้งานจากที่ต่างๆเข้ามาเชื่อมต่อ ในการเรียกดึงข้อมูลหรือ  Application ของเรา แต่ปัญหาของเซิฟเวอร์รูปแบบเก่า เช่นเมื่อต้องทำงานตลอด 24 ชั่วโมงเป็นระยะเวลานาน Ram, Harddisk, CPU ก็อาจมีปัญหาได้ และเมื่อมีปัญหาเครื่องก็จะดับไป ส่งผลให้เว็บไซต์หรือ Application ต่างๆไม่สามารถทำงานได้ และกว่าเจ้าหน้าที่จะตรวจสอบได้ว่าส่วนใดมีปัญหา ก็อาจใช้เวลานานหลายชั่วโมงหรือหลายวัน

ซึ่งแน่นอนว่าระหว่างนั้นเว็บไซต์ของคุณจะไม่สามรรถใช้งานได้อย่าแน่นอน แต่การทำงานในส่วนของ Cloud Server จะเป็นการผูก Ram, Harddisk, CPU ของหลายร้อยเครื่องมารวมกัน เมื่อชิ้นส่วนใดมีปัญหา ก็จะมีชิ้นส่วนอีกหลายร้อยชิ้นทำงานแทน ส่งผลให้ในส่วนของ “Hardware” ไม่มีวันดับนั่นเอง แต่ถึงอย่างไรก็ไม่ได้แปลว่าจะไม่ได้ล่มซะทีเดียว เพราะสาเหตุที่เว็บไซต์จะไม่สามารถใช้งานได้มีอีกมากมาย ได้แก่

 

Resource ที่แบ่งให้

เนื่องด้วย Resource อาทิ Ram = กี่ GB CPU = กี่ Core ของแต่ละ Application มีการแบ่งไว้อย่างชัดเจน ซึ่งเมื่อ Application นั่นใช้ทรัพยากรจนเต็ม อาทิ เซิฟเวอร์มีการกำหนด RAM ไว้ 1GB เมื่อมีคนเข้าใช้งาน 1 คน อาจใช้ RAM โดยประมาณที่ 10MB เมื่อมีคนใช้งาน 100 คน ก็จะใช้ไปทั้งสิ้น 1000MB หรือ 1GB เมื่อมีคนเข้าใช่งาน 150 คน เว็บไซต์ดังกล่าวก็จะไม่สามารถเข้าได้ เพราะ Resource ที่ให้ไว้ เต็มนั้นเอง ซึ่งประเด็นเรื่อง RAM เป็นแค่ประเด็นหนึ่ง อาจมีเรื่อง CPU หรือ DiskI/O หรือ Harddisk และอื่นๆอีกมากมาย

 

แล้วทำไมไม่กำหนด Resource ไว้ให้เยอะๆจะได้ไม่เกิดปัญหา?

Resource ยิ่งมาก ค่าใช้จ่ายก็จะยิ่งสูง การกำหนด Resource อาทิ RAM หากให้ไว้ที่ 10GB อาจมีค่าใช้จ่ายต่อเดือนที่สูงถึงเดือนละ 7-8 พันบาท เมื่อเทียบกับ 1GB ที่อาจจะแค่ 7-8 ร้อยบาทนั่นเอง ซึ่งถ้าลูกค้ายอมจ่ายในราคาต่อเดือนที่สูง ก็แลกมากับความเสถียรที่ดีขึ้นมาก 

 

Software ทำงานไม่ปรกติ

ไม่มี Software ไหนบนโลกใบนี้ เสถียร 100% เต็ม เนื่องด้วยการใช้ของผู้ใช้มีการเปลี่ยนแปลงขึ้นทุกวัน เช่น OS ของเซิฟเวอร์ Browser ที่ใช้ หรือแม่แต่ Bug ของ Software ระบบปฎิบัติการหรือฐานข้อมูลที่ใช้

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

 

การโดนโจมตีและระบบ Firewall

หลายๆครั้งที่เว็บไซต์ไม่สามารถเข้าได้ เพราะโดนยิง โดน Hack ซึ่งระบบที่ใช้ในการป้องกันคือ Firewall ซึ่ง Firewall ที่ใช้ในปัจจุบันนี้มีหลายระดับ ซึ่งหากเป็นเกรดที่ดีหน่อย หากอ้างอิงจาก Cloudflare Web firewall ชื่อดัง จะมีค่าใช้จ่ายต่อเดือนอยู่ที่ $5,000 หรือประมาณ 176,447.75 บาทต่อเดือน ซึ่งโดยปรกติ ไอทีโดยทั่วไปจะลดต้นทุนในส่วนนี้ ด้วยการใช้ระบบป้องกันแบบปานกลาง อาทิใช้ Opensource หรือ อุปกรณ์ที่ราคาย่อมเยาว์ลง แต่หากโชคร้าย เจอการโจมตีในระดับสูง ระบบป้องกันแบบปานกลางก็อาจเอาไม่อยู่ เห็นได้จากแม้แต่เว็บไซต์ของหน่วยงานราชการ ที่มีการลงทุนระบบไปหลายร้อยล้านบาท ก็ยังล่มได้ง่ายๆเมื่อเกิดการโจมตีขึ้น

 

การออกแบบผังการทำงานในรูปแบบประหยัดค่าใช้จ่าย

อันที่จริงการทำงานของ Application ขนาดใหญ่ที่มีความซับซ้อน ต้องมีการแยกเซิฟเวอร์ในการทำงานหลายตัว เช่นตัว A สำหรับเก็บไฟล์พวกรูปภาพ , B สำหรับ Database , C สำหรับระบบ Cached , D สำหรับรัน code เพื่อเพิ่มความสเถียรมากยิ่งขึ้น ซึ่งจากตัวอย่างที่แจ้งไปนั้น ต้องใช้เซิฟเวอร์ที่ 4 ตัว ซึ่งแน่นอน ว่าค่าใช้จ่ายของลูกค้า ก็จะเป็น 4 เท่า​(โดยประมาณ) จากปรกติ นี่ยังไม่รวมระบบ mirroring คือมีชุดดังกล่าวเพิ่มอีกชุด สำหรับกรณีที่ชุดแรกมีข้อผิดพลาด ซึ่งต้องใช้ทั้งสิ้นถึง 8 ตัว ค่าใช้จ่ายก็จะเป็น 8 เท่า โดยประมาณ เช่นปรกติจ่ายที่เดือนละ 1,500 บาท ก็อาจเป็นเดือนละ 12,000 บาทต่อเดือน และหากแต่ละเซิฟเวอร์มี Resource ที่สูง ก็อาจใช้ค่าใช้จ่ายถึงเดือนละหลายหมื่นบาท 

 

ซึ่งปัญหาดังกล่าวยังไม่รวมถึง Bug จาก Software ของตัว Application เองก็ตาม ซึ่งไม่ว่าจะพัฒนาไปอีกกี่ 10 ปี ก็ไม่มีทางที่จะสเถียรได้ 100% โดยเฉพาะ Software ที่รันบนเว็บไซต์ ที่ Browser,OS ของฝั่งผู้งานมีการอัพเกรดตลอดเวลา เช่น Application ที่พัฒนาตั้งแต่ steve jobs ยังไม่ตาย คือตั้งแต่ IOS1 จนปัจจุบันนี้ IOS10 คำถามคือซอฟเวอร์ในสมัยหากไม่มีการอัพเกรด หรือแก้ไขใดๆเลยจะทำงานได้ดีบน IOS 10 หรือไม่ คำตอบคือไม่ ซึ่งไม่ในที่นี่คือทำงานไม่ได้อย่างแน่นอน แต่สายเว็บอาจจะไม่ลำบากเท่า แต่การอัพเกรดของ Web Browser ก็ไม่ได้ช้าไปกว่ากัน ซึ่งนี่เป็นเพียงสาเหตุเล็กๆสาเหตุนึงเท่านั้น 

 

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