Web Design Blog / Hosting:

Co to jest CDN? Czy warto włączyć?

Data publikacji: 7 kwietnia 2018

CDN to skrót z angielskiego Content Delivery Network – jest to usługa polegająca na instalowaniu fragmentów strony internetowej na wielu komputerach na całym świecie (sieć odwrotnych serwerów pośredniczących tzw. Reverse Proxy). W efekcie, strona działa zawsze szybciej, dysponujemy dużo większą przepustowością łączy ale co najważniejsze, lokalizacja serwera (czyli to gdzie jest przechowywana strona internetowa) przestaje mieć jakiekolwiek przełożenie na dodatkowe opóźnienia wynikające z odległości jaką musi pokonać połączenie internetowe.

Najlepiej pokazać to wszystko na przykładzie

Załóżmy, że mamy stronę internetową zainstalowaną na polskim hostingu czyli najczęściej w polskiej lokalizacji. Klienci z polski łączą się po stosunkowo krótkiej drodze co nie powoduje znaczących opóźnień w ładowaniu się zdjęć i plików takich jak JavaScript i CSS. Mimo to, wszystkie zasoby na stronie są ściągane po kolei tzn, jednocześnie można ściągać kilka zasobów na raz z jednego hostingu – to standardowe ograniczenie.

Przypadek pierwszy – klient łączący się z polskiej miejscowości, „lekka” i mało popularna strona zainstalowana w Polsce (np. w datacenter w Warszawie).

CDN co to jest?

Wszyscy są zadowoleni. Strona działa szybko bez opóźnień, hosting nie jest obciążony zapytaniami. Problem może się pojawić jak strona zyska na popularności – ale do tego jeszcze wrócimy.

Przypadek drugi – klienci za granicą łączą się do strony postawionej w Polsce.

Klienci z sąsiednich krajów czują opóźnienie ale mogą w miarę skutecznie poruszać się po stronie, natomiast w bardziej odległych zakątkach świata na wyświetlenie strony czekamy kilka sekund.

CDN rozwiązuje ten problem w taki oto sposób

Klienci łączą się do strony za pomocą węzłów, które są najbliżej nich. W efekcie strona działa szybko w każdym miejscu na ziemi.

CDN przyspiesza stronę jeszcze w inny sposób

Spostrzegawcze osoby zauważą jeszcze jedną korzyść. Jest nią oczywiście odciążenie głównego serwera. Rozlokowanie zasobów „cięższej” strony internetowej pomiędzy kilkoma węzłami powoduje, że ściąga się ona szybciej. Wszystko za sprawą pewnego ograniczenia, które powoduje, że z jednej lokalizacji (serwera) nasza przeglądarka może ściągać na raz tylko kilka plików.

Porównanie ładowania plików przed wdrożeniem CDN i po wdrożeniu (wykres z Pingdom Tester) – żółty kolor to oczekiwanie. Widać, że tylko kilka plików ściąga się na raz a następne czekają na swoją kolej. Po prawej, przy włączonym CDN widać, że pliki nie czekają na swoją kolej i ściągają się niemal jednocześnie:

CDN - przed i po

Umiejętne wykorzystanie CDN umożliwia rozdzielenie ruchu tak, aby zasoby były ładowane z CDN a żądania HTTP i logika była obsługiwana tak jak do tej pory przez centralny serwer. W wyniku czego strona albo sklep ściąga się o wiele szybciej a najdroższy element infrastruktury – serwer generujący front-end (obsługujący żądania HTTP) jest odciążany z serwowania statycznych zawartości.

Jeżeli ruch jest duży obsługa zapytania klienta, który łączy się z Wrocławia może być możliwa za pomocą dwóch hostingów np. w Warszawie i we Frankfurcie.

Tak wygląda rozmieszczenie węzłów, którymi dysponuje znany dostawca Cloudflare:

a tutaj rozlokowanie punktów AWS CloudFront:

i jeszcze mapka dla KeyCDN:

oraz MaxCDN/StackPath:

Czołowi dostawcy CDN

  • Amazon AWS (usługa: CloudFront)
  • CloudFlare
  • MaxCDN
  • proinityLLC (produkt: keycdn)
  • Imperva Incapsula
  • Verizon (usługa EdgeCast CDN)
  • Akamai CDN

Jak wiadomo, szybkość to dobre pozycje w wyszukiwarce

Na tym blogu piszę o tym już chyba dziesiąty raz. Google bierze pod uwagę jak szybko działa strona, dlatego wykorzystywanie takiej infrastruktury przekłada się na lepsze pozycje strony w wyszukiwarce. Można o tym przeczytać więcej w artykułach Czynniki decydujące o pozycji w wyszukiwarce oraz przyspieszanie stron www.

CDN to także bezpieczeństwo

CDN chroni stronę na tej zasadzie, że nie dopuszcza do zalania serwera nienaturalnymi zapytaniami z zewnątrz. Uodparnia stronę na najpopularniejszy i najłatwiejszy do przeprowadzenia atak typu DoS i DDoS, który po prostu blokuje serwer wykorzystując wszystkie dostępne zasoby jego łącza internetowego.

Zalety stosowania CDN

Podsumujmy zatem wszystkie wymienione w tym artykule zalety stosowania CDN:

  • Eliminacja opóźnień w działaniu strony za pomocą skrócenie drogi połączenia
  • Odciążenie głównego hostingu za sprawą dywersyfikacji – większa stabilność i dostępność usług (pierwsze etapy skalowania hostingu aplikacji)
  • Kolejne przyspieszenie wynikającej z eliminacji kolejki pobierania za pomocą rozlokowania plików
  • Ogromnie pozytywny wpływ na wrażenia użytkowników. Strona czy sklep działa szybciej powodując lepszą konwersję.
  • Lepsze pozycje w wyszukiwarce (przy umiejętnym wdrożeniu)
  • Zwiększone bezpieczeństwo i automatyczna ochrona przed najpopularniejszymi atakami
  • Niższy koszt lub możliwość optymalizacji kosztów hostingu dużych aplikacji

Czy CDN ma jakieś wady?

Raczej nie, ale znając realia pierwsze co mi się nasuwa to:

  • nieumiejętna lub samodzielna instalacja usługi może doprowadzić do błędów a w skrajnych przypadkach niższych pozycji w wyszukiwarce,
  • dodatkowy, stały koszt związany z utrzymaniem usługi i dodatkowego certyfikatu SSL lub konieczność wykupienia wyższej opcji hostingu,
  • koszt wdrożenia usługi (od 750 zł netto wzwyż),
  • utrudnienia przy pracach deweloperskich – jest to przykład partycjonowania funkcjonalnego serwera. CDN jest kolejnym black boxem, którym zarządzamy za pomocą API dostawcy (konieczność czyszczenia pamięci Cache, stosowania nagłówków, wykonanie automatycznej inwalidacji itp…).

Kiedy warto stosować CDN?

  • serwisy internetowe o zasięgu ogólnopolskim
  • wielojęzyczne strony internetowe
  • sklepy internetowe
  • często odwiedzane strony internetowe
  • strony z wieloma zdjęciami, filmami i plikami, które często są pobierane
  • strony narażone na ataki – czyli popularne, zarabiające serwisy lub przechowujące cenne dane
  • każda inna dowolna strona WWW, która z pewnych powodów ma być szybsza i mieć w 100% profesjonalną architekturę

Testowanie CDN

Postanowiono porównać czasy TTFB aby sprawdzić, czy CDN faktycznie przyspiesza pobieranie zdjęć. Po stronie klienta mamy łącze ok. 10Mb/s. Testowana usługa to Amazon CloudFront z najbliższymi węzłami prawdopodobnie we Frankfurcie. Test jest wykonywany na śląsku połączenie Plus LTE. Plik testowy to zdjęcie JPEG o wadze 434KB umieszczony na hostingu WWW OVH Performance 1 i we wspomnianym CDN. Dostęp do obu odbywa się po szyfrowanym połączeniu:

Jak to jest możliwe? CDN nie dość, że odpowiada szybciej, to pobieranie tego samego pliku trwa o wiele krócej. Sieć CDN prawdopodobnie dysponuje łączem o większej przepustowości, reaguje szybciej tak jakby był mniej obciążony zapytaniami lub występowała mniejsza liczba przeskoków połączenia.

Już przy jednym pliku graficznym widać ponad dwukrotnie szybszy transfer i czas reakcji. Proszę sobie teraz wyobrazić jak wielki wpływ na czas i współbieżność pobierania witryny ma CDN w przypadku pobierania kilkunastu a nawet kilkudziesięciu różnych plików na raz.

Rezultat wdrożenia CDN na jednej z obsługiwanych stron:

Prędkość wczytywania (październik 2017 – marzec 2018) – CDN wdrożono w nocy 23 grudnia 2017:

rezultat wdrożenia CDN

Indeksowanie plików umieszczonych w CDN

Czy wyszukiwarka indeksuje pliki umieszczone w CDN? Oczywiście, że tak. Wszelkie pliki są indeksowane zupełnie tak jakby znajdowały się na głównym serwerze aplikacji.

Podsumowanie

CDN to bardzo efektywny sposób na przyspieszenie ładowania się strony oraz minimalizację kosztu utrzymania na serwerze stron i sklepów obsługujących stosunkowo duży ruch. Warto stosować go wszędzie tam, gdzie prędkość, wrażenia użytkownika i bezpieczeństwo to priorytet.

Źródła:

https://aws.amazon.com/blogs/aws/98-99-100-cloudfront-points-of-presence/

Henderson C. Building Scalable Web Sites. Building, Scaling, and Optimizing the Next Generation of Web Applications, O’reilly 2008.

Ejsmont A. Web Scalability for Startup Engineers, McGraw-Hill Education, New York, 2005.

https://www.cloudflare.com/network/

https://www.keycdn.com/network

https://www.stackpath.com/maxcdn/


Komentarze

Brak komentarzy.

Dodaj swój komentarz