[อย่า] ใช้ CDN

เกือบทุกบทความหรือเครื่องมือในการเพิ่มประสิทธิภาพความเร็วไซต์จะมีประโยคที่เรียบง่ายว่า “ใช้ CDN” โดยทั่วไป CDN คือเครือข่ายการจัดส่งเนื้อหาหรือเครือข่ายการจัดส่งเนื้อหา พวกเราที่ Method Lab มักพบคำถามจากลูกค้าในหัวข้อนี้ ซึ่งบางคำถามก็เปิดใช้งาน CDN ของตัวเอง วัตถุประสงค์ของบทความนี้คือเพื่อทำความเข้าใจว่า 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 จำเป็นต้องจำแนกประเภทเหล่านั้น สิ่งที่สามารถพบได้ในทางปฏิบัติ (แน่นอนว่าตัวอย่างในวงเล็บยังไม่ครบถ้วนสมบูรณ์):

  1. CDN ฟรีสำหรับการเผยแพร่ไลบรารี JS (MaxCDN, Google. Yandex)
  2. CDN ของบริการสำหรับการเพิ่มประสิทธิภาพไคลเอ็นต์ (เช่น Google Fonts สำหรับแบบอักษร, Cloudinary, Cloudimage สำหรับรูปภาพ)
  3. CDN สำหรับการเพิ่มประสิทธิภาพแบบคงที่และทรัพยากรใน CMS (พร้อมใช้งานใน Bitrix, WordPress และอื่นๆ)
  4. CDN วัตถุประสงค์ทั่วไป (StackPath, CDNVideo, NGENIX, Megafon)
  5. 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

หาก CDN ครอบคลุมการรับส่งข้อมูลไซต์ทั้งหมด (ยกเว้นบริการของบุคคลที่สาม) เราก็สามารถใช้การเชื่อมต่อ TCP เดียว ซึ่งช่วยลดความล่าช้าในการเชื่อมต่อกับโฮสต์เพิ่มเติม แน่นอนว่าสิ่งนี้ใช้ได้กับการเชื่อมต่อ HTTP/2

ความแตกต่างเพิ่มเติมถูกกำหนดโดยฟังก์ชันการทำงานของ CDN เฉพาะ - สำหรับประเภทแรกเป็นเพียงการโฮสต์ไฟล์คงที่สำหรับประเภทที่ห้าจะเปลี่ยนแปลงเนื้อหาไซต์หลายประเภทเพื่อวัตถุประสงค์ในการเพิ่มประสิทธิภาพ

ความสามารถ CDN สำหรับการเร่งความเร็วเว็บไซต์

เรามาอธิบายความสามารถทั้งหมดของ CDN สำหรับการเร่งความเร็วไซต์ โดยไม่คำนึงถึงฟังก์ชันการทำงานของ CDN แต่ละประเภท แล้วดูว่ามีการใช้งานอะไรบ้างในแต่ละประเภท

1. การบีบอัดทรัพยากรข้อความ

คุณลักษณะพื้นฐานและเข้าใจง่ายที่สุด แต่มักมีการใช้งานไม่ดี CDN ทั้งหมดประกาศว่ามีการบีบอัดเป็นคุณลักษณะการเร่งความเร็ว แต่ถ้าคุณดูรายละเอียดเพิ่มเติม ข้อบกพร่องจะชัดเจน:

  • องศาต่ำสำหรับการบีบอัดแบบไดนามิกสามารถใช้ได้ - 5-6 (ตัวอย่างเช่นสำหรับ gzip ค่าสูงสุดคือ 9)
  • การบีบอัดแบบคงที่ (ไฟล์ในแคช) ไม่ได้ใช้คุณสมบัติเพิ่มเติม (เช่น zopfi หรือ brotli ที่มีระดับ 11)
  • ไม่มีการรองรับการบีบอัด brotli ที่มีประสิทธิภาพ (ประหยัดประมาณ 20% เมื่อเทียบกับ gzip)

หากคุณใช้ CDN ควรตรวจสอบจุดเหล่านี้: นำไฟล์ที่มาจาก CDN บันทึกขนาดที่บีบอัดแล้วบีบอัดด้วยตนเองเพื่อเปรียบเทียบ (คุณสามารถใช้บริการออนไลน์บางอย่างที่รองรับ brotli ได้ เป็นต้น vsszhat.rf).

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 ประเภทต่างๆ มีโอกาสในการเร่งความเร็วที่เป็นไปได้อย่างไร

เพื่อความสะดวก เราจะทำการจำแนกประเภทซ้ำ

  1. CDN ฟรีสำหรับการเผยแพร่ไลบรารี JS (MaxCDN, Google. Yandex)
  2. CDN ของบริการสำหรับการเพิ่มประสิทธิภาพไคลเอ็นต์ (เช่น Google Fonts สำหรับแบบอักษร, Cloudinary, Cloudimage สำหรับรูปภาพ)
  3. CDN สำหรับการเพิ่มประสิทธิภาพแบบคงที่และทรัพยากรใน CMS (พร้อมใช้งานใน Bitrix, WordPress และอื่นๆ)
  4. CDN วัตถุประสงค์ทั่วไป (StackPath, CDNVideo, NGENIX, Megafon)
  5. 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

เพิ่มความคิดเห็น