Web Design Blog / Hosting:

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

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ę

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

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/

Co to jest CDN? Czy warto włączyć?
4.8 (95.24%) głosów: 42

Autor:

Służę pomocą w razie wykonania lub odnowienia strony internetowej dla twojej firmy niezależnie od lokalizacji czy skali przedsięwzięcia. Masz pytania? Pisz w komentarzu.

Zadaj pytanie lub skomentuj


Wyrażam zgodę na przetwarzanie moich danych osobowych przez firmę Paweł Mansfeld z siedzibą w Jastrzębiu-Zdroju, ul. Plebiscytowa 10, w celu udzielenia odpowiedzi, w tym przedłożenia oferty jeśli o nią pytam. Moje dane osobowe będą przetwarzane do czasu cofnięcia zgody lub przez okres niezbędny do ustalenia, dochodzenia lub obrony roszczeń. Mam prawo dostępu do danych, sprostowania, usunięcia lub ograniczenia przetwarzania, prawo sprzeciwu, prawo wniesienia skargi do organu nadzorczego i prawo do przeniesienia danych.

Komentarze publiczne

Brak komentarzy.
Otrzymuj powiadomienie o nowych artykułach

Wyrażam zgodę na przetwarzanie moich danych osobowych przez firmę Paweł Mansfeld z siedzibą w Jastrzębiu-Zdroju, ul. Plebiscytowa 10, w celu udzielenia odpowiedzi, w tym przedłożenia oferty jeśli o nią pytam. Moje dane osobowe będą przetwarzane do czasu cofnięcia zgody lub przez okres niezbędny do ustalenia, dochodzenia lub obrony roszczeń. Mam prawo dostępu do danych, sprostowania, usunięcia lub ograniczenia przetwarzania, prawo sprzeciwu, prawo wniesienia skargi do organu nadzorczego i prawo do przeniesienia danych.

*Bez obaw, nie udostępniam nikomu twojego adresu e-mail