เกือบทุกบทความหรือเครื่องมือในการเพิ่มประสิทธิภาพความเร็วไซต์จะมีประโยคที่เรียบง่ายว่า “ใช้ CDN” โดยทั่วไป CDN คือเครือข่ายการจัดส่งเนื้อหาหรือเครือข่ายการจัดส่งเนื้อหา พวกเราที่ Method Lab มักพบคำถามจากลูกค้าในหัวข้อนี้ ซึ่งบางคำถามก็เปิดใช้งาน CDN ของตัวเอง วัตถุประสงค์ของบทความนี้คือเพื่อทำความเข้าใจว่า CDN สามารถให้อะไรได้บ้างในแง่ของความเร็วในการโหลดไซต์ ปัญหาที่อาจเกิดขึ้น และในกรณีใด การใช้ CDN ก็สมเหตุสมผล
ความล่าช้าที่วงกลมไว้ในรูปภาพเกิดจากการใช้ CDN
บิตของประวัติศาสตร์
เช่นเดียวกับเทคโนโลยีอื่นๆ CDN เกิดขึ้นจากความจำเป็น ด้วยการพัฒนาช่องทางอินเทอร์เน็ตในหมู่ผู้ใช้อินเทอร์เน็ตบริการวิดีโอออนไลน์ก็ปรากฏขึ้น โดยปกติแล้ว เนื้อหาวิดีโอจำเป็นต้องมีแบนด์วิธที่มากกว่าเมื่อเทียบกับเนื้อหาเว็บไซต์ทั่วไป (รูปภาพ ข้อความ และ CSS หรือโค้ด JS)
เมื่อพยายามออกอากาศสตรีมวิดีโอแบบขนานกับไคลเอนต์จำนวนมากจากเซิร์ฟเวอร์เดียว ช่องทางอินเทอร์เน็ตของเซิร์ฟเวอร์มักจะกลายเป็นปัญหาคอขวด ตามกฎแล้ว ไม่กี่พันเธรดก็เพียงพอที่จะอุดตันช่องทางเซิร์ฟเวอร์ทั่วไปได้ แน่นอนว่าอาจมีข้อจำกัดด้านทรัพยากรอื่นๆ แต่ตอนนี้ไม่สำคัญ สิ่งสำคัญคือการขยายช่องทางเซิร์ฟเวอร์นั้นแพงเกินไป (และบางครั้งก็เป็นไปไม่ได้) และทำไม่ได้เช่นกัน โหลดในช่องระหว่างการออกอากาศจะเป็นวัฏจักร
ปัญหาการจำกัดช่องทางของแต่ละเซิร์ฟเวอร์ได้รับการแก้ไขอย่างสมบูรณ์โดย CDN ไคลเอนต์ไม่ได้เชื่อมต่อกับเซิร์ฟเวอร์โดยตรง แต่เชื่อมต่อกับโหนดในเครือข่าย CDN ในสถานการณ์ที่เหมาะสม เซิร์ฟเวอร์จะส่งสตรีมหนึ่งรายการไปยังโหนด CDN จากนั้นเครือข่ายจะใช้ทรัพยากรของตนเองเพื่อส่งสตรีมนี้ให้กับผู้ใช้จำนวนมาก จากมุมมองทางเศรษฐกิจ เราจ่ายเฉพาะทรัพยากรที่ใช้จริงเท่านั้น (ซึ่งอาจเป็นแบนด์วิธหรือการรับส่งข้อมูล) และได้รับความสามารถในการปรับขนาดที่ยอดเยี่ยมของบริการของเรา การใช้ CDN เพื่อส่งมอบเนื้อหาจำนวนมากนั้นสมเหตุสมผลและสมเหตุสมผล แม้ว่าจะเป็นที่น่าสังเกตว่าผู้เล่นรายใหญ่ที่สุดในพื้นที่นี้ (เช่น Netflix) กำลังสร้าง CDN ของตนเอง แทนที่จะใช้ CDN เชิงพาณิชย์ขนาดใหญ่ (Akamai, Cloudflare, Fastly เป็นต้น)
เมื่อเว็บพัฒนาขึ้น เว็บแอปพลิเคชันเองก็มีความซับซ้อนและซับซ้อนมากขึ้น ปัญหาความเร็วในการโหลดมาถึงเบื้องหน้า ผู้ที่ชื่นชอบความเร็วของเว็บไซต์ระบุปัญหาสำคัญหลายประการที่ทำให้เว็บไซต์โหลดช้าได้อย่างรวดเร็ว หนึ่งในนั้นคือความล่าช้าของเครือข่าย (RTT - เวลาไปกลับหรือเวลา ping) ความล่าช้าส่งผลต่อกระบวนการต่างๆ มากมายในการโหลดเว็บไซต์: การสร้างการเชื่อมต่อ TCP, การเริ่มเซสชัน TLS, การโหลดทรัพยากรแต่ละรายการ (รูปภาพ, ไฟล์ JS, เอกสาร HTML ฯลฯ)
ปัญหารุนแรงขึ้นจากข้อเท็จจริงที่ว่าเมื่อใช้โปรโตคอล HTTP/1.1 (ก่อนที่จะมี SPDY, QUIC และ HTTP/2 นี่เป็นตัวเลือกเดียว) เบราว์เซอร์จะเปิดการเชื่อมต่อ TCP ไม่เกิน 6 รายการในโฮสต์เดียว ทั้งหมดนี้นำไปสู่การหยุดทำงานของการเชื่อมต่อและการใช้แบนด์วิธของช่องสัญญาณอย่างไม่มีประสิทธิภาพ ปัญหาได้รับการแก้ไขบางส่วนด้วยการแบ่งส่วนโดเมน - การสร้างโฮสต์เพิ่มเติมเพื่อเอาชนะขีดจำกัดจำนวนการเชื่อมต่อ
นี่คือจุดที่ความสามารถที่สองของ CDN ปรากฏขึ้น - ลดเวลาแฝง (RTT) เนื่องจากมีจุดจำนวนมากและความใกล้ชิดของโหนดกับผู้ใช้ ระยะทางมีบทบาทสำคัญในเรื่องนี้: ความเร็วแสงมีจำกัด (ประมาณ 200 กม./วินาที ในใยแก้วนำแสง) ซึ่งหมายความว่าทุกๆ 000 กม. ของการเดินทางจะเพิ่มความล่าช้า 1000 มิลลิวินาทีหรือ 5 มิลลิวินาทีให้กับ RTT นี่เป็นเวลาขั้นต่ำที่จำเป็นสำหรับการส่งสัญญาณ เนื่องจากมีความล่าช้าในอุปกรณ์ระดับกลางด้วย เนื่องจากโดยปกติแล้ว CDN จะรู้วิธีแคชอ็อบเจ็กต์บนเซิร์ฟเวอร์ เราจึงได้ประโยชน์จากการโหลดอ็อบเจ็กต์ดังกล่าวผ่าน CDN เงื่อนไขที่จำเป็นสำหรับสิ่งนี้: การมีอยู่ของวัตถุในแคช ความใกล้เคียงของ CDN ชี้ไปที่ผู้ใช้เมื่อเปรียบเทียบกับเว็บแอปพลิเคชันเซิร์ฟเวอร์ (เซิร์ฟเวอร์ต้นทาง) สิ่งสำคัญคือต้องเข้าใจว่าความใกล้ชิดทางภูมิศาสตร์ของโหนด CDN ไม่ได้รับประกันเวลาแฝงที่ต่ำ การกำหนดเส้นทางระหว่างไคลเอนต์และ CDN สามารถสร้างในลักษณะที่ไคลเอนต์จะเชื่อมต่อกับโฮสต์ในประเทศอื่น และอาจอยู่ในทวีปอื่น นี่คือจุดที่ความสัมพันธ์ระหว่างผู้ให้บริการโทรคมนาคมและบริการ CDN (การเพียร์ การเชื่อมต่อ การเข้าร่วมใน IX ฯลฯ) และนโยบายการกำหนดเส้นทางการรับส่งข้อมูลของ CDN เองเข้ามามีบทบาท ตัวอย่างเช่น Cloudflare เมื่อใช้สองแผนเริ่มต้น (ฟรีและราคาถูก) ไม่รับประกันการจัดส่งเนื้อหาจากโฮสต์ที่ใกล้ที่สุด - โฮสต์จะถูกเลือกเพื่อให้ได้ต้นทุนขั้นต่ำ
บริษัทอินเทอร์เน็ตชั้นนำหลายแห่งดึงดูดความสนใจของสาธารณชน (นักพัฒนาเว็บและเจ้าของบริการ) มายังหัวข้อความเร็วในการโหลดและประสิทธิภาพของเว็บไซต์ ในบรรดาบริษัทเหล่านี้ ได้แก่ Yahoo (เครื่องมือ Yslow), AOL (WebPageTest) และ Google (บริการ Page Speed Insights) ซึ่งกำลังพัฒนาคำแนะนำของตนเองในการเร่งความเร็วไซต์ (โดยหลักแล้วเกี่ยวข้องกับการเพิ่มประสิทธิภาพไคลเอ็นต์) ต่อมา เครื่องมือทดสอบความเร็วเว็บไซต์ใหม่จะปรากฏขึ้น ซึ่งให้คำแนะนำในการเพิ่มความเร็วเว็บไซต์ด้วย บริการหรือปลั๊กอินแต่ละรายการมีคำแนะนำที่สอดคล้องกัน: “ใช้ CDN” การลดเวลาแฝงของเครือข่ายมักจะอ้างถึงเป็นคำอธิบายถึงผลกระทบของ CDN น่าเสียดายที่ไม่ใช่ทุกคนพร้อมที่จะเข้าใจอย่างแน่ชัดว่า CDN บรรลุผลการเร่งความเร็วได้อย่างไร และจะวัดได้อย่างไร ดังนั้นคำแนะนำจึงยึดถือตามความเชื่อและใช้เป็นสมมติฐาน ในความเป็นจริง CDN ไม่ได้ถูกสร้างขึ้นทั้งหมดเท่ากัน
ใช้ CDN วันนี้
เพื่อประเมินประโยชน์ของการใช้ CDN จำเป็นต้องจำแนกประเภทเหล่านั้น สิ่งที่สามารถพบได้ในทางปฏิบัติ (แน่นอนว่าตัวอย่างในวงเล็บยังไม่ครบถ้วนสมบูรณ์):
- CDN ฟรีสำหรับการเผยแพร่ไลบรารี JS (MaxCDN, Google. Yandex)
- CDN ของบริการสำหรับการเพิ่มประสิทธิภาพไคลเอ็นต์ (เช่น Google Fonts สำหรับแบบอักษร, Cloudinary, Cloudimage สำหรับรูปภาพ)
- CDN สำหรับการเพิ่มประสิทธิภาพแบบคงที่และทรัพยากรใน CMS (พร้อมใช้งานใน Bitrix, WordPress และอื่นๆ)
- CDN วัตถุประสงค์ทั่วไป (StackPath, CDNVideo, NGENIX, Megafon)
- CDN สำหรับการเร่งความเร็วเว็บไซต์ (Cloudflare, Imperva, Airi)
ข้อแตกต่างที่สำคัญระหว่างประเภทเหล่านี้คือปริมาณการรับส่งข้อมูลผ่าน CDN ประเภทที่ 1-3 เป็นการจัดส่งเนื้อหาเพียงบางส่วน: จากคำขอเดียวไปจนถึงหลายสิบ (โดยปกติจะเป็นรูปภาพ) ประเภทที่ 4 และ 5 เป็นการรับส่งข้อมูลผ่าน CDN เต็มรูปแบบ
ในทางปฏิบัติ นี่หมายถึงจำนวนการเชื่อมต่อที่ใช้ในการโหลดไซต์ ด้วย HTTP/2 เราใช้การเชื่อมต่อ TCP เดียวกับโฮสต์เพื่อประมวลผลคำขอจำนวนเท่าใดก็ได้ หากเราแบ่งทรัพยากรออกเป็นโฮสต์หลัก (ต้นทาง) และ CDN ก็จำเป็นต้องกระจายคำขอไปยังหลายโดเมนและสร้างการเชื่อมต่อ TCP หลายรายการ กรณีที่แย่ที่สุดคือ: DNS (1 RTT) + TCP (1 RTT) + TLS (2-3 RTT) = 6-7 RTT สูตรนี้ไม่คำนึงถึงความล่าช้าในเครือข่ายมือถือในการเปิดใช้งานช่องวิทยุของอุปกรณ์ (หากไม่ได้ใช้งาน) และความล่าช้าบนหอเซลล์
ต่อไปนี้คือลักษณะที่ปรากฏในลำดับการโหลดของไซต์ (เวลาแฝงสำหรับการเชื่อมต่อกับ CDN จะถูกเน้นที่ RTT 150 ms):
หาก CDN ครอบคลุมการรับส่งข้อมูลไซต์ทั้งหมด (ยกเว้นบริการของบุคคลที่สาม) เราก็สามารถใช้การเชื่อมต่อ TCP เดียว ซึ่งช่วยลดความล่าช้าในการเชื่อมต่อกับโฮสต์เพิ่มเติม แน่นอนว่าสิ่งนี้ใช้ได้กับการเชื่อมต่อ HTTP/2
ความแตกต่างเพิ่มเติมถูกกำหนดโดยฟังก์ชันการทำงานของ CDN เฉพาะ - สำหรับประเภทแรกเป็นเพียงการโฮสต์ไฟล์คงที่สำหรับประเภทที่ห้าจะเปลี่ยนแปลงเนื้อหาไซต์หลายประเภทเพื่อวัตถุประสงค์ในการเพิ่มประสิทธิภาพ
ความสามารถ CDN สำหรับการเร่งความเร็วเว็บไซต์
เรามาอธิบายความสามารถทั้งหมดของ CDN สำหรับการเร่งความเร็วไซต์ โดยไม่คำนึงถึงฟังก์ชันการทำงานของ CDN แต่ละประเภท แล้วดูว่ามีการใช้งานอะไรบ้างในแต่ละประเภท
1. การบีบอัดทรัพยากรข้อความ
คุณลักษณะพื้นฐานและเข้าใจง่ายที่สุด แต่มักมีการใช้งานไม่ดี CDN ทั้งหมดประกาศว่ามีการบีบอัดเป็นคุณลักษณะการเร่งความเร็ว แต่ถ้าคุณดูรายละเอียดเพิ่มเติม ข้อบกพร่องจะชัดเจน:
- องศาต่ำสำหรับการบีบอัดแบบไดนามิกสามารถใช้ได้ - 5-6 (ตัวอย่างเช่นสำหรับ gzip ค่าสูงสุดคือ 9)
- การบีบอัดแบบคงที่ (ไฟล์ในแคช) ไม่ได้ใช้คุณสมบัติเพิ่มเติม (เช่น zopfi หรือ brotli ที่มีระดับ 11)
- ไม่มีการรองรับการบีบอัด brotli ที่มีประสิทธิภาพ (ประหยัดประมาณ 20% เมื่อเทียบกับ gzip)
หากคุณใช้ CDN ควรตรวจสอบจุดเหล่านี้: นำไฟล์ที่มาจาก CDN บันทึกขนาดที่บีบอัดแล้วบีบอัดด้วยตนเองเพื่อเปรียบเทียบ (คุณสามารถใช้บริการออนไลน์บางอย่างที่รองรับ brotli ได้ เป็นต้น
2. การตั้งค่าส่วนหัวแคชไคลเอ็นต์
นอกจากนี้ยังมีคุณลักษณะการเร่งความเร็วแบบง่ายๆ: เพิ่มส่วนหัวสำหรับการแคชเนื้อหาโดยไคลเอ็นต์ (เบราว์เซอร์) ส่วนหัวปัจจุบันที่สุดคือการควบคุมแคช ส่วนส่วนหัวที่ล้าสมัยจะหมดอายุ นอกจากนี้ยังสามารถใช้ Etag ได้ สิ่งสำคัญคืออายุสูงสุดของการควบคุมแคชนั้นใหญ่เพียงพอ (ตั้งแต่หนึ่งเดือนขึ้นไป) หากคุณพร้อมที่จะแคชทรัพยากรให้หนักที่สุดคุณสามารถเพิ่มตัวเลือกที่ไม่เปลี่ยนรูปได้
CDN สามารถลดค่าอายุสูงสุดได้ ทำให้ผู้ใช้ต้องโหลดเนื้อหาคงที่ซ้ำบ่อยขึ้น ไม่ชัดเจนว่าสิ่งนี้เชื่อมโยงกับอะไร: ความปรารถนาที่จะเพิ่มการรับส่งข้อมูลบนเครือข่ายหรือเพิ่มความเข้ากันได้กับไซต์ที่ไม่รู้วิธีรีเซ็ตแคช ตัวอย่างเช่น เวลาแคชส่วนหัวของ Cloudflare เริ่มต้นคือ 1 ชั่วโมง ซึ่งต่ำมากสำหรับข้อมูลคงที่ที่ไม่เปลี่ยนรูป
3. การเพิ่มประสิทธิภาพภาพ
เนื่องจาก CDN ทำหน้าที่แคชและให้บริการรูปภาพ จึงสมเหตุสมผลที่จะปรับให้เหมาะสมทางฝั่ง CDN และให้บริการแก่ผู้ใช้ในรูปแบบนี้ รีบจองด่วนว่าฟีเจอร์นี้ใช้ได้เฉพาะ CDN ประเภท 2, 3 และ 5 เท่านั้น
คุณสามารถปรับภาพให้เหมาะสมได้หลายวิธี: การใช้รูปแบบการบีบอัดขั้นสูง (เช่น WebP) ตัวเข้ารหัสที่มีประสิทธิภาพมากขึ้น (MozJPEG) หรือเพียงแค่ล้างข้อมูลเมตาที่ไม่จำเป็น
โดยทั่วไป การเพิ่มประสิทธิภาพดังกล่าวมีสองประเภท: มีการสูญเสียคุณภาพและไม่มีการสูญเสียคุณภาพ โดยปกติแล้ว CDN จะพยายามใช้การเพิ่มประสิทธิภาพแบบไม่สูญเสียข้อมูลเพื่อหลีกเลี่ยงข้อร้องเรียนของลูกค้าเกี่ยวกับการเปลี่ยนแปลงคุณภาพของภาพ ในสภาวะเช่นนี้ กำไรที่ได้จะน้อยที่สุด ในความเป็นจริง ระดับคุณภาพ JPEG มักจะสูงกว่าที่จำเป็นมากและคุณสามารถบีบอัดใหม่ด้วยระดับคุณภาพที่ต่ำกว่าได้อย่างปลอดภัย โดยไม่กระทบต่อประสบการณ์ของผู้ใช้ ในทางกลับกัน เป็นการยากที่จะกำหนดระดับคุณภาพและการตั้งค่าในระดับสากลสำหรับเว็บแอปพลิเคชันที่เป็นไปได้ทั้งหมด ดังนั้น CDN จึงใช้การตั้งค่าแบบอนุรักษ์นิยมมากกว่าเมื่อเปรียบเทียบกับการตั้งค่าที่สามารถนำมาใช้โดยคำนึงถึงบริบท (วัตถุประสงค์ของรูปภาพ ประเภทของแอปพลิเคชันเว็บ ฯลฯ)
4. การเพิ่มประสิทธิภาพการเชื่อมต่อ TLS
การรับส่งข้อมูลส่วนใหญ่ในปัจจุบันเดินทางผ่านการเชื่อมต่อ TLS ซึ่งหมายความว่าเราใช้เวลาเพิ่มเติมในการเจรจา TLS ล่าสุดมีการพัฒนาเทคโนโลยีใหม่เพื่อเร่งกระบวนการนี้ ตัวอย่างเช่น นี่คือการเข้ารหัส EC, TLS 1.3, แคชเซสชันและตั๋ว, การเร่งความเร็วการเข้ารหัสฮาร์ดแวร์ (AES-NI) ฯลฯ การตั้งค่า TLS อย่างถูกต้องสามารถลดเวลาการเชื่อมต่อเป็น 0-1 RTT (ไม่นับ DNS และ TCP)
ด้วยซอฟต์แวร์ที่ทันสมัย การนำแนวปฏิบัติดังกล่าวไปใช้ด้วยตนเองไม่ใช่เรื่องยาก
CDN บางแห่งไม่ได้ใช้แนวทางปฏิบัติที่ดีที่สุดของ TLS คุณสามารถตรวจสอบได้โดยการวัดเวลาการเชื่อมต่อ TLS (เช่น ใน Webpagetest) เหมาะสำหรับการเชื่อมต่อใหม่ - 1RTT, 2RTT - ระดับเฉลี่ย, 3RTT และอื่นๆ - แย่
ควรสังเกตด้วยว่าแม้เมื่อใช้ TLS ในระดับ CDN เซิร์ฟเวอร์ที่มีเว็บแอปพลิเคชันของเราต้องประมวลผล TLS ด้วย แต่จากฝั่ง CDN เนื่องจากการรับส่งข้อมูลระหว่างเซิร์ฟเวอร์และ CDN ผ่านเครือข่ายสาธารณะ ในกรณีที่เลวร้ายที่สุด เราจะได้รับความล่าช้าในการเชื่อมต่อ TLS สองเท่า (ครั้งแรกไปยังโฮสต์ CDN และครั้งที่สองระหว่างโฮสต์กับเซิร์ฟเวอร์ของเรา)
สำหรับบางแอปพลิเคชัน ควรให้ความสนใจกับปัญหาด้านความปลอดภัย: โดยทั่วไปการรับส่งข้อมูลจะถูกถอดรหัสบนโหนด CDN และนี่เป็นโอกาสที่เป็นไปได้สำหรับการสกัดกั้นการรับส่งข้อมูล ตัวเลือกในการทำงานโดยไม่มีการเปิดเผยข้อมูลจราจรมักเสนอให้ในแผนภาษีชั้นนำโดยมีค่าธรรมเนียมเพิ่มเติม
5. ลดความล่าช้าในการเชื่อมต่อ
ประโยชน์หลักของ CDN ที่ทุกคนพูดถึง: เวลาแฝงต่ำ (ระยะทางน้อยกว่า) ระหว่างโฮสต์ CDN และผู้ใช้ ทำได้โดยการสร้างสถาปัตยกรรมเครือข่ายแบบกระจายทางภูมิศาสตร์ ซึ่งโฮสต์จะอยู่ในจุดที่ผู้ใช้หนาแน่น (เมือง จุดแลกเปลี่ยนการรับส่งข้อมูล ฯลฯ)
ในทางปฏิบัติ ลำดับความสำคัญสำหรับเครือข่ายที่แตกต่างกันอาจอยู่ในภูมิภาคเฉพาะ ตัวอย่างเช่น CDN ของรัสเซียจะมีจุดให้บริการในรัสเซียมากกว่า คนอเมริกันจะพัฒนาเครือข่ายในสหรัฐอเมริกาเป็นอันดับแรก ตัวอย่างเช่น หนึ่งใน CDN Cloudflare ที่ใหญ่ที่สุดมีเพียง 2 คะแนนในรัสเซีย - มอสโกและเซนต์ปีเตอร์สเบิร์ก นั่นคือเราสามารถประหยัดเวลาแฝงได้สูงสุดประมาณ 10 มิลลิวินาที เมื่อเทียบกับตำแหน่งโดยตรงในมอสโก
CDN ตะวันตกส่วนใหญ่ไม่มีคะแนนในรัสเซียเลย เมื่อเชื่อมต่อกับพวกเขา คุณจะยิ่งเพิ่มความล่าช้าให้กับผู้ชมชาวรัสเซียเท่านั้น
6. การเพิ่มประสิทธิภาพเนื้อหา (การลดขนาด การเปลี่ยนแปลงโครงสร้าง)
จุดที่ซับซ้อนและล้ำหน้าทางเทคโนโลยีที่สุด การเปลี่ยนแปลงเนื้อหาระหว่างการจัดส่งอาจมีความเสี่ยงมาก แม้ว่าเราจะลดขนาดลงก็ตาม การลดซอร์สโค้ด (เนื่องจากช่องว่างเพิ่มเติม โครงสร้างที่ไม่สำคัญ ฯลฯ) อาจส่งผลต่อประสิทธิภาพของโค้ดได้ หากเราพูดถึงการเปลี่ยนแปลงที่ร้ายแรงกว่านี้ - การย้ายโค้ด JS ไปที่ส่วนท้ายของ HTML, การรวมไฟล์ ฯลฯ - ความเสี่ยงในการรบกวนการทำงานของไซต์จะยิ่งสูงขึ้น
ดังนั้น CDN ประเภท 5 บางประเภทเท่านั้นที่ทำเช่นนี้ แน่นอนว่าเป็นไปไม่ได้ที่จะทำการเปลี่ยนแปลงทั้งหมดที่จำเป็นเพื่อเพิ่มความเร็วโดยอัตโนมัติ เนื่องจากจำเป็นต้องมีการวิเคราะห์และการเพิ่มประสิทธิภาพด้วยตนเอง ตัวอย่างเช่น การลบรหัสที่ไม่ได้ใช้หรือซ้ำกันถือเป็นงานที่ต้องทำด้วยตนเอง
ตามกฎแล้ว การเพิ่มประสิทธิภาพดังกล่าวทั้งหมดจะถูกควบคุมโดยการตั้งค่า และรายการที่อันตรายที่สุดจะถูกปิดใช้งานตามค่าเริ่มต้น
รองรับความสามารถในการเร่งความเร็วตามประเภท CDN
ดังนั้น เรามาดูกันว่า CDN ประเภทต่างๆ มีโอกาสในการเร่งความเร็วที่เป็นไปได้อย่างไร
เพื่อความสะดวก เราจะทำการจำแนกประเภทซ้ำ
- CDN ฟรีสำหรับการเผยแพร่ไลบรารี JS (MaxCDN, Google. Yandex)
- CDN ของบริการสำหรับการเพิ่มประสิทธิภาพไคลเอ็นต์ (เช่น Google Fonts สำหรับแบบอักษร, Cloudinary, Cloudimage สำหรับรูปภาพ)
- CDN สำหรับการเพิ่มประสิทธิภาพแบบคงที่และทรัพยากรใน CMS (พร้อมใช้งานใน Bitrix, WordPress และอื่นๆ)
- CDN วัตถุประสงค์ทั่วไป (StackPath, CDNVideo, NGENIX, Megafon)
- CDN สำหรับการเร่งความเร็วเว็บไซต์ (Cloudflare, Imperva, Airi)
ตอนนี้เรามาเปรียบเทียบคุณสมบัติและประเภทของ CDN กัน
โอกาส
พิมพ์ครั้งที่ 1
พิมพ์ครั้งที่ 2
พิมพ์ครั้งที่ 3
พิมพ์ครั้งที่ 4
พิมพ์ครั้งที่ 5
การบีบอัดข้อความ
+–
-
+–
+–
+
ส่วนหัวของแคช
+
+
+
+
+
ภาพ
-
+–
+–
-
+
TLS
-
-
-
+–
+
ความล่าช้า
-
-
-
+
+
เนื้อหา
-
-
-
-
+
ในตารางนี้ "+" ใช้เพื่อระบุการสนับสนุนเต็มรูปแบบ "–" คือการสนับสนุนบางส่วน และ "+–" เป็นการรองรับบางส่วน แน่นอนว่าในความเป็นจริงอาจมีความเบี่ยงเบนไปจากตารางนี้ (เช่น CDN สำหรับวัตถุประสงค์ทั่วไปบางตัวจะใช้คุณสมบัติในการปรับรูปภาพให้เหมาะสม) แต่สำหรับแนวคิดทั่วไปแล้ว สิ่งนี้จะมีประโยชน์
ผลของการ
หวังว่าหลังจากอ่านบทความนี้แล้ว คุณจะมีภาพที่ชัดเจนยิ่งขึ้นเกี่ยวกับคำแนะนำ “ใช้ CDN” เพื่อเพิ่มความเร็วให้กับเว็บไซต์ของคุณ
เช่นเดียวกับในธุรกิจอื่นๆ คุณไม่สามารถเชื่อคำสัญญาทางการตลาดของบริการใดๆ ได้ จำเป็นต้องวัดและทดสอบผลกระทบภายใต้สภาวะจริง หากคุณใช้ CDN อยู่แล้ว ให้ตรวจสอบประสิทธิภาพโดยใช้เกณฑ์ที่อธิบายไว้ในบทความ
อาจเป็นไปได้ว่าการใช้ CDN ในขณะนี้จะทำให้เวลาในการโหลดไซต์ของคุณช้าลง
ตามคำแนะนำทั่วไป เราสามารถมุ่งเน้นไปที่สิ่งต่อไปนี้: ศึกษาผู้ชมของคุณ กำหนดขอบเขตทางภูมิศาสตร์ หากกลุ่มเป้าหมายหลักของคุณกระจุกตัวอยู่ในรัศมี 1-2 กิโลเมตร คุณไม่จำเป็นต้องมี CDN เพื่อจุดประสงค์หลัก นั่นก็คือการลดเวลาแฝง แต่คุณสามารถวางเซิร์ฟเวอร์ของคุณไว้ใกล้กับผู้ใช้ของคุณและกำหนดค่าอย่างเหมาะสม เพื่อรับการปรับปรุงประสิทธิภาพส่วนใหญ่ที่อธิบายไว้ในบทความ (ฟรีและถาวร)
ในกรณีที่ผู้ชมของคุณมีการกระจายทางภูมิศาสตร์อย่างแท้จริง (รัศมีมากกว่า 3000 กิโลเมตร) การใช้ CDN ที่มีคุณภาพจะมีประโยชน์มาก อย่างไรก็ตาม คุณต้องเข้าใจล่วงหน้าว่า CDN ของคุณสามารถเร่งความเร็วอะไรได้บ้าง (ดูตารางความสามารถและคำอธิบาย) อย่างไรก็ตาม การเร่งความเร็วเว็บไซต์ยังคงเป็นงานที่ซับซ้อนซึ่งไม่สามารถแก้ไขได้ด้วยการเชื่อมต่อ CDN นอกเหนือจากการปรับให้เหมาะสมข้างต้นแล้ว วิธีการเร่งความเร็วที่มีประสิทธิภาพสูงสุดยังคงอยู่หลัง CDN: การเพิ่มประสิทธิภาพของส่วนของเซิร์ฟเวอร์ การเปลี่ยนแปลงขั้นสูงในส่วนของไคลเอนต์ (การลบโค้ดที่ไม่ได้ใช้ การเพิ่มประสิทธิภาพกระบวนการเรนเดอร์ การทำงานกับเนื้อหา แบบอักษร ความสามารถในการปรับตัว ฯลฯ )
ที่มา: will.com