[Non] uti CDN

Fere omnis articulus vel instrumentum ad situs optimizing celeritatem habet clausulam modicam "uti CDN." In genere, CDN contenta est retis vel traditionis contenta retiacula. Nos in Methodo Lab saepe quaestiones ex clientibus de hoc argumento convenimus, nonnullas ex iis proprium CDN. Propositum huius articuli intellegendum est quid CDN verbis situs oneratisque celeritatem praebere possit, quae problemata oriantur, et quibus in casibus usus CDN iustificatur.

[Non] uti CDN

Morae circuli in pictura causantur ex usu CDN.

A paulo historia

Sicut multae technologiae, CDNs ex necessitate emerserunt. Cum progressione canalium interretialis inter interreti users, officia video interretiales apparuerunt. Naturaliter, video contentus ordines magnitudinis requirit maiorem band longitudinis comparati cum contento regulari paginae (picturae, textus, et codicem CSS vel JS).

Cum viderem rivum emittere in parallelis multis clientibus ab uno servo quaerit, in alveum interretialem server verisimile fiet bottleneck. Pro regula pauca milia stamina satis claudunt canalem servo typico. Utique, aliae limitationes subsidiorum esse possunt, sed nunc momenti non sunt. Gravis etiam est ut expandens canalem servo nimis carus sit (et interdum impossibilis), et etiam impractical. Onus in canali in transmissionibus cyclicum erit.

Quaestio de limitandi alveo unius servientis perfecte solvitur a CDN. Clientes servo directo non coniungunt, sed nodis in network CDN. In statu ideali, minister unum rivum ad CDN nodi mittit, et tunc retiacula suis opibus utitur ad hunc rivum multis utentibus tradendum. Ex parte oeconomica, solas facultates actu consumptas (hoc est band longitudo vel commercium esse potuit) solvemus et excellentiam servitutis nostrae scalam obtinemus. Usus CDN ad argumenta gravia liberanda iustissima et logica est. Etsi notabile est maximos histriones in hoc spatio (exempli gratia Netflix) suas CDNs construere loco adhibitis magnis mercatoriis CDNs (Akamai, Cloudflare, Fasty, etc.)

Ut evolvit tela, ipsae applicationes interretiales magis implicatae et implicatae factae sunt. Problema celeritatis oneraturae ad priorem venit. Website celeritatem fanatici velociter varia problemata maioris momenti identificantur quae websites lente onerare causaverunt. Unus ex illis erat morae retis (RTT - rotundi itineris tempus vel ping tempus). Morae plures processus in website loading: nexum constituendum TCP constituendum, sessionem TLS inchoandam, singulas singulas facultates onerandas (imago, fasciculus JS, documentum HTML, etc.)

Problema aggravatur eo quod cum protocollo HTTP/1.1 usus (ante adventum SPDY, QUIC et HTTP/2 haec fuit optio), navigatores non plus quam 6 TCP hospites ad unum exercitum aperiunt. Haec omnia ad connexionem downtime et inhabilis ad usum canalis bandwidth perduxerunt. Problema partim solutum est ab sharificatione domain - creationis additamentorum exercituum ad modum vincendi in numero nexuum.

Hoc est, ubi secunda facultas CDN apparet - reducendo latency (RTT) propter multitudinem punctorum et propinquitatem nodi ad utentis. Distantia munus definitivum hic agit: celeritas lucis circumscripta (circiter 200 km/sec in fibra optica). Hoc significat quod omne M km iter addit 000 ms morae vel 1000 ms ad RTT. Hoc minimum tempus ad transmittendum requisitus est, cum etiam morae in instrumento intermedio sint. Cum CDN scire soleat obiectis cache servientibus suis, prodesse possumus talia onerare per CDN. Condiciones necessariae huic sunt: ​​praesentia obiecti in cella, propinquitas CDN ad usoris comparationem cum servo schedula interretiali (originis server). Magni interest ut vicinitas geographica nodi CDN perspiciat non humilem latentiam praestare. Profutatio inter clientem et CDN ita aedificari potest ut cliens hospitem in alia regione, fortasse in alia continente, coniungat. Hic est ubi relatio inter operatorium telecomicum et ministerium CDN (perspiciens, nexus, participationem IX, etc.) ac negotiatio fusa consilium ipsius CDN oriuntur. Exempli gratia, Cloudflare, cum duo consilia initialia (libera et vilia utens), contenti liberationem ab hospite proxima non spondet - hospes eligendus erit ad minimum sumptus consequendos.

Multae societates principales interretiales trahunt rem publicam (commodorum interretialem et servitii possessores) ad thema oneraturae celeritatis ac viae faciendae. Inter has societates sunt Yahoo ( instrumentum Yslow ) , AOL ( WebPageTest ) et Google ( Page Speed ​​Insights service ), quae suas commendationes enucleant pro accelerandis locis (praesertim optimizationem clientis referentes ). Postea, novi website instrumentorum experientiae celeritatis apparent, quae etiam apices in cursu website augendo praebent. Quaelibet haec officia vel plugins constantem commendationem habet: "Utere CDN". Reductio in latency retis plerumque affertur explicatio pro effectu CDN. Infeliciter, non omnes parati sunt ad amussim intelligere quomodo effectus accelerationis CDN obtineatur et quomodo metiri possit, sic commendatio fidei sumitur et usus postulati. Nam non omnes CDNs pares creantur.

Using CDN Hodie

Ad utilitatem CDNs utendi assident, indicanda sunt. Quid nunc in usu inveniri potest (exempla in uncis sunt, sane non copiose);

  1. Free CDN pro JS bibliothecis distribuendis (MaxCDN, Google. Yandex).
  2. CDN servitiorum optimization clientium (exempli gratia Google Fonts for fonts, Cloudinary, Cloudimage pro imaginibus).
  3. CDN pro static et optimizatione opum in CMS (praesto in Bitrix, WordPress et aliis).
  4. Propositum generale CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN website accelerationis (Cloudflare, Imperva, Airi).

Clavis differentia horum generum est quanta negocii per CDN percurrit. Genera 1-3 sunt traditio partis tantum contenti: ab uno ad plures duodenas (plerumque picturas). Genera 4 et 5 sunt plenae ineundo negotiationis per CDN.

Re, hoc significat numerum coniunctionum quae ad locum onerandi adhibentur. Cum HTTP/2, uno TCP nexu cum exercitu utimur, ut ad quemlibet numerum petitionum procedamus. Si opes in principalem exercitum (originem) et CDN dividamus, necesse est petitiones varias distribuere per plures ditiones et plures TCP nexus creare. Pessimus casus est: DNS (1 RTT) + TCP (1 RTT) + TLS (2-3 RTT) = 6-7 RTT. Haec formula moras in reticulis mobilibus rationem non accipit pro activation canalis radiophonii de fabrica (si activa non erat) et in turri cellae moras.

Ecce quid spectat sicut in cataracta cataractarum onerantium (latenciis pro connectendis cum CDN elucidatis in RTT 150 ms);

[Non] uti CDN

Si CDN omnia situs negotiationis (praeter tertiam partium officia), tunc uno TCP nexu uti possumus, moras in connectendo cum additis exercitibus salvis. Nempe hoc pertinet ad hospites HTTP/2.

Praeterea differentiae determinantur per functionem particularis CDN - primi generis est iustus static obsidens fasciculi, nam quintus variat varias species situs contenti ad ipsum.

CDN facultatem accelerationis pro website

Plenam facultatem CDN describam ad sites accelerandi, sine respectu functionis singulorum generum CDN, et deinde vide quid in singulis perficiatur.

Compressione textus 1. opibus

Praecipua et comprehensa linea, saepe tamen male impletur. Omnes CDNs praesentiam compressionis declarant sicut pluma accelerationis eorum. Sed si accuratius spectes, vitia clarescunt;

  • gradus humilis ad compressionem dynamicam adhiberi potest - 5-6 (exempli gratia, nam gzip maximum est 9);
  • static pressio (lima in cache) non utitur features additional (exempli gratia, zopfi vel brotli cum gradu XI)
  • nullum subsidium pressionis brotli efficientis (salvis fere 20% gzip comparato).

Si CDN uteris, pauca haec iniecta digna est: sume tabellam quae venit de CDN, eius magnitudinem compressam scribe et eam manually ad comparationem comprime (potes uti aliquo servitio online cum auxilio brotli, e.g. vsszhat.rf).

2. Profecti clientis caching capitis

Etiam simplex speedup pluma: adde capitis pro contenti caching per clientem (browser). Praesens maxime caput est cache-control, qui iam exspirat. Accedit Etag adhiberi potest. Summa est, quod max-aetas cache-ditionis satis magna est (ab uno mense vel pluribus.) Si prompta es ad subsidia quam maxime dura struis, optionem immutabilem addere potes.

CDNs valorem max-aetatis demittere potest, cogens utentem ad contentum static saepius reload. Non liquet quid cum hoc cohaeret: cupiditas mercaturae augendae in retiacula vel congruentia augendi cum locis qui nescio quomodo thesaurum retexere. Exempli gratia, default Cloudflare caput cache tempus est horae 1 quae valde humilis est pro notitia static immutabili.

3. imago ipsum

Cum CDN functiones caching et imaginum servientium sumat, logicum est eas in CDN parte optimizare et in hac forma usoribus ministrare. Reservationem statim faciamus haec factura CDN types 2, 3 et 5 tantum praesto est.

Imagines optimize variis modis potes: formas pressionis provectae utens (ut WebP), efficaces encoders (MozJPEG), vel metadata superflua simpliciter redigit.

In genere optimizations sunt duo genera: cum qualitate damnum et sine qualitate dispendium. CDNs solere nituntur ad optimam iacturam adhiberi ut querelas emptorum evitent de mutationibus in qualitate imaginis. In eiusmod, commodo, minima. Reapse, saepe JPEG qualitas gradus multo altior quam necessarius est et cum gradu inferiore qualitatis sine ullo discrimine usuris utentis reprimere tuto potes. Ex altera parte difficile est gradum qualitatis et uncinis universaliter determinare pro omnibus applicationibus interretialibus possibilibus, CDNs ergo melioribus uncinis conservativis comparati ad ea quae applicari possunt ratione contextui (proposito imaginum, speciei applicationis interretiales. , etc.)

4. Optimizing TLS nexum

Plurima negotiatio hodie per TLS nexus percurrit, quae significat extra tempus in tractatu TLS expendimus. Nuper novae technologiae ad hunc processum accelerandum auctae sunt. Exempli gratia, haec est cryptographia EC, TLS 1.3, cella sessio et tesserae, acceleratio encryption hardware (AES-NI), etc. Recte occasus TLS minuere potest nexum tempus ad 0-1 RTT (non computatis DNS et TCP).

Cum programmate hodierno, non difficile est tales praxis in tuomet efficere.

Non omnes CDNs ad effectum deducendi TLS optimas consuetudines, hoc inspicere potes, temporis nexum TLS mensurando (exempli gratia, in Webpagetest). Specimen pro novo nexu - 1RTT, 2RTT - mediocris gradus, 3RTT et plus - mali.

Animadvertendum etiam est, etiam cum TLS ad CDN utens gradu, server applicatione interretiali etiam TLS procedere debet, sed ex parte CDN, quia negotiatio inter servientem et CDN in retia publica transit. In gravissimo casu duplicem TLS nexum moras dabimus (prima ad exercitum CDN, secunda inter illam et ad ministratorem nostrum).

Aliquod applicationes ad quaestiones securitatis attendentes valet: negotiatio plerumque in CDN nodis decrypta est, et haec occasio est potentiale commercii interceptio. Optio operandi sine commercii revelatione in summa consilia tariff offerri solet pro addito feodo.

5. Reducere nexu moras

Praecipuum utilitatis CDN quod quisque loquitur de: humilis latency (minus distantia) inter exercitum CDN et utentem. Effectum efficiendo architecturae retis geographicae distributae, in qua virtutes in punctis utentium utentium (urbes, negotiatio puncta commutationis, etc.) sita sunt.

In praxi, potiores pro diversis reticulis in regionibus specificis esse possunt. Exempli gratia, Russian CDNs plura puncta praesentiae in Russia habebunt. Americani primum retiaculum in USA explicabunt. Exempli gratia, una maximarum CDN Cloudflare tantum 2 puncta in Russia - Moscovia et Petropoli habet. Hoc est, maximum inter circiter 10 manus latency salvare possumus ad directam collocationem Moscuae comparatam.

Most CDNs occidentales puncta in Russia omnino non habent. Cum illis coniungendo solum moras augere pro audientibus tuis Russicis potes.

6. Optimization Content (minificationis, structurarum mutationes)

Incomplexissima et technica ratione processit. Mutans contentus in partus periculosum esse potest. Etiam si accipimus minificationem: minuere codicem fontem (ob spatia extra, structuras ignobiles, etc.) afficit effectum suum. Si loquimur de gravioribus mutationibus - movendo codicem JS ad finem HTML, fasciculi mergendi etc. - periculum est etiam altius perturbandi functionis situs.

Ergo solum aliquod genus 5 CDNs hoc faciunt. Utique non poterit automate omnes mutationes, quae ad maturandum res sunt necessariae, requiruntur analysi manualis et optimizatio. Exempli gratia: codicem duplicatum insuetum vel sublatum munus manuale est.

Pro regula, omnes huiusmodi optimizationes per occasus reguntur et periculosissimas defectus debilitantur.

Subsidium accelerationis facultatum per CDN type

Inspice ergo quod acceleratio potentialis occasiones CDNs varias rationes praebet.

Pro commodo, classificationem repetamus.

  1. Free CDN pro JS bibliothecis distribuendis (MaxCDN, Google. Yandex).
  2. CDN servitiorum optimization clientium (exempli gratia Google Fonts for fonts, Cloudinary, Cloudimage pro imaginibus).
  3. CDN pro static et optimizatione opum in CMS (praesto in Bitrix, WordPress et aliis).
  4. Propositum generale CDN (StackPath, CDNVideo, NGENIX, Megafon).
  5. CDN website accelerationis (Cloudflare, Imperva, Airi).

Nunc lineamenta et rationes CDN comparemus.

potestatem
typus XCIV
typus XCIV
typus XCIV
typus XCIV
typus XCIV

Compressio text
+–
-
+–
+–
+

Cache capitis
+
+
+
+
+

imaginibus
-
+–
+–
-
+

TLS
-
-
-
+–
+

Moras
-
-
-
+
+

Contents
-
-
-
-
+

In hac tabula "+" ad plenam sustentationem designatur, "-" subsidium non est, et "+-" firmamentum partiale est. Scilicet, ex hac tabula re vera deviationes exstent (exempli gratia quaedam generalis ad CDN lineamenta ad imagines optimizing efficiendas), sed ad communem rationem utilis est.

results

Utinam, hoc articulum perlectis, clariorem imaginem habebis de commendatione CDN "uti" ut sites tuos accelerare.

Ut in omni negotio, non potes credere venalicium promissis alicuius muneris. Effectus debet metiri et probatum sub realibus conditionibus. Si iam CDN utens, eam pro efficacia utens criteriis in articulo descriptis.

Fieri potest ut CDN usus nunc situs onerationis tempus tuam retardabit.

Commendationem generalem hisce intendere possumus: auditores tuos perscrutari, eius orbis ambitum determinare. Si audientia principalis tua intra radium 1-2 milium chiliometrorum contrahitur, non opus est CDN ad eius principale propositum - latency reducendo. Potius, servo tuo propius ad usores collocare potes et id apte configurare, cum plurima ex optimizationibus in articulo (liberis et permanentibus) descriptis.

Si auditores tui vere geographico modo distribuuntur (radii plus quam 3000 chiliometrorum), adhibita qualitate CDN vere utilis erit. Attamen in antecessum intelligere debes quidnam tua CDN accelerare possit (vide tabulam capacitatum earumque descriptionem). Nihilominus, acceleratio website adhuc manet negotium implicatum quod solvi non potest iungendo CDN. Praeter optimizationes suprascriptas, efficacissima media accelerationis remanent post CDN: Optimizationem servientis partem, mutationes provectioris partis clientis (remoto codice insueto, optimizing processum reddendi, operandi cum contentis, fontibus, aptabilitate, etc. )

Source: www.habr.com