CDN, czyli content delivery network to sieć serwerów rozmieszczonych w różnych lokalizacjach, których podstawowym zadaniem jest szybkie dostarczanie treści internetowych, takich jak strony www, zdjęcia, obrazy czy innych plików statycznych, które nie zmieniają się wraz z kolejnymi zapytaniami http/https. Infrastruktura CDN dba o również o zapewnienie wysokiej dostępności dla tych treści.
Bez CDN mamy do czynienia z pojedynczym serwerem lub grupą serwerów, ale znajdujących się w jednej lokalizacji, nazwijmy ją dla uproszczenia źródłem. Każdy z użytkowników, który potrzebuje zapisanych na serwerze informacji musi się komunikować bezpośrednio ze źródłem. Jeżeli odbiorca znajduje się w sporej odległości, to przekaz może być opóźniony. Efektem może być np. wolno ładująca się strona internetowa.
Infrastruktura CDN kopiuje oryginalny kontent na wszystkie dostępne w jej ramach serwery, zapewniając szybki dostęp bez względu na lokalizację użytkownika. Z CDN korzystają zarówno wielcy internetowi gracze, jak Netflix czy Shopify, ale również właściciele i twórcy niewielkich stron internetowych.
Czy CDN jest dla mnie?
Szybszy dostęp do naszych treści, to bardziej zadowolony klient, prawda? Czy jednak, jeżeli klient jest lokalny, a więc znajduje się blisko serwera, to nadal potrzebujemy CDNa? Z jednej strony wydaje się, że nie, bo to w końcu małe odległości, na jakie musimy dostarczyć treści. Warto pamiętać, że CDN odciąża serwer źródłowy, gdyż sam serwuje skaszowane pliki, a to sprawia, że można skorzystać z serwera o słabszej specyfikacji, a ruch zostanie i tak odpowiednio obsłużony.
Również przy wąskiej, bezpośredniej ścieżce sieciowej do serwera, CDN pozwoli obsłużyć więcej klientów, niż w przypadku, gdyby ruch był skierowany bezpośrednio.. Inna sytuacja ma miejsce, gdy na naszych stronach przechowujemy sporo poufnych informacji, lub też przeważają treści dynamiczne, a nie statyczne. Skąd to wyłączenie? Tego dowiemy się analizują mechanikę działania CDN.
Jak działa CDN?
Sposób działania CDN omówimy na przykładzie Google Cloud CDN, bo tę usługę Google Cloud znamy najlepiej. Za każdym razem, kiedy użytkownik wysyła zapytanie do strony internetowej lub aplikacji, zapytanie to trafia do najbliższego węzła Google Edge, których jest już ponad 120 rozsianych po całym świecie. W dalszej kolejności przekazywane jest do Load Balancera http(S) oraz oryginalnego backendu. Serwery w sieci Cloud CDN przechowują cache oryginalnych treści, dzięki czemu dostęp do nich jest szybki.
Najczęściej na źródłowych serwerach znajdują się pliki graficzne, video, JavaScript czy CSS. Cloud CDN automatycznie tworzy cache statycznych treści. W Google Cloud CDN można stworzyć cache nawet z treści, które mają oznaczenie „private”, „no-cache” czy „no-store”. To oczywiście opcja, z której nie trzeba korzystać.
Po otrzymaniu zapytania Cloud CDN wyszukuje cache za pomocą cache key, najczęściej w formie URL. Scenariusz, w którym po przesłaniu zapytania wraca informacja zwrotna z cache nazywa się cache hit i cykl dostarczania informacji dobiega końca, Może się jednak okazać, że Cloud CDN nie odnajdzie poszukiwanego pliku, gdyż nie ma go zapisanego w cache. Mówimy wówczas o cache miss. Nie oznacza to jednak, że użytkownik zostaje z niczym. Cloud CDN nawiązuje komunikację z kolejnym serwerem sprawdzając, czy może na nim znajduje się poszukiwana informacja. Jeżeli kolejny z serwerów przetrzymuje właściwy plik, to przesyła go do pierwszego cache, najbliższego klientowi. Jeżeli jednak poszukiwanego pliku nie będzie na kolejnych serwerach, Cloud CDN odeśle zapytanie użytkownika do oryginalnego serwera. Uzyskujemy wówczas taki sam efekt, jakbyśmy nie korzystali z Cloud CDN. Jednak jest to ostateczność, a po drodze może okazać się, że zapytanie zostanie obsłużone dużo szybciej.
Jak długo informacje są przechowywane w cache?
To jak długo obiekt może znajdować się w pamięci podręczne definiowane jest przez TTL (time to live), które można ustalać zarówno dla każdej odpowiedzi http, jak i w cache modes. Kiedy zostanie przekroczony zadany okres czasu, pamięć podręczna jest czyszczona.
Czy Cloud CDN współpracuje wyłącznie z treściami statycznymi?
Wspominaliśmy kilka akapitów wyżej, że w przypadku dużej liczby treści dynamicznych nie warto korzystać z CDN. Ale czy to samo dotyczy Cloud CDN? Chociaż początkowo specjalizacją content delivery network były pliki statyczne, to obecne z coraz większym powodzeniem udaje się przyspieszać dostarczanie klientom dynamicznych treści.
Czym jest ten rodzaj contentu? Są to treści, których finalny wygląd uzależniony jest od kilku zmiennych, a więc nie jest taki sam dla każdego użytkownika. Najprostszym przykładem są sklepy internetowe, które na podstawie historii zakupów tworzą listę sugestii, które mogą spodobać się klientowi. Jak łatwo się domyślić, każdy otrzyma listę skrojoną pod własne preferencje. Personalizacja może być związana również z geolokalizacją, czy też zmieniać się w zależności od tego, czy użytkownik jest zalogowany do swojego konta, czy też łączy się w trybie incognito.
Media CDN – potężne uzupełnienie Cloud CDN
W przypadku obciążeń wychodzących o dużej przepustowości, takich jak przesyłanie strumieniowe dużych plików, w tym filmów, Google proponuje Media CDN. Usługa ta pozwala, korzystając z globalnej infrastruktury edge cache, udostępniać treści jak najbliżej użytkowników. Pobieranie materiałów z publicznie dostępnych punktów końcowych http jest łatwe, a samo korzystanie z Media Cloud może być połączone z dowolną istniejącą infrastrukturą źródłową, bez względu na to, czy zawartość jest hostowana w Cloud Storage, czy też w innej chmurze.
Dobre praktyki bezpieczeństwa w API
Nad bezpieczeństwem Cloud CDNmoże czuwać Cloud Armor, chroniący zawartość przed atakami DDoS. Sposób działania może być następujący.
- Klient używając reCAPTCHA pobiera token i wysyła żądanie do Load Balancera przedstawiając poświadczenia aplikacji w postaci klucza, tokena czy certyfikatu.
- Cloud CDN sprawdza pamięć podręczną za pomocą klucza i zwraca odpowiedź.
- Jeżeli jest ona błędna, włącza się Google Cloud Armor, który przefiltrowuje żądanie wymuszając o oceniając zgodnie ze wszystkimi skonfigurowanymi regułami i zasadami. Jeżeli chociaż jedna zostanie naruszona, Cloud Armor zwraca komunikat o błędzie i kodzie stanu.
Jak inni korzystają z Cloud CDN?
U-NEXT to japońska firma zajmująca się strumieniowym przesyłaniem wideo. Specjalizuje się w dostarczaniu filmów fabularnych i dokumentalnych oraz anime do swojej bazy 2,5 mln subskrybentów. U-NEXT szukał nowoczesnego CDN, który nie wymagałby pracy dedykowanych inżynierów czy przeglądania cotygodniowych raportów technicznych. Postawienie Media CDN zajęło zaledwie kilka godzin. Osiągnięto też bardzo wysoki cache rate na poziomie 98,3%
Ile kosztuje implementacja Cloud CDN?
Wdrożenie Cloud CDN nie musi być trudne, a jak pokazuje przykład U-NEXT,może być również dość szybkie. Najłatwiej skorzystać przy tym z pomocy certyfikowanego architekta Google Cloud. Odezwij się do FOTC, firmy partnerskiej Google Cloud. Nasi eksperci przeprowadzą Cię przez całą procedurę implementacji CDN, a dodatkowo pomogą zoptymalizować koszty działania w chmurze Google Cloud.
Podsumowanie
Podsumowując, oprócz zalet związanych z wydajnością i szybkością dostarczania treści, CDN-y oferują również znaczące korzyści w zakresie bezpieczeństwa. Dzięki rozproszonej infrastrukturze, ataki DDoS (Distributed Denial of Service) są trudniejsze do przeprowadzenia, ponieważ ruch jest rozdzielany na wiele serwerów. Dodatkowo, CDNy oferują zaawansowane mechanizmy ochrony, takie jak zapory aplikacyjne (WAF) oraz rozbudowane systemy detekcji i przeciwdziałania zagrożeniom. To sprawia, że korzystanie z CDN staje się nie tylko kwestią wygody, ale także kluczowym elementem strategii bezpieczeństwa dla firm o różnej wielkości.