Cilj predmeta je pridobiti znanja za razvoj inovativnih računalniških storitev in aplikacij, ki se izvajajo v oblaku (Cloud). Računalništvo v oblaku pomembno spreminja načine razvoja aplikacij in pri predmetu se bomo spoznali s koncepti, arhitekturami in tehnologijami za oblak – s tako imenovano cloud-native arhitekturo.
Poleg tega, da bomo osvojili poglobljeno znanje in poznavanje področja računalništva v oblaku in vseh nivojev storitvene usmerjenosti (XaaS; Iaas, PaaS in SaaS), bomo podrobno spoznali arhitekturni model, vzorce in najboljše prakse za razvoj cloud-native aplikacij, kar vključuje množico konceptov.
Začeli bomo z arhitekturo mikrostoritev in podrobno spoznali razvojne vzorce za mikrostoritve. To bomo združili z vsebniki (conatinerji) Docker (in ostalimi) ter mikro-kerneli. Spoznali se bomo z orodji za orkestracijo vsebnikov, predvsem Kubernetes (in ostalimi).
Nadaljevali bomo s spoznavanjem konceptov cloud-native arhitekture: storitvami, asinhronimi vzorci klicanja storitev, prekinjevalci toka, reaktivnim modelom razvoja mikrostoritev, pretočnimi dogodki (event streaming aka Apache Kafka), konfiguracijo, odkrivanjem storitev (service discovery), preverjanjem vitalnosti (health check), metrikami, varnostjo, odpornostjo na napake in drugimi.
Cilj bo razumeti in razviti oblačne aplikacije, ki se izvajajo na odporni in elastični (resilient and elastic) oblačni infrastrukturi in platformi in razumeti, kako te aplikacije delujejo in kako jih nameščamo na različne ponudnike oblačnih storitev (Amazon AWS, Google AppEngine, Microsoft Azure, Cloud Foundry in druge). V okviru predmeta se bomo spoznali z najpopularnejšimi PaaS platformami. Spoznali bomo koncepte zasebnih, javnih in hibridnih oblakov. Prav tako bomo vzpostavili lasten zasebni/hibridni računalniški oblak.
Obenem se bomo spoznali s praksami DevOps, ki so nujne za razvoj oblačnih rešitev ter spoznali koncepte in projekte CNCF (Cloud Native Computing Foundation), kot so Kubernetes, Prometheus, OpenTracing, Fluentd, Istio, Linkerd, gRPC in druge.
Predmet je praktično orientiran. V okviru vaj bodo študenti v skupinah razvijali inovativne oblačne rešitve z uporabo ogrodij, kot so Spring Boot, KumuluzEE, Node.js, Docker, Kubernetes, Prometheus ter oblake AWS, AppEngine, Azure in druge. Razumeli bodo pomen inovacij v oblaku.
Najboljši študenti bodo imeli možnost sodelovati na inovativnih projektih.
- nosilec: Branko Matjaž Jurič