
CDN, czyli po co jechać po pizzę przez pół świata?
Grzesiu zamówił pizzę z Nowego Jorku. W Dąbrowie Górniczej. Z dostawą na gorąco. Właściciel pizzerii popatrzył na mapę, potem na Grzesia, a na końcu na piec. — Panie, zanim ona przyleci, ser już zdąży wystąpić o emeryturę! Na szczęście sieć „Pizza Pakiet” miała pewien pomysł: zamiast wozić każde zamówienie przez pół świata, otworzyła lokalne punkty. 🍕🤣
Pizza z drugiego końca świata
— Poproszę oryginalną pizzę z centrali — powiedział Grzesiu.
— Mamy oddział dwie ulice dalej — odpowiedziała pani Agnieszka, kierowniczka dostaw.
— ALE JA CHCĘ Z NOWEGO JORKU!
— Przepis jest ten sam.
— A piec?
— Podobny.
— A dostawca?
— Zdecydowanie bliżej.
W świecie stron internetowych podobny pomysł nazywa się CDN — Content Delivery Network, czyli siecią dostarczania treści. Zamiast przesyłać za każdym razem wszystkie zasoby z jednego odległego serwera, CDN korzysta z rozproszonych punktów, które mogą dostarczać kopie bliżej użytkowników.
— Czyli Internet dostał własną sieć pizzerii?
— Powiedzmy, że całkiem nieźle pan to ujął.
— To czemu dalej płacę za dostawę?
— To już pytanie do księgowości.
Centrala i lokalne punkty
W centrali „Pizza Pakiet” urzędował szef kuchni. Posiadał oryginalny przepis, zdjęcia menu i najbardziej aktualny cennik.
— My jesteśmy źródłem — oznajmił z dumą.
— Originem? — spytał informatyk.
— A to nie brzmi bardziej elegancko?
Origin to serwer źródłowy, z którego CDN może pobierać treści. Rozproszone punkty na brzegu sieci to edge — miejsca, z których użytkownicy mogą dostać zasoby bez każdorazowej podróży do centrali. Nie musi to oznaczać dokładnie jednego punktu w każdym mieście, a wybrany serwer nie zawsze jest po prostu geograficznie najbliższy. Liczy się również trasowanie, dostępność i obciążenie.
— Czyli punkt w pobliżu nie musi być najbliższą pizzerią na mapie?
— Zgadza się.
— To po co ta mapa?
— Żeby kierownik miał co powiesić na ścianie.
Pierwsza pizza musi skądś przyjechać
Do nowego oddziału zgłosił się pierwszy klient.
— Poproszę plakat z promocją i zdjęcie pizzy.
— Jeszcze ich nie mamy — przyznał pracownik.
— TO JAKI Z WAS ODDZIAŁ?!
— Zaraz pobierzemy je z centrali.
CDN może używać mechanizmu cache: gdy odpowiednia kopia zasobu znajduje się w punkcie edge i jest ważna, punkt dostarcza ją lokalnie. To tak zwane cache hit. Gdy jej nie ma, pojawia się cache miss — edge musi pobrać zasób dalej, często z originu, a potem może zachować kopię dla następnych klientów.
— A następnym razem?
— Być może wydamy zdjęcie od ręki.
— A samą pizzę też przechowujecie tydzień?
— Nie, panie Grzesiu. Proszę nie mylić pliku ze zdjęciem z obiadem.
W praktyce CDN służy przede wszystkim do sprawnego dostarczania zasobów cyfrowych. Nie każda odpowiedź nadaje się do wspólnego przechowywania.
Dlaczego strona otwiera się szybciej?
Z centrali zadzwonił kierownik.
— Ile razy dziś wysłaliśmy to samo zdjęcie?
— Do naszego oddziału? Raz. A klientom z okolicy wydaliśmy je pięćset razy.
— Czyli pięćset ciężarówek mniej?!
— Mniej więcej taki jest sens tej inwestycji.
Kiedy duże obrazy, arkusze CSS, pliki JavaScript albo fragmenty multimediów są dostarczane z odpowiednio dobranych punktów CDN, dane mogą pokonać krótszą lub mniej obciążoną drogę. Zmniejsza się też liczba zapytań trafiających bezpośrednio do serwera źródłowego. Czas ładowania zależy jednak również od sieci, rozmiaru plików, wydajności urządzenia i pracy samej strony.
— Czyli CDN naprawi mi wolny laptop?
— Nie.
— A aplikację, która przez minutę liczy rachunek?
— Też niekoniecznie.
— To co wy w ogóle robicie?
— Dostarczamy treści. Nie cuda.
Kto ukradł nowe menu?
Pewnego dnia centrala zmieniła cenę pizzy. W oddziale nadal wisiał stary cennik.
— MAM TU INNĄ CENĘ! — krzyknął Grzesiu.
— Bo kopia jeszcze nie została odświeżona — odpowiedziała Agnieszka.
— PRZECIEŻ ZNOWU TA WCZORAJSZA GAZETA!
Punkty CDN także muszą wiedzieć, jak długo wolno wykorzystywać kopię. Pomagają w tym odpowiednie zasady cache. Gdy treść zmienia się pilnie, operator może zastosować unieważnienie lub usunięcie kopii — często nazywane purge albo invalidation — lub użyć nowego adresu zasobu. Zmiany nie zawsze rozchodzą się jednocześnie do wszystkich punktów.
— Czyli mam trzy schowki? Jeden w przeglądarce, jeden u pośrednika i jeden w CDN?
— Mogą istnieć różne warstwy pamięci podręcznej.
— To ja poproszę schemat.
— Już wydrukowany.
— Z której wersji?
Agnieszka bardzo powoli schowała kartkę do szuflady.
Nie każdą pizzę można przygotować wcześniej
Do oddziału zadzwonił klient.
— Chciałbym sprawdzić stan mojego konta.
— Mamy tu gotowy plik z wczoraj!
— ALE TO NIE MOJE KONTO!
— Proszę natychmiast odłożyć ten plik! — krzyknął informatyk.
Nie wszystkie odpowiedzi powinny być dostarczane ze wspólnego cache. Treści prywatne, zależne od zalogowanego użytkownika albo często zmieniające się wymagają właściwych zasad, a czasem muszą być obsługiwane bezpośrednio przez aplikację. Błędna konfiguracja może skończyć się pokazaniem danych niewłaściwej osobie.
CDN potrafi też pełnić dodatkowe funkcje, np. filtrować część niechcianego ruchu, obsługiwać TLS czy pomagać przy przeciążeniach. Nie oznacza to jednak, że każda sieć CDN zapewnia identyczną ochronę albo gwarantuje dostępność bez względu na awarię.
— A więc nie trzymamy cudzych rachunków przy kasie?
— Absolutnie nie.
— Zapiszę to jako punkt pierwszy.
— Proszę raczej nie czekać do punktu drugiego.
CDN nie jest tylko skrytką z plikami
Na naradę przyjechał pan Proxy z sąsiedniego biura.
— Słyszałem, że też pośredniczycie w dostawach.
— Owszem — odparła Agnieszka. — Ale mamy całą rozproszoną sieć punktów.
— Czyli jesteście proxy na wielką skalę?
— Wiele CDN wykorzystuje funkcje reverse proxy i cache, ale CDN opisuje cały system dostarczania treści z wielu lokalizacji, a nie wyłącznie pojedynczego pośrednika.
— A pamięć przeglądarki?
— To schowek klienta. Nasze punkty są po stronie infrastruktury dostarczającej.
— A gdy któryś oddział się zamknie?
— Ruch może zostać skierowany do innego, jeśli sieć i konfiguracja na to pozwalają.
— Czyli znowu wszystko zależy?
— Witamy w informatyce, panie Grzesiu.
Raport z wielkiej dostawy
Wieczorem Grzesiu wreszcie dostał swoją pizzę.
— I jak? — spytała Agnieszka.
— Gorąca. Szybka. Wygląda dokładnie jak ta na zdjęciu.
— To świetnie.
— Tylko nadal nie wiem, skąd przyjechała.
— Z punktu, który mógł pana sprawnie obsłużyć.
CDN pomaga dostarczać treści z rozproszonej infrastruktury bliżej użytkowników i odciążać serwery źródłowe. Najwięcej daje wtedy, gdy wiele osób pobiera te same zasoby, a zasady aktualności kopii są dobrze przemyślane. Nie zastępuje poprawnie działającej aplikacji ani rozsądnej konfiguracji cache.
— Czyli mogę już zamówić deser?
— Może pan.
— Z Nowego Jorku?
— GRZESIU!
Zarząd sieci „Pizza Pakiet” informuje: lokalne oddziały poprawiły czas dostaw, a centrala ograniczyła liczbę niepotrzebnych kursów. Wszystkie cenniki zostały zsynchronizowane. Grzesiu złożył reklamację, ponieważ zamawiał pizzę z Nowego Jorku, a kurier przyszedł pieszo z sąsiedniej ulicy. Reklamację odrzucono: „Produkt zgodny z opisem. Geografia nie jest składnikiem pizzy”. 🍕🌍🤣❤️
