Mandiri hosting sumberdaya pihak katilu: nu alus, nu goréng, nu awon

Dina taun-taun ayeuna, beuki loba platform pikeun ngaoptimalkeun proyék hareup-tungtung nawarkeun kasempetan pikeun timer hosting atawa proxying sumberdaya pihak katilu. Akamai ngidinan Anjeun pikeun nyetél parameter husus pikeun URL-dihasilkeun sorangan. Cloudflare gaduh téknologi Edge Workers. Fasterzine tiasa nulis deui URL dina kaca ambéh maranéhanana nunjuk ka sumber pihak katilu ayana dina domain utama loka.

Mandiri hosting sumberdaya pihak katilu: nu alus, nu goréng, nu awon

Upami anjeun terang yén ladenan pihak katilu anu dianggo dina proyék anjeun henteu sering robih, sareng yén prosés ngirimkeunana ka klien tiasa ningkat, maka anjeun panginten mikirkeun proxying jasa sapertos kitu. Kalayan pendekatan ieu, anjeun tiasa ngadeukeutkeun sumber daya ieu ka pangguna anjeun sareng kéngingkeun kontrol anu langkung lengkep dina cache di sisi klien. Salaku tambahan, ieu ngamungkinkeun anjeun ngajagi pangguna tina masalah anu disababkeun ku "kacilakaan" jasa pihak katilu atanapi degradasi kinerjana.

Alus: Ningkatkeun kinerja

Mandiri hosting sumberdaya batur ngaronjatkeun kinerja dina cara pisan atra. Browser henteu kedah ngaksés deui DNS, henteu kedah ngadamel sambungan TCP sareng ngalakukeun sasalaman TLS dina domain pihak katilu. Anjeun tiasa ningali kumaha hosting sorangan sumber daya batur mangaruhan kinerja ku ngabandingkeun dua inohong di handap ieu.

Mandiri hosting sumberdaya pihak katilu: nu alus, nu goréng, nu awon
Sumber daya pihak katilu diunduh tina sumber éksternal (dicokot tina di dieu)

Mandiri hosting sumberdaya pihak katilu: nu alus, nu goréng, nu awon
Sumber daya pihak katilu disimpen di tempat anu sami sareng sesa bahan situs (dicokot tina di dieu)

Kaayaan ieu ogé ningkat ku kanyataan yén browser bakal ngagunakeun kamampuhan pikeun multiplex jeung prioritas data tina sambungan HTTP / 2 nu geus ngadegkeun kalawan domain utama.

Upami anjeun henteu nyayogikeun sumber daya pihak katilu, maka kumargi aranjeunna bakal dimuat tina domain anu béda ti anu utama, aranjeunna henteu tiasa diprioritaskeun. Ieu bakal ngakibatkeun aranjeunna bersaing saling pikeun rubakpita klien. Ieu tiasa nyababkeun waktos ngamuat pikeun eusi anu penting pikeun ngawangun halaman anu langkung panjang tibatan anu tiasa dicapai dina kaayaan anu idéal. di dieu ngobrol on HTTP / 2 prioritization nu ngécéskeun sakabéh ieu kacida alusna.

Ieu bisa dianggap yén pamakéan atribut dina Tumbu ka sumberdaya éksternal preconnect bakal mantuan dina ngarengsekeun masalah. Sanajan kitu, lamun aya loba teuing Tumbu ieu ka domain béda, éta sabenerna bisa overload jalur komunikasi dina momen paling krusial.

Upami anjeun gaduh sumber daya pihak katilu sorangan, anjeun tiasa ngontrol kumaha persisna sumber daya ieu dipasihkeun ka klien. Nyaéta, urang ngobrol ngeunaan di handap ieu:

  • Anjeun tiasa mastikeun yén algoritma komprési data anu paling cocog sareng unggal browser dianggo (Brotli / gzip).
  • Anjeun tiasa ningkatkeun waktos caching pikeun sumber anu biasana henteu panjang, bahkan ku panyadia anu paling terkenal (contona, nilai anu cocog pikeun tag ga disetel ka 30 menit).

Anjeun malah bisa manjangkeun TTL pikeun sumberdaya pikeun, sebutkeun, sataun ku incorporating eusi relevan kana strategi manajemén cache anjeun (URL hashes, versioning, jsb). Urang bakal ngobrol ngeunaan ieu di handap.

▍Panyalindungan tina gangguan dina operasi jasa pihak katilu atanapi pareumna

Aspék anu pikaresepeun pikeun sumber-sumber pihak katilu anu nyayogikeun diri nyaéta ngamungkinkeun anjeun ngirangan résiko anu aya hubunganana sareng pareum jasa pihak katilu. Hayu urang nganggap yén solusi tés A/B pihak katilu anu anjeun anggo dilaksanakeun salaku skrip blocking anu dimuat dina bagian sirah halaman. Aksara ieu dimuat lalaunan. Upami naskah anu saluyu gagal dimuat, halamanna bakal kosong. Upami peryogi waktos anu lami pisan pikeun dimuat, halamanna bakal muncul kalayan reureuh anu panjang. Atawa, anggap proyék ngagunakeun perpustakaan diundeur ti sumberdaya CDN pihak katilu. Hayu urang ngabayangkeun yén sumberdaya ieu ngalaman kagagalan atawa diblokir di nagara tangtu. Kaayaan sapertos kitu bakal ngakibatkeun palanggaran logika situs.

Pikeun manggihan kumaha situs anjeun jalan nalika sababaraha layanan éksternal teu sadia, anjeun tiasa nganggo bagian SPOF on webpagetest.org.

Mandiri hosting sumberdaya pihak katilu: nu alus, nu goréng, nu awon
bagian SPOF on webpagetest.org

▍ Kumaha upami masalah sareng cache bahan dina browser? (pitunjuk: éta mitos)

Anjeun panginten tiasa nganggap yén ngagunakeun CDN umum sacara otomatis bakal ngakibatkeun kinerja sumber daya anu langkung saé, sabab jasa ieu ngagaduhan jaringan anu kualitasna cukup luhur sareng disebarkeun ka sakumna dunya. Tapi sagalana sabenerna saeutik leuwih pajeulit.

Anggap urang gaduh sababaraha situs anu béda: website1.com, website2.com, website3.com. Sadaya situs ieu nganggo perpustakaan jQuery. Urang sambungkeun ka aranjeunna nganggo CDN, contona - googleapis.com. Anjeun tiasa ngarepkeun browser pikeun ngaunduh sareng cache perpustakaan sakali, teras dianggo dina sadaya tilu situs. Ieu tiasa ngirangan beban dina jaringan. Sugan ieu bakal ngidinan Anjeun pikeun nyimpen duit wae tur mantuan ngaronjatkeun kinerja sumberdaya. Ti sudut pandang praktis, sagalana kasampak béda. Salaku conto, Safari gaduh fitur anu disebut Pencegahan Nyukcruk calakan: Cache ngagunakeun konci ganda dumasar kana sumber dokumén jeung sumber sumberdaya pihak katilu. di dieu artikel alus dina topik ieu.

pangajaran heubeul Yahoo и Facebook, kitu ogé nu leuwih anyar diajar Paul Calvano, nunjukkeun yén sumber daya henteu disimpen dina cache browser salami urang ngarepkeun: "Aya gap anu serius antara waktos caching sumber daya proyek sareng pihak katilu. Urang ngobrol ngeunaan CSS jeung fon web. Nyaéta, 95% fon asli gaduh umur cache langkung ti saminggu, sedengkeun 50% fon pihak katilu gaduh umur cache kirang ti saminggu! Ieu masihan pamekar wéb alesan anu kuat pikeun nga-host file font sorangan!

Hasilna, upami anjeun nga-host kontén jalma sanés, anjeun moal aya bewara masalah kinerja anu disababkeun ku cache browser.

Ayeuna urang parantos nutupan kaunggulan hosting diri pihak katilu, hayu urang ngobrolkeun kumaha cara nyarioskeun palaksanaan anu hadé tina pendekatan ieu tina anu goréng.

The Bad: Iblis aya dina detil

Mindahkeun sumber daya pihak katilu ka domain anjeun sorangan teu tiasa dilakukeun sacara otomatis tanpa mastikeun yén sumber daya sapertos kitu disimpen leres.

Salah sahiji masalah utama di dieu nyaéta waktos cache. Salaku conto, inpormasi versi kalebet dina nami skrip pihak katilu sapertos kieu: jquery-3.4.1.js. Berkas sapertos kitu moal robih ka hareup, sareng akibatna ieu moal nyababkeun masalah sareng cache na.

Tapi upami sababaraha skéma vérsi henteu dianggo nalika damel sareng file, skrip sindangan, anu eusina robih bari nami file tetep teu robih, tiasa janten tinggaleun jaman. Ieu tiasa janten masalah anu serius, sabab éta, contona, henteu ngijinkeun patch kaamanan otomatis pikeun nambihan kana naskah anu kedah ditampi ku klien gancang-gancang. Pamekar kedah nyobian ngapdet skrip sapertos kitu dina cache. Salaku tambahan, ieu tiasa nyababkeun kagagalan aplikasi kusabab kanyataan yén kode anu dianggo dina klien tina cache bénten sareng versi kode anu pangénggalna dimana bagian server proyék dirancang.

Leres, upami urang nyarioskeun bahan anu sering diropéa (manajer tag, solusi pikeun uji A / B), teras cache aranjeunna nganggo alat CDN mangrupikeun tugas anu tiasa direngsekeun, tapi langkung rumit. Jasa sapertos Commanders Act, solusi manajemén tag, nganggo webhooks nalika nyebarkeun vérsi énggal. Ieu masihan anjeun kamampuan pikeun maksa siram cache dina CDN, atanapi, langkung saé, kamampuan pikeun maksakeun update hash atanapi URL.

▍ Pangiriman adaptif bahan pikeun klien

Salaku tambahan, nalika urang ngobrol ngeunaan cache, urang kedah tumut kana kanyataan yén setélan cache anu dianggo dina CDN tiasa waé henteu cocog pikeun sababaraha sumber pihak katilu. Contona, sumberdaya misalna bisa ngagunakeun agén pamaké sniffing (layanan adaptif) téhnologi pikeun ngalayanan panyungsi husus kalawan versi eusi dioptimalkeun husus pikeun browser maranéhanana. Téknologi ieu ngandelkeun ekspresi biasa, atanapi pangkalan data inpormasi header HTTP, pikeun terang kamampuan browser. User-Agent. Sakali aranjeunna terang browser anu aranjeunna urus, aranjeunna masihan bahan anu dirancang pikeun éta.

Di dieu anjeun tiasa nginget dua jasa. Anu kahiji nyaéta googlefonts.com. Anu kadua nyaéta polyfill.io. Ladenan Google Fonts nyayogikeun, pikeun sumber anu tangtu, sababaraha kode CSS, gumantung kana kamampuan browser (masihan tautan ka sumber woff2 nganggo unicode-range).

Ieu mangrupikeun hasil tina sababaraha patarosan Google Fonts anu dilakukeun tina panyungsi anu béda.

Mandiri hosting sumberdaya pihak katilu: nu alus, nu goréng, nu awon
Hasil pamundut Google Fonts tina Chrome

Mandiri hosting sumberdaya pihak katilu: nu alus, nu goréng, nu awon
Hasil query Google Fonts dieksekusi ti IE10

Polyfill.io masihan browser ngan ukur polyfills anu diperyogikeun. Hal ieu dilakukeun pikeun alesan kinerja.

Contona, hayu urang tingali naon anu lumangsung lamun anjeun ngajalankeun pamundut handap ti browser béda: https://polyfill.io/v3/polyfill.js?features=default

Dina respon kana pamundut sapertos dieksekusi ti IE10, 34 KB data bakal narima. Sareng jawabanana, dieksekusi tina Chrome, bakal kosong.

Ambek: Sababaraha Pertimbangan Privasi

titik ieu panungtungan dina urutan, tapi teu saeutik penting. Intina nyaéta yén host sorangan sumber daya pihak katilu dina domain utama proyék atanapi dina subdomain na tiasa ngabahayakeun privasi pangguna sareng mangaruhan négatip kana proyék wéb utama.

Upami sistem CDN anjeun henteu dikonpigurasi leres, anjeun tiasa ngintunkeun cookies domain anjeun ka layanan pihak katilu. Upami panyaring anu leres henteu diatur dina tingkat CDN, maka cookies sési anjeun, anu biasana henteu tiasa dianggo dina JavaScript (kalayan httponly), bisa dikirim ka host asing.

Ieu persis anu tiasa kajantenan sareng pelacak sapertos Eulerian atanapi Criteo. Pelacak pihak katilu tiasa nyetél identifier unik dina cookie. Lamun éta bagian tina bahan loka, maranéhna bisa maca identifier dina kawijaksanaan maranéhna bari pamaké ieu gawé bareng sumberdaya web béda.

Kiwari, kalolobaan panyungsi kalebet panyalindungan ngalawan jinis paripolah tracker ieu. Hasilna, trackers ayeuna ngagunakeun téhnologi CNAME Cloaking, masquerading salaku naskah sorangan pikeun sagala rupa proyék. Nyaéta, pelacak nawiskeun pamilik situs pikeun nambihan CNAME kana setélanna pikeun domain anu tangtu, alamatna biasana siga sakumpulan karakter acak.

Sanajan henteu dianjurkeun sangkan cookies ramatloka sadia pikeun sakabéh subdomains (contona - *.website.com), loba situs ngalakukeun ieu. Dina hal ieu, cookies sapertos otomatis dikirim ka tracker pihak katilu nyamar. Hasilna, urang teu tiasa deui ngobrol ngeunaan privasi nanaon.

Ogé, hal anu sarua kajadian kalawan headers HTTP Klién-pitunjuk, nu dikirim ngan ka domain utama, sabab bisa dipaké pikeun nyieun sidik digital pamaké. Pastikeun yén layanan CDN anu anjeun anggo nyaring header ieu leres.

hasil

Upami anjeun ngarencanakeun pikeun ngalaksanakeun hosting sumber daya pihak katilu pas, hayu atuh masihan anjeun sababaraha saran:

  • Host perpustakaan JS anjeun anu paling penting, fon sareng file CSS. Ieu bakal ngirangan résiko kagagalan situs atanapi degradasi kinerja kusabab sumber daya anu penting pikeun situs henteu sayogi kusabab kasalahan jasa pihak katilu.
  • Sateuacan anjeun nga-cache sumber daya pihak katilu dina CDN, pastikeun yén sababaraha jinis sistem vérsi dianggo nalika nami filena, atanapi anjeun tiasa ngatur daur hirup sumberdaya ieu ku cara ngareset cache CDN sacara manual atanapi otomatis nalika nyebarkeun vérsi énggal. naskah.
  • Ati-ati pisan ngeunaan CDN anjeun, server proxy, sareng setélan cache. Ieu bakal ngidinan Anjeun pikeun nyegah proyék Anjeun atawa lulugu ti keur dikirim cookies Client-Hints jasa pihak katilu.

Pamiarsa Hadirin! Naha anjeun nyayogikeun bahan jalma sanés dina server anjeun anu penting pisan pikeun operasi proyék anjeun?

Mandiri hosting sumberdaya pihak katilu: nu alus, nu goréng, nu awon
Mandiri hosting sumberdaya pihak katilu: nu alus, nu goréng, nu awon

sumber: www.habr.com

Tambahkeun komentar