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ęć.