Acest articol face parte dintr-o serie de 3 articole menite să ajute magazinele online să treacă cu bine peste Black Friday.

  • în prima parte am vorbit despre Vanish.
  • în articolul de față vom vorbi despre CDN-uri
  • într-un articol viitor vom vorbi despre „paralelizare” - adică folosirea mai multor servere simultan.

În articolul precedent am vorbit despre Vanish pentru că are cel mai mare impact pentru un magazin mic/mediu, deși implementarea tehnică este mai complicată decât un CDN. Probabil că poți să treci peste Black Friday doar cu Varnish instalat, fără să ai nevoie de CDN. 1

Ce este și la ce ajută un CDN?

CDN este doar o denumire „fancy” pentru a spune „încărcăm imaginile și fișierele css/js de pe alte servere”. Să lămurim în primul rând de ce e nevoie de acest lucru.

Serverul pe care rulează magazinul tău știe să servească 2 tipuri de conținut:

  • conținut dinamic - generează paginile din magazin (homepage, paginile categoriilor, paginile de produse, filtre, etc)
  • conținut static - imagini, fișiere css și javascript.

În mod normal, serverul îți afișează foare rapid o singură imagine sau un fișier css/js. Dar cum fiecare magazin are zeci de imagini pe fiecare pagină… situația devine nasoală când traficul începe să crească. Serverul e ocupat cu afișarea imaginilor în loc să genereze paginile magazinului.

Aici intervine CDN-ul, prealuând sarcina de afișare a imaginilor și redând serverului resursele atât de necesare pentru generarea paginilor dinamice.

CDN vine de la Content delivery network. Adică o rețea (de servere) pentru livrarea conținutului. Conținutul poate fi de orice tip însă în cazul de față ne interesază imaginile și fișierele css/js.

Trebuie să fac upload la imagini pe alte servere?

Nu. Majoritatea CDN-urilor au un mod „pull”, prin care îți copiază automat fișierele din site-ul tău.

Magazinul meu are suport pentru CDN?

Dacă folosești Magento, Prestashop, Woocommerce sau alte soluții open-source, atunci sunt șanse mari să ai totul la o distanță de câteva click-uri. Magento și Prestashop au setări built-in, pentru restul găsești plugin-uri.

Dacă magazinul tău a fost făcut de la zero de „un băiat” atunci probabil nu ai suport pentru CDN. Dar se poate adăuga - și n-ar fi foarte greu.

Dacă folosești o soluție SaaS (cu abonament lunar) atunci sunt mari șanse ca magazinul tău să folosească deja un CDN.

Cum aleg un furnizor de CDN?

Sunt mai mulți furnizori de servicii CDN - îi vei găsi cu ajutorul Google :)

Pe care îl alegi… depinde doar de tine. Prețul cel mai mic poate părea tentant - analizează bine situația. Noi îți dăm câteva indicii:

  • unde sunt localizate serverele? Majoritatea provider-ilor au servere și în Europa. Germania/Olanda/UK sunt ok ca și localizare, nu e nevoie de servere in România.
  • află ce plătești:
    • plătești per request (adică plătești de fiecare dată când cineva vede o imagine)?
    • plătești traficul (câti GB de trafic faci într-o lună)?
    • plătești stocarea (câți GB de spațiu folosești pe server)?
    • plătești pentru ștergerea cache-ului?
    • sau toate de mai sus?
    • costă ceva în plus certificatul SSL? Acum că Google pune accent mare pe HTTPS, partea asta o să devină importantă. Certificatele shared sunt suficiente.
  • Amazon oferă serviciul Cloudfront gratuit pentru primul an, în limita a 2 milioane de request-uri / luna2. Detalii aici. Pentru un magazin mic e suficient.

NU aștepta până anul viitor

Black Friday a trecut, traficul a revenit la normal, serverul merge ok. Te gândești că n-are rost să dai bani în plus pentru un serviciu pe care o să-l folosești doar câteva zile pe an.

GREȘIT!

Viteza site-ului e importantă în fiecare zi din an. Cumpărătorilor nu le place să aștepte - mai ales acum când o mare parte din trafic e făcut pe mobil. Nu doar serverul o să răspundă mai rapid, ci și browser-ul o să afiseze pagina mai rapid. Să explicăm.

Browser-ele au un număr limitat de request-uri paralele per domeniu. De exemplu, atunci când browser-ul găsește în cod link-uri spre următoarele resurse:

http://www.domeniu.ro/css/fisier1.css
http://www.domeniu.ro/css/fisier2.css
http://www.domeniu.ro/js/script1.js
http://www.domeniu.ro/js/script2.js
http://www.domeniu.ro/images/produs1.jpg
http://www.domeniu.ro/images/produs2.jpg
http://www.domeniu.ro/images/produs3.jpg
http://www.domeniu.ro/images/produs4.jpg

nu poate are voie să le ceară pe toate dintr-o dată. Ar risca să îți blocheze serverul. Așa că face câteva request-uri, așteaptă răspuns de la server, apoi mai face câteva request-uri… și tot așa. Dacă folosești un CDN configurat corect, aceste link-uri devin:

http://cdn1.somedomain.com/domeniu.ro/css/fisier1.css
http://cdn2.somedomain.com/domeniu.ro/css/fisier2.css
http://cdn3.somedomain.com/domeniu.ro/js/script1.js
http://cdn1.somedomain.com/domeniu.ro/js/script2.js
http://cdn2.somedomain.com/domeniu.ro/images/produs1.jpg
http://cdn3.somedomain.com/domeniu.ro/images/produs2.jpg
http://cdn1.somedomain.com/domeniu.ro/images/produs3.jpg
http://cdn2.somedomain.com/domeniu.ro/images/produs4.jpg

Observi că subdomeniile diferă? cdn1, cdn2, cdn3.somedomain.com3. În felul ăsta, browser-ul e „păcălit” și va face mai multe request-uri deodată, reușind să afișeze mai rapid pagina.

Și dacă tot nu ești convins, îți spunem că Google pune mare accent pe viteză, fiind unul din factorii care influențează poziția la căutări.

Concluzie

Instalează un CDN, e cea mai simplă metodă pentru a avea un magazin mai rapid.

  1. Bineînțeles, depinde de trafic, de configurația serverului, etc. Varnish nu e panaceu universal.

  2. La data scrierii acestui articol.

  3. Desigur, ăsta e doar un exemplu, cdn1-3 poate să fie înlocuit cu un șir indescifrabil de caractere, generat automat de către provider.