****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ąć opoźnienia transmisji rzędu mniejszego niż 100 ms. A to dla
wspołczesnego użytkownika Google'a, Facebooka, Youtube i innych serwisow 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 operatorow
telekomunikacyjnych. _Content Delivery Networks_ (zar owno prywatne sieci
korporacji, jak Microsoft Azure, Amazon CloudFront, Google Cloud, jak i sieci
świadczące usługi dla obcych podmiotow, 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 kilometrow 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, zarowno kablowych (często już rzędu
1Gb/s) jak i bezprzewodowych (np. LTE o niewiele mniejszej przepustowości),
wydajność rdzeni sieci dostawcow Internetu oraz przede wszystkim prywatne
WAN-y korporacji, do ktorych 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łow 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ć
zarowno o klasycznych CDN-ach, nowszych trendach (np. Telco CDN), jak i nowych
protokołach i technologiach (Software-Defined Networking itp.)
**Proponowana tematyka**
1. Struktura, sposob działania i własności dużych CDN. Porownanie 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 plikow, 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 zasobow.
**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ęć.