Máš jádro "redakčního systému", které pro obrázek pomeranč.jpg může vrátit:
server_[1..2]_pomeranč.jpg (Tj. řídí to jádro tvého redakčního systému.)
Ale pro banán.jpg ti vrátí jen server_1, protože není v XY instancí.
Takže:
* redakční systém může uživateli doporučovat CDN podle jeho GEO-umístění, to se hodí jednak na optimalizaci přenosu a jednak na obsah CDN, možná některá data nejsou pro některé GEO-umístění tolik důleitá
* redakční systém ví, kolik požadavků je na který CDN směrováno (stačí in memory table)
* redakční systém může sám zkontrolovat, jestli soubor na CDN skutečně je a případně se léčit
* redačkní systém může používat i jednoduchý round-robin
* redakční systém může řídit spouštění dalších CDN serverů
* CDN server nepotřebuje žádnou zvláštní logiku, prostě jen podává soubory přes HTTPS
* celé se to ladí o trochu snáz
...
A pak jsou samozřejmě i určité nevýhody, ale tohle je z hlediska implementace poměrně jednoduché a nemusíš složitě řešit distribuci databáze.
Příklad, rozhodneš se porovnávat všechny soubory server_[1..2]_pomeranč.jpg, to klidně můžeš offloadovat na jiný server, který soubory stahuje a kontroluje jejich konzistenci (jestli nějaký není uříznutý). Takový "makáč" ti pak může řešit i samotný přenos dat na další CDN servery, protože je nebude tahat z jádra systému, ale jako zdroj použije CDN servery a jen to, co na CDN serverech není.
Makáč někde mimo jádro může:
- monitorovat odezvu každého CDN serveru
- pokud detekuje poškozený soubor, provede jeho vyřazení, kopii a znovu publikování daného obsahu a to bez zatěžování linky k hlavnímu serveru
....