Blog članak

Što je CDN i kako radi

Saznajte kako CDN ubrzava web stranice, smanjuje opterećenje izvornog poslužitelja i povećava otpornost tako što sadržaj isporučuje s rubnih lokacija bližih korisnicima.

CDN odnosno Content Delivery Network globalna je mreža poslužitelja koja krajnjim korisnicima brže isporučuje web sadržaj tako što kopije datoteka, poput slika, pohranjuje na lokacijama geografski bližima korisnicima koji taj sadržaj traže. Korištenjem CDN-a web stranice smanjuju opterećenje svojih izvornih poslužitelja, što im omogućuje da posluže više korisnika bez straha od preopterećenja. CDN-ovi poboljšavaju korisničko iskustvo jer doprinose bržem učitavanju stranica, a poboljšavaju i sigurnost webova jer pomažu ublažiti učinke napada raspodijeljenim uskraćivanjem usluge (DDoS) i omogućuju uvođenje dodatnih sigurnosnih proxy slojeva kroz samu mrežu isporuke sadržaja.

Prednosti CDN-ova

Neke od prednosti korištenja Content Delivery Networka uključuju:

  • Smanjenje vremena učitavanja web stranica i aplikacija: pohranjivanjem kopija statičkih datoteka u predmemoriju i njihovom isporukom s poslužitelja koji su bliže krajnjim korisnicima, vrijeme učitavanja se smanjuje. Time se poboljšava korisničko iskustvo, a postoje i dodatne koristi poput bolje optimizacije za tražilice jer one uzimaju performanse web stranice u obzir pri rangiranju.

  • Zaštita od DDoS-a i drugih napada: CDN-ovi štite izvorni poslužitelj web stranice od DDoS napada i drugih prijetnji tako što pomažu sustavu da podnese povećan promet. Uz to se na CDN mogu postaviti i drugi sigurnosni alati, primjerice firewall, između zlonamjernog korisnika i web stranice.

  • Bolja skalabilnost: Content Delivery Network omogućuje da web stranice i aplikacije brzo skaliraju jer CDN može apsorbirati prometne skokove bez da web mora značajno povećavati kapacitet izvornog poslužitelja.

  • Smanjeni troškovi bandwidtha i hostinga: kako CDN pohranjuje dio web sadržaja u predmemoriju, smanjuje količinu bandwidtha potrebnog na izvornom ili host poslužitelju. Troškovi bandwidtha ovise o pružatelju hostinga, ali mogu biti skupi i nepredvidivi, pa CDN često smanjuje hosting troškove.

  • Manje prekida rada: visoka dostupnost ključna je za tvrtke koje se oslanjaju na web stranicu ili aplikaciju za generiranje prihoda, poput SaaS aplikacija i e-trgovina. CDN pomaže spriječiti prekide rada kroz ranije spomenute sigurnosne mjere, a ponekad može isporučiti i pohranjenu verziju stranice u predmemoriju ako je izvorni poslužitelj nedostupan.

Danas postoji nekoliko vrsta CDN-ova, uključujući mreže koje vode telekom kompanije i privatne CDN-ove izgrađene za potrebe jedne kompanije. Facebook je primjer tvrtke koja je zbog globalne prisutnosti i goleme količine sadržaja izgradila vlastitu mrežu za isporuku sadržaja. Ipak, većina tvrtki i pojedinaca danas će koristiti komercijalni CDN poput AWS CloudFronta, Cloudflarea ili Fastlyja. Iako svaki pružatelj ima poneke specifične značajke, svi CDN-ovi rade na istim osnovnim principima.

Kako CDN radi

U središtu Content Delivery Networka, koji se ponekad naziva i rubnom mrežom, nalazi se skup Točaka prisutnosti (Points of Presence — PoP), to jest grupa poslužitelja raspoređenih na više mjesta diljem svijeta. Poslužitelji unutar svakog PoP-a nazivaju se rubnim poslužiteljima jer su u odnosu na izvorni poslužitelj, koji hosta punu verziju web stranice ili softvera, smješteni na rubu mreže bliže krajnjem korisniku. CDN-ovi se razlikuju po broju PoP-ova. Neki imaju tisuće lokacija na svim kontinentima, a drugi su koncentrirani na ključna područja koja opslužuju.

Rubni poslužitelji imaju više uloga, uključujući hostanje datoteka u predmemoriji radi boljih performansi i zaštitu izvornog poslužitelja tako što promet prvo usmjeravaju na CDN umjesto izravno na izvor. CDN-ovi mogu hostati različite softverske alate za performanse i sigurnost jer rubni poslužitelji djeluju kao reverse proxy sloj koji presreće web promet i obrađuje ga prema pravilima definiranima kroz softver instaliran na rubnom poslužitelju. Iako su CDN-ovi najpoznatiji po pohranjivanju sadržaja u predmemoriju, mogu hostati i softver za detekciju prijetnji, alate za promjenu veličine slika i još mnogo toga.

Kako CDN-ovi pohranjuju sadržaj u predmemoriju

Svaki rubni poslužitelj hosta kopije web sadržaja u predmemoriji, najčešće statičkih datoteka poput slika ili tekstualnih datoteka. Kada korisnik posjeti web stranicu ili pristupi nekom softveru, Content Delivery Network ga automatski usmjerava prema najbližem PoP-u i isporučuje pohranjeni sadržaj s te lokacije umjesto da ga šalje na možda udaljeniji izvorni poslužitelj. Taj korak ubrzava web i smanjuje broj zahtjeva koji dolaze do izvora, pa izvor može više resursa posvetiti dinamičkom sadržaju koji je teže pohraniti u predmemoriju.

CDN network diagram
Single-server delivery on the left · CDN distribution on the right

Ta vrsta pohranjivanja u predmemoriju naziva se server-side caching, a može se postaviti i bez Content Delivery Networka, primjerice kroz programe poput Varnish Cachea koji sjede ispred izvornog poslužitelja. Ipak, kada se server-side caching koristi zajedno s CDN-om, webovi mogu postići još bolje performanse. Druga poznata metoda je client-side odnosno pregledničko pohranjivanje u predmemoriju (browser caching), pri čemu se kopije datoteka pohranjuju u korisnikov preglednik. To znači da će se pri ponovnom posjetu neke datoteke, primjerice logotip, učitavati još brže. Većina webova koristi kombinaciju pregledničkog i poslužiteljskog pohranjivanja u predmemoriju, najčešće kroz CDN, kako bi postigla što bolje brzine učitavanja.

Kako bi datoteke poslužene s CDN-a bile ažurne, web stranice definiraju pravila koja mehanizmu predmemorije govore kada sadržaj istječe. Ako CDN utvrdi da je datoteka istekla, ponovno će je dohvatiti s izvornog poslužitelja prvi put kada je netko zatraži. To se zove “cache pull” i korisno je jer CDN tada traži datoteke samo kada su stvarno potrebne. Druga tehnika zove se “cache push”, kada web stranica proaktivno kaže predmemoriji da osvježi datoteke. To može biti korisno za velike datoteke ili kada web istovremeno ažurira većinu sadržaja pa želi biti siguran da je predmemorija sinkronizirana.

Kako CDN-ovi poboljšavaju sigurnost web stranica

Osim što poboljšavaju performanse, mreže za isporuku sadržaja poboljšavaju i sigurnost web stranica tako što otkrivaju prijetnje, blokiraju zlonamjeran promet i štite izvorni poslužitelj od napada. Kada promet ne ide izravno na izvor, izvorni poslužitelj je bolje zaštićen od napada raspodijeljenim uskraćivanjem usluge (DDoS) u kojima napadači pokušavaju srušiti web slanjem ogromne količine prometa odjednom. CDN-ovi taj promet raspoređuju kroz više PoP lokacija pa lakše podnose opterećenje, a često uključuju i alate koji dodatno pomažu u obrani od DDoS-a i drugih prijetnji.

Drugi sigurnosni alati koje mnogi CDN-ovi nude uključuju firewalle i napredni softver za detekciju prijetnji koji sprječava da štetan promet dođe do izvora. Firewall nadzire promet i blokira određene zahtjeve na temelju pravila, primjerice IP adresa, dok napredniji firewall može analizirati sadržaj paketa podataka ili graditi pametna pravila za prepoznavanje prijetnji. CDN-ovi mogu nuditi i alate za ublažavanje štetnih botova, zaštitu API-ja te upravljanje TLS/SSL certifikatima, čime se osigurava da je promet šifriran. Sve to pomaže da web ostane online, da se prijetnje brzo zaustave i da sigurnosni incidenti ne ugroze reputaciju brenda.

Kako odabrati CDN

Postoji mnogo CDN rješenja i svaka tvrtka ili pojedinac mogu imati drugačije potrebe i prioritete. Kada razmišljate koji Content Delivery Network koristiti, uzmite u obzir sljedeće:

  • Slučaj korištenja CDN-a: ovisno o funkciji vaše web stranice ili aplikacije, možda isporučujete različite vrste sadržaja. Ako planirate pohranjivati u predmemoriju uglavnom statički sadržaj poput slika, većina CDN-ova će zadovoljiti potrebe. Ako želite pohranjivati dinamički sadržaj ili personalizirane sadržaje, provjerite može li CDN to dobro podržati.

  • PoP mreža: CDN-ovi su prije svega namijenjeni bržoj isporuci krajnjim korisnicima pa je lokacija PoP-ova ključna. Ako većina prometa dolazi iz jedne regije, odaberite CDN koji ima PoP ili više njih u toj regiji. Ako je promet globalan, tražite mrežu s mnogo PoP lokacija diljem svijeta.

  • Dostupne značajke: Content Delivery Network može uključivati stotine proizvoda za sigurnost, performanse i skalabilnost. To ide od osnovnog pohranjivanja u predmemoriju do optimizacije slika, naprednih firewalla i puno više. Pri odabiru usporedite ponuđene proizvode s vlastitim prioritetima. Ako vam je sigurnost najveća briga, tražite CDN s jakim sigurnosnim setom alata.

  • Korisničko iskustvo: iako su CDN-ovi standardan alat, korisničko iskustvo jako varira. Neki nude ograničena ili složena sučelja, dok drugi imaju intuitivne nadzorne ploče i API-je koje je lako uklopiti u postojeće tijekove rada. Neki pružatelji nude i potpuno upravljanu uslugu pa vam konfiguraciju i održavanje u velikoj mjeri skidaju s leđa.

  • Cijena: trošak i model naplate CDN-a važni su u svakoj odluci o kupnji. Dok neki CDN-ovi nude besplatne ili jeftine planove za osnovne potrebe pohranjivanja u predmemoriju i sigurnosti, enterprise rješenja mogu koštati tisuće dolara mjesečno. Mnogi naplaćuju i prema alatima koje koristite i prema prometu koji prolazi kroz mrežu, pa je važno u procjenu uključiti sve funkcije koje trebate i predvidjeti što se događa ako promet poraste.

  • Podrška i dokumentacija: kao i kod drugih cloud rješenja i softverskih alata, podrška CDN pružatelja može varirati od forumskih zajednica do email podrške i namjenskih predstavnika. Procijenite želite li sami rješavati probleme ili vam je važniji češći pristup podršci. Pogledajte kvalitetu dokumentacije i razinu podrške, kao i dodatne troškove premium podrške.

  • Kompatibilnost: neki CDN-ovi bolje odgovaraju određenim sustavima za upravljanje sadržajem ili softverskim arhitekturama. Primjerice, neki imaju dodatke koji lako rade s alatima za izradu web stranica. Prije odabira provjerite kako će CDN raditi s vašom postojećom konfiguracijom i ostalim alatima koje koristite.

Zaključak

Content Delivery Network vrijedan je alat koji se koristi zajedno s cloud pružateljem ili okruženjem hostinga. CDN može poboljšati performanse i sigurnost web stranica i aplikacija, smanjiti hosting troškove i osigurati da krajnji korisnici imaju dobro iskustvo. Mnogi moji klijenti koriste CDN uz hosting pa ako trebate pomoć, javite mi se.

Povezana područja

Ova su područja rada usklađena s temom članka i daju čišći prijelaz od edukativnog sadržaja do konkretne implementacije.

Nastavite čitati

Prvo po zajedničkim kategorijama, a zatim po najjačem preklapanju u tagovima.