ХМАРНІ ОБЧИСЛЕННЯ ТА GRID-СИСТЕМИ - Робоча програма навчальної дисципліни (Силабус)
Реквізити навчальної дисципліни
Рівень вищої освіти | Другий (магістерський) |
Галузь знань | 12 Інформаційні технології |
Спеціальність | 126 Інформаційні системи та технології |
Освітня програма | Інформаційні управляючі системи та технології |
Статус дисципліни | Обов’язкова (нормативна) |
Форма навчання | очна(денна)/заочна/дистанційна |
Рік підготовки, семестр | 3 курс, осінній семестр |
Обсяг дисципліни | 6,0 кредити ECTS /180 годин (36 годин лекцій, 36 годин лабораторних робіт, 108 годин – СРС) |
Семестровий контроль/ контрольні заходи | Екзамен |
Розклад занять | 1 лекція (2 години) 1 раз на тиждень; 1 лабораторна робота (2 години) 1 раз на тиждень |
Мова викладання | Українська |
Інформація про керівника курсу / викладачів | к.ф.-м.н. Жереб Костянтин Анатолійович Telegram: https://t.me/kzhereb E-mail: zhereb@gmail.com |
Розміщення курсу | https://campus.kpi.ua |
Програма навчальної дисципліни
- Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання
Відповідно до стандарту вищої освіти зі спеціальності 126 Інформаційні системи та технології галузі знань 12 Інформаційні технології для другого (магістерського) рівня вищої освіти та освітньо-професійної програми другого (магістерського) рівня вищої освіти дисципліна «Хмарні обчислення та GRID-системи» формує (ЗК04) здатність розробляти проєкти та управляти ними; (СК02) здатність формулювати вимоги до етапів життєвого циклу сервіс-орієнтованих інформаційних систем; (СК13) здатність використовувати технології розподілених grid- та хмарних обчислень, віртуалізації серверних систем, проєктувати корпоративні обчислювальні системи, застосовувати кластерні та гетерогенні розподілені обчислювальні системи для розв’язання прикладних задач і проведення наукових досліджень, розв'язувати проблеми масштабованості та (РН01) відшуковувати необхідну інформацію в науковій і технічній літературі, базах даних, інших джерелах, аналізувати та оцінювати цю інформацію; (РН05) визначати вимоги до ІСТ на основі аналізу бізнес-процесів та аналізу потреб зацікавлених сторін, розробляти технічні завдання; (РН18) здійснювати використання технології розподілених grid- та хмарних обчислень, віртуалізації серверних систем, проєктувати корпоративні обчислювальні системи, застосовувати кластерні та гетерогенні розподілені обчислювальні системи для розв’язання прикладних задач і проведення наукових досліджень, розв'язувати проблеми масштабованості.
Дисципліна «Хмарні обчислення та GRID-системи» орієнтована на вивчення принципів, методів та засобів проєктування та розробки сучасних застосунків з використанням хмарних та Grid-технологій, розгортання проєктів на інфраструктурі провайдерів хмарних послуг, використання засобів віртуалізації та контейнеризації серверних застосунків та компонентів, принципів та патернів мікросервісної архітектури. На лабораторних роботах студенти навчаться проєктувати, реалізовувати та розгортати проєкти з використанням можливостей хмарних та Grid-технологій, використовувати засоби контейнеризації, проєктувати застосунки з використанням мікросервісної архітектури.
Мета навчальної дисципліни
Метою навчальної дисципліни є формування у студентів теоретичних знань і практичних здатностей застосовувати загальні методи і засоби проєктування, розробки та розгортання застосунків з використанням хмарних та Grid-технологій.
Предмет навчальної дисципліни
Предмет - методи та засоби проєктування розробки та розгортання застосунків з використанням хмарних та Grid-технологій, інструментальні засоби в галузі хмарних та Grid-технологій.
Програмні результати навчання, на формування та покращення яких спрямована дисципліна:
(РН01) відшуковувати необхідну інформацію в науковій і технічній літературі, базах даних, інших джерелах, аналізувати та оцінювати цю інформацію; (РН05) визначати вимоги до ІСТ на основі аналізу бізнес-процесів та аналізу потреб зацікавлених сторін, розробляти технічні завдання; (РН18) здійснювати використання технології розподілених grid- та хмарних обчислень, віртуалізації серверних систем, проєктувати корпоративні обчислювальні системи, застосовувати кластерні та гетерогенні розподілені обчислювальні системи для розв’язання прикладних задач і проведення наукових досліджень, розв'язувати проблеми масштабованості.
Пререквізити та постреквізити дисципліни
Пререквізити
Для успішного засвоєння дисципліни студент повинен володіти освітніми компонентами "Програмування. Частина 1. Основи програмування", "Програмування. Частина 2. Структури даних та алгоритми", "Бази даних".
Постреквізити
Компетенції, знання та уміння, одержані в процесі вивчення освітнього компонента є необхідними для подальших освітніх компонентів "Практика" та "Виконання магістерської дисертації".
Зміст навчальної дисципліни
Розділ 1. Використання хмарних та grid-технологій
Тема 1.1. Огляд сучасних хмарних технологій.
Тема 1.2. Моделі та рівні надання хмарних послуг: IaaS, PaaS, SaaS
Тема 1.3. Можливості хмарних послуг AWS (Amazon).
Тема 1.4. Можливості хмарних послуг Microsoft Azure.
Тема 1.5. Можливості хмарних послуг Google Cloud.
Тема 1.6. Спеціалізовані провайдери хмарних послуг.
Тема 1.7. Можливості grid-технологій.
Розділ 2. Віртуалізація та контейнеризація.
Тема 2.1. Ізольовані середовища.
Тема 2.2. Віртуальні машини.
Тема 2.3. Контейнери - основні технології та стандарти.
Тема 2.4. Засоби Docker.
Тема 2.5. Засоби Docker Compose.
Тема 2.6. Засоби Kubernetes.
Тема 2.7. Додаткові інструментальні засоби для підтримки контейнеризації.
Розділ 3. Мікросервісна архітектура.
Тема 3.1. Поняття мікросервісів.
Тема 3.2. Основні принципи мікросервісної архітектури.
Тема 3.3. Принципи та патерни розбиття системи на мікросервіси.
Тема 3.4. Принципи та патерни роботи з даними в мікросервісній архітектурі.
Навчальні матеріали та ресурси
Базова література
John Culkin, Mike Zazon. AWS Cookbook: Recipes for Success on AWS. — 1st Edition — O'Reilly Media, 2022 — 356 p.
Reza Salehi. Azure Cookbook: Recipes to Create and Maintain Cloud Solutions in Azure. — 1st Edition — O'Reilly Media, 2023 — 332 p.
Rui Costa, Drew Hodun. Google Cloud Cookbook: Practical Solutions for Building and Deploying Cloud Services. — 1st Edition — O'Reilly Media, 2021 — 282 p.
Sean P. Kane, Karl Matthias. Docker: Up & Running: Shipping Reliable Containers in Production. — 3rd Edition — O'Reilly Media, 2023 — 422 p.
Alan Hohn. The Book of Kubernetes: A Complete Guide to Container Orchestration. — No Starch Press, 2022 — 384 p.
Chris Richardson. Microservices Patterns: With examples in Java. — 1st Edition — Manning, 2018 — 520 p.
Допоміжна література
AWS Documentation. https://docs.aws.amazon.com/
Azure documentation. https://learn.microsoft.com/en-us/azure/
Google Cloud documentation. https://cloud.google.com/docs/
Docker Docs. https://docs.docker.com/
Kubernetes Documentation. https://kubernetes.io/docs/home/
A pattern language for microservices. https://microservices.io/patterns/
Neil Middleton, Richard Schneeman. Heroku: Up and Running: Effortless Application Deployment and Scaling. — 1st Edition — O'Reilly Media, 2013 — 98 p.
Heroku Documentation. https://devcenter.heroku.com/categories/reference
Matt Butcher, Matt Farina, Josh Dolitsky. Learning Helm: Managing Apps on Kubernetes. — 1st Edition — O'Reilly Media, 2021 — 212 p.
Helm Documentation. https://helm.sh/docs/
Yevgeniy Brikman. Terraform: Up and Running: Writing Infrastructure as Code. — 3rd Edition — O'Reilly Media, 2022 — 457 p.
Terraform Documentation. https://developer.hashicorp.com/terraform/docs
Joshua Wood, Brian Tannous. OpenShift for Developers: A Guide for Impatient Beginners. — 2nd Edition — O'Reilly Media, 2021 — 145 p.
OpenShift Documentation. https://docs.openshift.com/
Методика опанування навчальної дисципліни (освітнього компонента)
Лекційні заняття
|
|
---|---|
1 |
|
Основні питання: Вступ. Зміст предмету. Передумови появи хмарної інфраструктури. Засоби розгортання (deployment) застосунків. Переваги та недоліки хмарних технологій. | |
2 | Тема 1.2. Моделі та рівні надання хмарних послуг: IaaS, PaaS, SaaS |
Основні питання: Модель NIST хмарних послуг. Моделі розгортання: public, private, community, hybrid. Основні характеристики. Моделі надання послуг: IaaS, PaaS, SaaS, їх особливості, переваги та недоліки. Хмарні послуги зберігання даних та комунікацій. | |
3 | Тема 1.3. Можливості хмарних послуг AWS (Amazon). |
Основні питання: Хмарні послуги AWS (Amazon). Основні можливості, схеми сплати, питання надійності та безпеки. Важливі продукти. | |
4 | Тема 1.4. Можливості хмарних послуг Microsoft Azure. |
Основні питання: Хмарні послуги Microsoft Azure. Основні можливості, схеми сплати, питання надійності та безпеки. Важливі продукти. | |
5 | Тема 1.5. Можливості хмарних послуг Google Cloud. |
Основні питання: Хмарні послуги Google Cloud. Основні можливості, схеми сплати, питання надійності та безпеки. Важливі продукти. | |
6 | Тема 1.6. Спеціалізовані провайдери хмарних послуг. |
Основні питання: Переваги та недоліки спеціалізованих провайдерів хмарних послуг. Провайдери IBM Cloud, Oracle Cloud, Alibaba Cloud. Спеціалізовані IaaS провайдери: DigitalOcean, Linode. Спеціалізовані PaaS провайдери: Heroku, Netlify, Vercel. | |
7 | Тема 1.7. Можливості grid-технологій. |
Основні питання: Об’єднання обчислювальних ресурсів в галузі наукових обчислень. Переваги та недоліки. Огляд основних технологій. Desktop Grid. Grid обчислення як приклад моделі community cloud. | |
8 | Розділ 2. Віртуалізація та контейнеризація. Тема 2.1. Ізольовані середовища. |
Основні питання: Виклики, пов’язані з розгортанням та виконанням сучасних застосунків, зокрема серверних компонентів. Поняття середовища виконання, його складові. Ізольовані середовища, їх різновиди, переваги та недоліки. | |
9 | Тема 2.2. Віртуальні машини. |
Основні питання: Віртуальні машини як ізольовані середовища. Гіпервізори. Різновиди віртуальних машин. Інструментальні засоби для підтримки віртуальних машин. Продуктивність та безпека віртуальних машин. | |
10 | Тема 2.3. Контейнери - основні технології та стандарти. |
Основні питання: Поняття контейнерів, образів, репозиторіїв. Порівняння контейнерів з віртуальними машинами та з віртуальними середовищами на рівні мови програмування (зокрема virtualenv, Node.js тощо). Реалізації з використанням засобів ОС. Стандарти в галузі контейнерів - Open Container Initiative (OCI), Container Runtime Interface (CRI). Популярні реалізації – Docker, Podman, Kata Containers, Apptainer/Singularity, runc, containerd, CRI-O. | |
11 | Тема 2.4. Засоби Docker. |
Основні питання: Основні можливості Docker. Встановлення та налаштування. Використання готових образів. Створення власних образів. Формат Dockerfile – синтаксис, можливості, рекомендації щодо ефективної реалізації. | |
12 | Тема 2.5. Засоби Docker Compose. |
Основні питання: Необхідність запуску декількох контейнерів одночасно. Поняття оркестрації контейнерів. Порівняння з використанням docker run, shell scripts. Можливості Docker Compose. Формат даних YAML, його можливості, порівняння з JSON. | |
13 | Тема 2.6. Засоби Kubernetes. |
Основні питання: Виклики розгортання та керування великою кількістю контейнерів в production середовищі. Архітектура Kubernetes. Поняття ресурсів. Основні ресурси – Pod, Deployment (та альтернативи), Service (та різновиди/альтернативи). Можливості розширення Kubernetes. | |
14 | Тема 2.7. Додаткові інструментальні засоби для підтримки контейнеризації. |
Основні питання: Необхідність додаткових інструментальних засобів для підтримки контейнеризації. Інструментальний засіб Helm. Helm Charts. Інструментальний засіб Terraform. Підтримка різних провадерів хмарних послуг. Інструментальний засіб OpenShift. Інструментальні засоби, специфічні для провайдерів хмарних послуг. | |
15 | Розділ 3. Мікросервісна архітектура. Тема 3.1. Поняття мікросервісів. |
Основні питання: Огляд сучасних архітектур, зокрема серверних компонентів. Сервісно-орієнтована архітектура. Підхід мікросервісів. Порівняння з монолітною архітектурою. Переваги та недоліки мікросервісів. | |
16 | Тема 3.2. Основні принципи мікросервісної архітектури. |
Основні питання: Принципи мікросервісної архітектури. Принципи, пов’язані з декомпозицією на мікросервіси. Принципи, пов’язані зі зберіганням та обробкою даних. Принципи, пов’язані з процесами розробки, організацією взаємодії в команді розробників. | |
17 | Тема 3.3. Принципи та патерни розбиття системи на мікросервіси. |
Основні питання: Архітектурні патерни, порівняння з патернами проєктування. Мови патернів. Патерни, пов’язані з мікросервісами. Патерни Monolith Architecture, Microservice Architecture, Modular Monolith with Feature Flags. Патерни декомпозиції. Патерни Worker, Sidecar, Ambassador. Патерни міграції до мікросервісів – Strangler Application, Anti-corruption Layer. | |
18 | Тема 3.4. Принципи та патерни роботи з даними в мікросервісній архітектурі. |
Основні питання: Виклики роботи з даними в мікросервісній архітектурі. Патерни Stateless vs. Stateful Services. Патерни Database per Service vs. Shared Database. Патерни Read Replicas, CQRS, Domain Event, Event Sourcing. Патерни підтримки транзакцій - Saga, Transactional Outbox, Transaction Log Tailing. |
Лабораторні роботи
|
|
---|---|
1 | Лабораторна робота 1. Розгортання застосунків на хмарній інфраструктурі. |
Вивчити основні можливості хмарних провайдерів. Розробити серверний застосунок, розгорнути його на одному (чи більше) хмарних провайдерів. Порівняти продуктивність локального запуску та запуску з хмарної інфраструктури. | |
2 | Лабораторна робота 2. Контейнеризація |
Вивчити можливості контейнерів для розгортання застосунків. Реалізувати застосунок у вигляді контейнерів, продемонструвати розгортання локально та на хмарній інфраструктурі. Порівняти продуктивність запуску в контейнерах та без них. | |
3 | Лабораторна робота 3. Мікросервісна архітектура |
Вивчити принципи та патерни мікросервісної архітектури. Реалізувати один застосунок двома способами – у вигляді монолітної архітектури та мікросервісної архітектури (не менше трьох різних сервісів). Порівняти реалізації, зокрема продуктивність, можливість масштабування. | |
4 | Лабораторна робота 4. Використання інструментальних засобів |
Вивчити основні можливості інструментальних засобів, зокрема Helm, Terraform, OpenShift, засобів специфічних для провайдерів хмарних послуг. Використати один або декілька цих засобів для розгортання та керування роботою застосунка в хмарі. Порівняти їх можливості з «ручною» роботою. |
Самостійна робота студента
|
|
|
---|---|---|
1 | Підготовка до лабораторної роботи 1 | 20 |
2 | Підготовка до лабораторної роботи 2 | 20 |
3 | Підготовка до лабораторної роботи 3 | 20 |
4 | Підготовка до лабораторної роботи 4 | 20 |
5 | Підготовка до МКР-1 | 14 |
6 | Підготовка до МКР-2 | 14 |
Всього | 108 |
Контрольні роботи
Двогодинна модульна контрольна робота (МКР) поділяється на дві одногодинні (45 хв.), що проводяться під час лабораторних занять.
МКР-1 виконується після вивчення розділу 1(тем 1.1 – 1.7). МКР-2 виконується після вивчення розділів 2 та 3( тем 2.1 – 3.4). Модульні контрольні роботи виконуються в середовищі Google Classroom у вигляді тестування.
Політика та контроль
Політика навчальної дисципліни (освітнього компонента)
Система вимог, які ставляться перед студентом:
правила відвідування занять: заборонено оцінювати присутність або відсутність здобувача на аудиторному занятті, в тому числі нараховувати заохочувальні або штрафні бали. Відповідно до РСО даної дисципліни бали нараховують за відповідні види навчальної активності на лекційних та практичних заняттях;
модульні контрольні роботи виконуються самостійно та без застосування допоміжної інформації з Інтернет, матеріалів курсу, конспекту;
заохочувальні бали виставляються за навчальну активність на лекційних заняттях. Кількість заохочуваних балів не більше 10;
штрафні бали виставляються за невчасну здачу лабораторних робіт. Кількість штрафних балів не більше 10;
політика щодо академічної доброчесності: Кодекс честі Національного технічного університету України «Київський політехнічний інститут імені Ігоря Сікорського» https://kpi.ua/files/honorcode.pdf встановлює загальні моральні принципи, правила етичної поведінки осіб та передбачає політику академічної доброчесності для осіб, що працюють і навчаються в університеті, якими вони мають керуватись у своїй діяльності, в тому числі при вивченні та складанні контрольних заходів з дисципліни «Основи front-end технологій».
Види контролю та рейтингова система оцінювання результатів навчання (РСО)
Поточний контроль: МКР, виконання та захист лабораторних робіт. Календарний контроль: проводиться двічі на семестр як моніторинг поточного стану виконання вимог силабусу. Семестровий контроль: екзамен. Рейтинг студента з дисципліни складається зі стартового рейтингу, тобто балів, отриманих протягом семестру, та підсумкового рейтингу, тобто балів, отриманих під час екзамену. Бали стартового рейтингу протягом семестру студент отримує за:
виконання та захист лабораторних робіт; виконання модульних контрольних робіт (МКР).
Система рейтингових балів та критерії оцінювання Лабораторні роботи
«відмінно», повна відповідь на питання під час захисту (не менш ніж 90% потрібної
інформації) та оформлений належним чином протокол до лабораторної роботи – 10 балів;
«добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації) та оформлений належним чином протокол до лабораторної роботи –
8 балів; «задовільно», неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки та оформлений належним чином протокол до лабораторної роботи – 6 балів; «незадовільно», незадовільна відповідь та/або не оформлений належним чином протокол до лабораторної роботи – 0 балів.
За кожне запізнення з поданням лабораторної роботи до захисту від встановленого терміну оцінка знижується на 1 бал.
Модульні контрольні роботи
«відмінно», не менш ніж 90% правильних відповідей – 10 балів; «добре», не менш ніж 75% правильних відповідей – 8 балів; «задовільно», не менш ніж 60% правильних відповідей –
6 балів; «незадовільно», менш ніж 60% правильних відповідей – 0 балів.
Заохочувальні бали
за активну роботу на лекційному занятті 1 бал, але в сумі не більше 10.
Штрафні бали
Запізнення з поданням лабораторної роботи до захисту від встановленого терміну -1 бал, але в сумі не більше -10
Календарний контроль
На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 18 балів. На другій атестації (14-й тиждень) студент отримує
«зараховано», якщо його поточний рейтинг не менший ніж 36 балів.
Максимальна сума балів контрольних заходів протягом семестру складає: RD = 4*rлаб++2*rмкр=4*10+2*10=60,
де
rлаб – бал за лабораторну роботу (0…10); rмкр – бал за написання МКР (0…10)
Форма семестрового контролю – Екзамен
Необхідною умовою допуску до екзамену є виконання МКР-1 та МКР-2 не нижче ніж на оцінку «задовільно», а також виконання достатньої кількості лабораторних робіт для отримання не менше 36 балів стартового рейтингу.
На екзамені студенти виконують письмову контрольну роботу. Кожен білет містить чотири теоретичних запитання (завдання). Кожне запитання (завдання) оцінюється в 10 балів.
Система оцінювання екзаменаційної контрольної роботи
За кожне питання: «відмінно», не менш ніж 90% потрібної інформації – 10 балів; «добре», не менш ніж 75% потрібної інформації – 8 балів; «задовільно», не менш ніж 60% потрібної інформації – 6 балів; «незадовільно», менш ніж 60% потрібної інформації – 0 балів.
Сума стартових балів плюс підсумкові бали за екзаменаційну контрольну роботу переводиться до екзаменаційної оцінки згідно з таблицею:
Таблиця 1. Переведення рейтингових балів до оцінок за університетською шкалою
|
|
---|---|
100-95 | Відмінно |
94-85 | Дуже добре |
84-75 | Добре |
74-65 | Задовільно |
64-60 | Достатньо |
Менше 60 | Незадовільно |
Не виконані умови допуску | Не допущено |
Робочу програму навчальної дисципліни (Силабус):
Складено: доцент кафедри інформаційних систем та технологій ФІОТ, к.ф.-м.н., Жереб Костянтин Анатолійович
Ухвалено кафедрою інформаційних систем та технологій ФІОТ (протокол № 21 від 29.06.2023 р.)
Погоджено Методичною комісією факультету (протокол № 11 від 29.06.2023 р.)