สวัสดีครับเพื่อน ๆ ชาว IT หลังจากที่ทีมงานของเราได้เปรียบเทียบ Streaming ยอดนิยมสำหรับคนไทยไปกับหัวข้อ เหตุผลที่ Netflix และ Disney+ เลือกใช้ Cloud แทนการสร้าง Data Center เอง เราติดกันไว้ตรงเรื่อง CDN วันนี้ผมจะแนะนำว่า CDN คืออะไร ทำไม Streaming ต้องใช้ CDN และยังมีบริการอื่น ๆ ที่ใกล้ตัวเรามาก ๆ ก็ใช้ CDN เช่นเดียวกัน แต่จะมีอะไรบ้างนั้น เรามาดูกันครับก่อนที่จะไปดูหลักการทำงานของ Streaming Service ซึ่งวันนี้เราจะยกตัวอย่างขึ้นมาว่ากว่าจะดู Video ได้ ต้องผ่านขั้นตอนอะไรบ้าง เรามาทำความรู้จักกับเจ้า CDN กันก่อนครับ
CDN คืออะไร?
CDN ย่อมาจาก Content Delivery Network คือการนำ Server มาทำงานรวมกันเป็นหมู่คณะโดยอาศัยประโยชน์จาก Server ที่วางไว้ใน Location ต่าง ๆ ทั่วทุกมุมโลก ใช้ในการกระจาย Content ผ่าน Internet ให้รวดเร็วเร็วยิ่งขึ้นโดยข้อมูลที่ส่งผ่าน Internet ด้วย CDN จะได้แก่ HTML (ที้ใช้แสดงบน Website), ไฟล์ Java, รูปภาพ และวิดีโอ ทุกวันนี้ความนิยมในการใช้งานบริการ CDN มีมากขึ้นเรื่อย ๆ โดยในปัจจุบันก็มี Website เป็นจำนวนมากที่ใช้งาน CDN เช่น Facebook, Netflix และ Amazon เป็นต้น
CDN เป็น Web Hosting ใช่หรือไม่?
CDN ไม่ได้ทำหน้าที่เป็น Web Hosting แต่เป็นแค่ที่ฝาก Content โดยการใช้ Cache Server ที่อยู่ตามสถานที่ต่าง ๆ ทั่วทุกมุมโลก ซึ่ง Cache Server นี้ช่วยให้ User สามารถเข้าใช้งาน Website ได้ไวขึ้นมีประสิทธิภาพมากขึ้น หลาย ๆ Website ที่เจอปัญหาเรื่องของ Performance กับการใช้งาน Web Hosting ก็อาจจะใช้ CDN เข้ามาช่วยเพิ่มประสิทธิภาพในการใช้งานได้ ซึ่งการเก็บ Cache ของ CDN จะช่วยลดการใช้ Bandwidth จากต้นทางในการส่งข้อมูล ทำให้ไม่เจอปัญหาการสะดุดติดขัดต่าง ๆ ในการใช้งาน
CDN ทำงานได้อย่างไร?
ทำไมเราต้องใช้ CDN? ก็เพราะว่าการส่งผ่านข้อมูลจะต้องใช้เวลาในการดำเนินการ ขนาดเราใช้ Fiber Optic ยังต้องใช้เวลาประมาณ 0.16 วินาที ในการส่งข้อมูลไป-กลับระหว่างอเมริกาไปยังออสเตรเลีย ทีนี้ลองนึกภาพตามว่าถ้ามีคนพันกว่าคนในออสเตรเลียต้องการจะดูหนังเรื่องเดียวกัน และในเวลาเดียวกัน โดย Source ของหนังอยู่บน Server ที่อเมริกา การที่จะทำแบบนี้ได้คนดูอาจจะเจอปัญหาในการรับชมได้
ปัญหาเรื่องของ Source ในการส่งข้อมูล จะมี Limit อยู่ในเรื่องของ Physical Environment แต่เราสามารถแก้ไขปัญหาได้โดยการเอา Content ไปวางไว้ที่ Server ที่อยู่ใกล้กับผู้ใช้งานให้มากที่สุด การที่เราสามารถเอา Content ไปวางไว้ในที่ต่าง ๆ ทั่วทุกมุมโลกได้จะช่วยลด Delay ในการเข้าถึง Content ได้นั่นเอง
หลักการทำงานของ CDN คือแบบนี้แหละครับ ยกตัวอย่างของ Disney+ ก็ใช้ CDN Provider ในการนำ Content ไปฝากไว้กับ Server ต่าง ๆ ทั่วทุกมุมโลกซึ่งแต่ละ Server เหล่านั้นก็มี ISP ของโซนนั้น ๆ นำโครงข่ายของตัวเองเข้ามาเชื่อมต่ออยู่แล้ว แทนที่จะให้ผู้ใช้งานไปเรียกใช้งาน Content จากต้นทาง ก็ให้ย้ายไปเรียกใช้งานกับ Server ที่ใกล้กับผู้ใช้งานมากที่สุด ทำให้คนที่ดู Disney+ สามารถดู Video ได้โดยไม่ต้อง Download Video ทั้งหมดก่อนการรับชม วิธีการนี้คือที่เราเรียกกันว่า Video Streaming ครับ
Streaming Service มีหลักการทำงานอย่างไร?
Video streaming ทำให้ผู้ใช้งานสามารถชม Video ได้แบบ Real-time การ Streaming จะเป็นการเรียกใช้งานโปรแกรมที่ใช้เล่น Video ให้สามารถเล่น Video ได้โดยไม่ต้องอาศัยการ Copy และ Save Content เอาไว้ก่อน เทียบกับสมัยก่อน เราจำกันหรือไม่ครับว่าเราต้องโหลด Video มาเก็บไว้ก่อน แล้วถึงจะดูได้ เช่น การใช้งาน BitTorrent เป็นต้น การใช้ Streaming จะไปเรียก Content เอาจาก Cache Server ที่มี Source ของ Video เก็บเอาไว้เป็น Cache มาเรียกใช้งาน ทำให้สามารถดู Video ได้อย่างไหลลื่นนั่นเองครับ
นอกจาก Streaming Service แล้ว CDN สามารถเอาไปใช้ประโยชน์กับบริการอะไรได้บ้าง?
จริง ๆ ประโยชน์ของ CDN ขึ้นอยู่กับความต้องการของผู้ใช้งาน โดยส่วนใหญ่แล้วจะแบ่งออกเป็น 4 ข้อหลัก ๆ คือ
- เพิ่มความเร็วในการโหลดหน้าเว็บ – โดยการเอา Content ไปวางไว้ที่ CDN Server ที่ใกล้กับ End-user มากที่สุด ทำให้ผู้ใช้งานเข้าถึง Website ได้รวดเร็ว ซึ่งผู้ใช้งานโดยทั่วมักจะไม่ชอบใช้งาน Website ที่โหลดช้า ๆ การใช้งาน CDN จะช่วยลดโอกาสที่ลูกค้าจะปิดหน้าเว็บทิ้ง และเพิ่มระยะเวลาในการใช้งาน Website ให้มากขึ้น ว่ากันง่าย ๆ ก็คือ Website ที่เร็วกว่าคนจะเข้ามาใช้งานมากกว่านั่นเอง
- ลดค่าใช้จ่ายเรื่องของ Bandwidth – ค่าใช่จ่ายเรื่องของ Bandwidth สำหรับ Website คือหนึ่งในค่าใช้จ่ายหลัก การที่เอา CDN มาช่วยในการ Cache และปรับปรุงประสิทธิภาพสามารถช่วยลดค่าใช้จ่ายที่ต้องเสียค่า Bandwidth จากต้นทางไปยังปลายทางได้
- ป้องกันไม่ให้ Content เสียหาย – หาก Website เราเป็นที่นิยมมากจน Traffic ที่เข้ามามีมากจนเกินที่ Hardware จะรับไหว การใช้งาน CDN จะช่วยลด Load ให้กับ Server ต้นทางได้ เนื่องจาก Traffic ก็จะกระจายไปตาม CDN Server ต่าง ๆ แทน Server หลักที่ Content นั้นอยู่
- เพิ่มการป้องกันให้กับ Website – CDN Provider บางรายมี Option ให้ใช้งาน DDOS Protection ได้ เป็นการเพิ่มการป้องกันอีกช่องทางนึง
ทำไม CDN ถึงช่วยลด Latency?
ในส่วนของโหลดหน้า Website ผู้ใช้งานส่วนใหญ่จะไม่ค่อยอยากกดเข้ามาดู ถ้าหน้า Web โหลดได้ช้า CDN สามารถเข้ามาช่วยแก้ไขปัญหาได้ดังนี้ครับ
- ยิ่งระยะทางระหว่างผู้ใช้งานกับต้นทางของ Website อยู่ไกลกัน Latency ก็จะสูงขึ้นตามระยะทางที่มากขึ้น การนำ CDN มาใช้จะช่วยลดระยะห่างของผู้ใช้งานกับ Website โดยการนำ Content ไปฝากไว้ที่ Data Center ที่ใกล้กับผู้ใช้งานมากที่สุด
- Server จาก CDN Provider จะมีการทำ Load-Balancing และใช้ Hard Drive ที่เป็นแบบ SSD ช่วยให้ข้อมูลสามารถส่งผ่านไปยัง End-user ได้เร็วขึ้น
- CDN สามารถลดขนาดของข้อมูลโดยการใช้เทคนิคการบีบอัดไฟล์ หรือ การแบ่งไฟล์เป็นหน่วยย่อยเล็ก ๆ ยิ่งไฟล์เล็กยิ่งช่วยลดระยะเวลาในการโหลดหน้า Website
- CDN ยังสามารถช่วยเพิ่มความเร็วในการโหลดหน้าเว็บด้วยการใช้งาน TLS/SSL certificates โดยการเรียกกลับมาใช้งานอีกครั้งหากเคยมีการเปิดหน้าเว็บไปแล้วจากบุคคลอื่น ๆ
CDN Provider ที่แนะนำมีอะไรบ้าง?
ในระดับโลก CDN Provider ยอดนิยมก็ได้แก่ Akamai, LimeLight, CloudFront, Cloudflare และอื่น ๆ อีกมากมาย
Free CDN ก็มีทุกท่านก็สามารถทดลองใช้งานได้เช่นกัน
พวก Public Cloud ส่วนใหญ่จะมีของ CDN เป็นของตัวเองหมด ไม่ว่าจะเป็น Amazon (ใช้กับ Amazon Prime ด้วย), Microsoft และ Google
เป็นอย่างไรกันบ้างครับ สำหรับหัวข้อ CDN ในวันนี้ ผมไม่ได้ลงรายละเอียดลึกมากไปจนถึงขั้นว่าองค์ประกอบของ CDN ต้องมีอะไรบ้าง แต่ถ้าอยากทราบกันก็ Comment กันเข้ามาได้นะครับ หวังว่าจะเป็นประโยชน์กับทุกท่านครับ
ขอบคุณครับ
— Cloud HM