Minęły już czasy, kiedy do uruchomienia aplikacji sieciowych wynajmowało się
prosty serwer dedykowany. Dzięki szerokiej ofercie usług chmurowych każdy może
przygotować wysoce niezawodną, globalną infrastrukturę gotową przyjąć ogromny
ruch na setkach serwerów. Rola administratora serwerów traci na ważności, a
coraz bardziej potrzebni są programiści specjalizujący się w chmurach.
Zajęcia objaśnią podstawy projektowania, wdrażania i utrzymywania aplikacji w
środowisku chmurowym - zarówno małych, jak i większych systemów. Duży nacisk
będzie położony na wysoką dostępność i skalowalność. Przedstawimy nowe
możliwości oraz usługi dostępne u wiodących dostawców usług chmurowych.
Przyjrzymy się także jak zaplanować architekturę aplikacji, by jak najbardziej
wykorzystać możliwości takiego środowiska. Dokonamy przeglądu narzędzi, które
wspomagają konfigurację chmury. Pokażemy też jak projektować aplikacje dla
milionów użytkowników oraz jak wykonywać obliczenia rozłożone po tysiącach
serwerów.
Przydatna będzie wiedza z przedmiotu _Sieci Komputerowe_ oraz podstawy _Baz
Danych_. Na zajęciach będziemy zakładali, że administracja Linuksem,
połączenie się ze zdalnym serwerem, przygotowanie banalnej aplikacji HTTP, nie
jest dla nikogo wyzwaniem. Ćwiczenia będą kombinacją zadań teoretycznych do
omówienia oraz pracowni wykorzystujących przedstawione narzędzia aby
skonfigurować proste aplikacje w chmurze.
Planujemy omówić technologie, produkty i zagadnienia: AWS, GCP, Docker,
Kubernetes, _configuration management_ (Ansible, Chef, Puppet), CDN,
_infrastructure as code_ (Terraform, CloudFormation), _reliability
engineering_, monitorowanie infrastruktury, _incident management_, bazy i
hurtownie danych, duże obliczenia, automatyzacja infrastruktury, skalowanie
baz danych.
Prowadzący przedmiot reprezentują firmę Fibertide, gdzie projektują i wdrażają zaawansowane systemy chmurowe docierające do ogromnej liczby użytkowników.