By Arnon Puitrakul - 29 มีนาคม 2018
ตกเย็นหลังเลิกงาน กลับบ้านมา Netflix ก็น่าจะเป็นกิจกรรมหนึ่งที่ใครหลาย ๆ คนทำกันหลังเลิกเรียน เลิกงานกันเลยละ (รวมถึงผมด้วย) อย่างที่เรารู้กันว่า Netflix เนี่ยให้บริการในหลากหลายประเทศทั่วโลก จากสถิติ Traffic ของ Netflix คิดเป็น 1 ใน 3 ของ Traffic ใน US แถม Headquarter ใหญ่ของ Netflix ก็ไม่ได้อยู่ใกล้ไทยเลยสักนิด แต่เราก็ยังสามารถดู Netflix ได้อย่างไม่สะดุด ถึงแม้เราจะดูในความละเอียดในระดับ 4K HDR เลยก็ตาม
ถ้าเรานึกถึงการ Steaming เราก็คงปฏิเสธไม่ได้เลยว่า ส่วนประกอบหลัก ๆ มันก็คือ Server ที่ถือวีดีโออยู่ใน Server เป็นจำนวนมาก กับ เครื่อง Client ที่เข้ามาเชื่อมต่อเพื่อส่ง Request เข้ามาขอวีดีโอจาก Server ไป
แต่วิธีนี้มันก็มีข้อเสียเหมือนกัน อย่างแรกคือ ถ้าเราบอกว่า ผู้ใช้เรามีไม่เท่าไหร่ Server ตัวนึงของเราก็คงป้อนข้อมูลให้กับ Client ได้สบาย ๆ อยู่แล้ว แต่ถ้าเราดันมี Client ที่เยอะมาก ๆ แล้วละก็ การขยาย Server Farm ไปเรื่อย ๆ ก็คงไม่ใช่เรื่องที่คุ้มค่าเท่าไหร่
ข้อถัดมา คนที่เล่นเกมออนไลน์น่าจะเคยสัมผัสกัน ลองสังเกตดูว่า ถ้าเราเล่นเกมออนไลน์ที่เราต้องเชื่อมต่อไป Server ในประเทศที่ไกลจากเรา Ping หรือ Latency มันจะสูงมาก ๆ จนบางทีเล่นไม่ได้เลยก็มี ทำให้เราต้องเลือกเล่นเกมออนไลน์ที่มี Server ใกล้ ๆ กับประเทศเราอย่าง สิงคโปร์ หรือในประเทศเราเองก็เช่นกัน
Latency คืออะไร ?
โดยปกติแล้ว เวลาเราจะส่งข้อมูลกันไปมา เราอาจจะคิดว่า ก็เอาความเร็วคูณด้วยขนาดแล้วตอบเลยสิ คำตอบคือ ไม่ได้ เพราะในการเชื่อมต่อจริง ๆ มันมีค่าอะไรหลายอย่างมาก ๆ
TCP Connection Scheme
เช่นเราจะบอกว่า เราจะเปิด TCP/IP Connection เราก็ต้องมีกระบวนการ การเปิดและปิดการเชื่อมต่อมากมาย แต่ค่านึงที่อยากให้สนใจคือ RTT หรือ Round-Trip Time คือเวลาที่ข้อมูลถูกส่งออกไปจนได้รับการยืนยันจากปลายทางแล้วว่าได้รับแล้ว ถามว่ามัน สำคัญยังไง ?
ลองนึกภาพเหมือนเราเล่นเกมออนไลน์ดู ว่าเราต้องการความ Real-time มากแค่ไหน เผลอ ๆ ถ้าเล่นเกมอย่าง CS:GO ที่เป็น FPS สัก ms นึงนี่ตัดสินแพ้ชนะได้เลยนะ (ใน Pro Player อะนะ ถ้าเป็นเราคือ จะน้อยจะมากก็แพ้เหมือนเดิม 😭) ในการ Steaming ก็เช่นกันที่มันต่างจากการโหลดทั้งไฟล์เข้ามาตรงที่ ถ้าเราโหลดทั้งไฟล์เข้ามา เราก็จะดูเมื่อมันโหลดเสร็จ เพราะฉะนั้น Real-time ก็ไม่ใช่ปัจจัยที่ส่งผลในการดูเลย แต่กลับกันถ้าเรา Steaming มันก็ต้องการความ Real-time มากกว่าแน่นอน เพราะเราต้องโหลดส่วนที่อยู่ข้างหน้าที่เราดูอยู่ เพื่อให้เราดูแล้วมันสะดุดตลอดเวลา กล่าวคือ Latency นั้นมีผลต่อการ Steaming มากอยู่พอสมควรเลย
และเหตุผลสุดท้ายที่ทำให้การใช้ Server เครื่องเดียวส่งข้อมูลให้เครื่องเป็นจำนวนมากคือ Single Point of Failure หรือถ้าให้พูดง่าย ๆ คือ ถ้าล่ม ก็คือ ใช้ไม่ได้เลยนั่นเอง นึกภาพว่า เรามีเครื่อง Server เครื่องเดียว แล้วถ้าเครื่องนั้นมันเกิดล่มขึ้นมา ก็ชิบหายกันเลย ไม่มีใคร Steam อะไรได้เลยนะ เพราะ Server ตัวเดียวที่คอยป้อนไฟล์มันล่มไปแล้วนั่นเอง
Netflix CDN Locations source: How Netflix Works With ISPs Around the Globe to Deliver a Great Viewing Experience
Content Delivery Network หรือ CDN จะเข้ามาเป็นพระเอกขี่ม้าขาว เข้ามาช่วยในเรื่องนี้ โดยหลักการของ CDN คือ มันจะ Cache ข้อมูลไว้บน Server ตัวอื่น ๆ หลาย ๆ ตัว เพื่อให้เวลา Client เรียกมันก็สามารถวิ่งไปหา Server ที่ใกล้ที่สุดเพื่อลด Latency ได้ และเพราะว่า CDN คือการเอา Data ไป Cache อยู่ใน Server เครื่องอื่น ๆ ทำให้ Load ของ Server หลักก็จะน้อยลง และเวลาล่ม Client ก็ยังเข้าใช้ผ่าน CDN ที่ใกล้ที่สุดได้อยู่ ทำให้ปัญหา Single Point of Failure หายไปทันควัน
ซึ่งจริง ๆ แล้ว CDN ไม่ได้ถูกนำมาใช้ใน Netflix อย่างเดียวนะ แต่ Service หลาย ๆ อย่างในปัจจุบันก็มีการใช้ CDN กันไปหมดแล้ว รวมถึงเว็บนี้ด้วยที่ทำงานอยู่บน Google CDN และ Cloudflare ที่ทำให้ถึงแม้ว่า Host ที่ผมใช้อยู่จะล่ม แต่ทุกคนก็ยังเข้าเว็บผ่าน CDN ได้อยู่ดี
กับอีกเรื่องที่สำคัญคือการ Scale ที่ Content มันถูกกระจายไปตาม Server ตลอดเวลา ทำให้ Load มันไม่กระจุกอยู่กับ Server หลักมากเกินไป ทีนี้ถ้าเราจะขยาย เราก็ไปใช้ CDN Server ที่ใหม่ซะเลย มันก็ช่วยประหยัด Cost ได้ เพราะ Cost ในการขยาย Server มันก็มีข้อจำกัดเหมือนกันทั้งในเรื่องของสถานที่ และพลังงานต่าง ๆ
ด้วยความที่ Netflix เป็นบริการ Steaming ที่ใหญ่มาก ๆ ทั้งในเรื่องของจำนวนวีดีโอ และผู้ใช้ ทำให้ CDN ทั่ว ๆ ไปโยน Content ให้กับ Client ไม่พอแน่นอน Netflix เลยมีอะไรที่เด็ดกว่านั้นนั่นคือ Netflix Open Connect
Netflix Open Connect
นั่นคือมันเป็น Hardware ตัวนึงที่ตั้งอยู่บน ISP หรือ Internet Service Provider เพื่อใช้สำหรับโยน Content ของ Netflix โดยเฉพาะเลย โดยที่ Hardware ตัวนี้เหมือนสมองของ Netflix เลยที่มันจะทำตัวเป็น CDN Server ที่เก็บหนังและซีรีส์ของ Netflix ทั้งหมดลงไป และพอคนต้องการจะดู มันก็จะไปดึงจาก Open Connect ตัวที่ใกล้ที่สุดมาให้
จาก Hardware ทำให้ Bandwidth ไม่ต้องปนกับ Bandwidth ของ Content อื่น ๆ อีกอย่างคือ ทำให้ Uplink Bandwidth ของ ISP ไม่เยอะมากด้วย เพราะ Content ของ Netflix มันไม่ต้องวิ่งออกจาก ISP เพราะมันโยนจากใน ISP โดยตรงเลย ก็ทำให้เร็วขึ้นอีก
ปัญหาที่น่าจะเกิดขึ้นคือ เมื่อ Client เยอะเกินจนทำให้ตัว Netflix Open Connect มันรับมือไม่ไหว วิธีง่าย ๆ คือ ก็แค่เพิ่มตัว Open Connect เข้าไปใน ISP เข้าไป ก็ทำให้รับ Bandwidth ได้มากขึ้นละ
Amazon Web Services
แต่เรื่องของระบบอื่น ๆ อย่างพวก Member หรือ Recommendation ต่าง ๆ ที่ไม่ได้ใช้ Bandwidth สูงอะไรมาก ก็จะรันอยู่บน AWS หรือ Amazon Web Services ที่เป็น Cloud จากทาง Amazon ที่ทำให้ Netflix พร้อมจะทำ Scaling เมื่อ Server ตรงส่วนนี้คนใช้เยอะขึ้น
Netflix เป็นบริการ Steaming ที่ใหญ่เป็นอันดับต้น ๆ ของโลกที่ได้รับความนิยมโคตรสูงมากในปัจจุบัน น่าจะทุก ๆ เย็นหลาย ๆ คนก็คงกลับบ้านมานอนตีพุงดู Netflix กัน แต่ถามว่า Netflix ทำยังไง ถึงสามารถทำให้คนสามารถ Steam พร้อม ๆ กันได้พร้อมกันเป็นจำนวนมากขนาดนี้ นั่นเพราะ Netflix ใช้หลักการของ CDN ในการกระจาย Content ไปตาม CDN Server ในหลาย ๆ ประเทศทั่วโลก เพื่อให้เพียงพอกับความต้องการของผู้ใช้ Netflix ทั่วโลกนั่นเอง
การสำรองข้อมูลเป็นเรื่องสำคัญมาก ๆ อารมณ์มันเหมือนกับเราซื้อประกันที่เราก็ไม่คาดหวังว่าเราจะได้ใช้มันหรอก แต่ถ้าวันที่เราจำเป็นจะต้องใช้การมีมันย่อมดีกว่าแน่นอน ปัญหาคือเรามีวิธีไหนกันบ้างละที่สามารถสำรองข้อมูลได้ วันนี้เราหยิบยกวิธีง่าย ๆ ที่สามารถทำได้ที่บ้านมานำเสนอกัน...
คำว่า Zero-Trust น่าจะเป็นคำที่น่าจะเคยผ่านหูผ่านตามาไม่มากก็น้อย หลายคนบอกว่า มันเป็นทางออกสำหรับการบริหาร และจัดการ IT Resource สำหรับการทำงานในปัจจุบันเลยก็ว่าได้ วันนี้เราจะมาเล่าให้อ่านกันว่า มันคืออะไร และ ทำไมหลาย ๆ คนคิดว่า มันเป็นเส้นทางที่ดีที่เราจะมูฟออนกันไปทางนั้น...
หลังจากเราลงรีวิว NAS ไป มีคนถามเข้ามาเยอะมากว่า ถ้าเราไม่อยากซื้อเครื่อง NAS สำเร็จรูป เราจะสามารถใช้เครื่องคอมเก่าที่ไม่ได้ใช้แล้วมาเป็นเครื่อง NAS ได้อย่างไรบ้าง มีอุปกรณ์ หรืออะไรที่เราจะต้องติดตั้งเพิ่มเติม วันนี้เราจะมาเล่าให้อ่านกัน...
เมื่อปีก่อน เรารีวิว Adapter 100W จาก UGreen ที่เคยคิดว่ามันเล็กกระทัดรัด น้ำหนักเบา พกพาง่ายที่สุดไปแล้ว ผ่านมาปีนึง เรามาเจออีกตัวที่มันดียิ่งกว่าจากฝั่ง Ugreen เช่นเดียวกันในซีรีย์ Nexode Pro วันนี้เรากดมาใช้เอง 2 ตัวคือขนาด 65W และ 100W จะเป็นอย่างไร อ่านได้ในบทความนี้เลย...