Seminarium: Content Delivery Networks i ewolucja Internetu

Język wykładowy Polski
Semestr Zimowy
Status Wycofana z oferty
Opiekun Tomasz Wierzbicki
Liczba godzin 30 (sem.)
Rodzaj Seminarium
ECTS 3
Polecany dla I roku Nie
Egzamin Nie

Opis przedmiotu:

Klasyczna architektura klient-serwer publicznej sieci Internet powoli odchodzi w przeszłość. Prędkość światła w zestawieniu z rozmiarem Kuli Ziemskiej powodują, że nawet korzystając z najszybszych transoceanicznych magistral światłowodowych w połączeniach międzykontynentalnych nie da się osiągnąć opóźnienia transmisji rzędu mniejszego niż 100 ms. A to dla współczesnego użytkownika Google'a, Facebooka, Youtube i innych serwisów jest zdecydowanie zbyt dużo — przyzwyczailiśmy się, że treść stron internetowych pojawia się w naszych komputerach, telewizorach, tabletach i telefonach niemal błyskawicznie. Przez ostatnie dziesięciolecie serwisy internetowe przybliżyły się zatem do użytkownika, a dokładniej do lokalnych operatorów telekomunikacyjnych. _Content Delivery Networks_ (zarówno prywatne sieci korporacji, jak Microsoft Azure, Amazon CloudFront, Google Cloud, jak i sieci świadczące usługi dla obcych podmiotów, takie jak Akamai, AWS, Cloudflare, Cachefly, Keycdn i in.) mają w krajach uprzemysłowionych swoje points of presence w odległości co najwyżej kilkuset kilometrów od niemal każdego użytkownika. Nikogo już nie dziwi, że oglądając film na Youtube łączymy się w rzeczywistości z Google Global Cache w Poznaniu, a przeglądając serwis internetowy MIT odbieramy dane z Akamai CDN w Amsterdamie. W Internecie powoli zanika kręgosłup. Globalna sieć publiczna ulega atrofii. Szybko rośnie natomiast przepustowość łączy abonenckich, zarówno kablowych (często już rzędu 1Gb/s) jak i bezprzewodowych (np. LTE o niewiele mniejszej przepustowości), wydajność rdzeni sieci dostawców Internetu oraz przede wszystkim prywatne WAN-y korporacji, do których użytkownicy nie mają dostępu (Google twierdzi, że jego prywatna sieć przenosi już ponad 10% światowego ruchu telekomunikacyjnego). Ten nowy model komunikacji, mimo że nadal opiera się na tradycyjnym stosie protokołów TCP/IP (obecnie częściej już IPv6 niż IPv4) ze względu na swoją komplikację wymaga opracowania zupełnie nowych technologii dostarczania danych. Korporacje nie zawsze chętnie dzielą się informacjami o sobie z tzw. opinią publiczną. Mimo to jest sporo ciekawych prac opisujących nawet bardzo nowoczesne rozwiązania. W ramach seminarium warto by poczytać zarówno o klasycznych CDN-ach, nowszych trendach (np. Telco CDN), jak i nowych protokołach i technologiach (Software-Defined Networking itp.) **Proponowana tematyka** 1. Struktura, sposób działania i własności dużych CDN. Porównanie infrastruktury. Komponenty CDN. 2. Chmury obliczeniowe. Techniki i narzędzia wirtualizacji, KVM, Xen, VMWare, FreeBSD Jails, OpenVZ, LXC, własnościowe rozwiązania Google'a. 3. Zarządzanie kontenerami (Docker) i klastrami (Kubernetes). 4. Rozproszone systemy plików, cloud storage, cloud database, object storage, GoogleFS, Colossus, GlusterFS, Ceph, memcached. Apache Thrift. 5. Configuration managers, Chef, Puppet, Ansible, Salt. NixOS. 6. High Availability. Klastry HA, HAProxy, IP Failover/Floating IP, Heartbeat/Healthcheck, replikacja baz danych. 7. HA w infrastrukturze sieciowej. Load balancing, stateful failover, keepalived, Network functions virtualization, Distributed Overlay Virtual Ethernet, Overlay transport virtualization, Software-defined networking, Open vSwitch, Availability Zones. Usługi DNS, Anycast DNS, Route53. 8. Koncepcja Everything-as-a-service. Software, Platform, Infrastructure, Load Balancer, Search as a Service. 9. Points of Presence, caches i problemy dystrybucji zasobów. **Proponowana literatura** Wybrane pozycje są wymienione poniżej. Obszerniejsza lista wartych przeczytania prac zostanie przedstawiona na pierwszych zajęciach. 1. Arjun Singh _et al._ , Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google’s Datacenter Network, _SIGCOMM 2015_. 2. Niall Richard Murphy, Jennifer Petoff, Chris Jones, Betsy Beyer, _Site Reliability Engineering. How Google Runs Production Systems_ , O'Reilly 2016. 3. Rajkumar Buyya, Mukaddim Pathan, Athena Vakali, _Content Delivery Networks_ , Springer, 2008. 4. Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung, The Google File System, _SOSP’03_. **Podziękowania** Bardzo dziękuję Mateuszowi Markiewiczowi za pomoc w przygotowaniu oferty zajęć.