Специальность / Speciality: 7-06-0533-04 Математика и компьютерные науки / Mathematics and computer science
Профилизация / Profiling: Веб-программирование и интернет-технологии / Web Development and Internet Technologies
Учебная дисциплина, модуль / Academic discipline, module: Архитектура распределенных приложений, модуль «Распределенные приложения и криптотехнологии» / Architecture of Distributed Applications, module «Distributed applications and cryptotechnologies»
Краткое содержание учебной дисциплины, модуля / Brief summary |
1. Технологии контейнеризации. Понятия образов и контейнеров. Запуск стандартных контейнеров. Сборка нового образа и размещение его в репозитарии. Управление ресурсами контейнеров. Файловые системы контейнера и хоста. Создание выделенных подсетей. Принципы логгирования. Выполнение команд внутри контейнера. Композиция контейнеров. Создание кластеров и задание параметров масштабирования сервисов. 2. Примеры распределенных приложений. Примеры CMS платформ. Развертывание CMS на основе существующих образов. Взаимодействие с базами данных. Шаблоны разделения бизнес-логики. Примеры многокомпонентных распределенных приложений 3. Протоколы взаимодействия. Структура HTTP сообщений и основные методы. Представление данных в виде JSON. Понятие REST API. Реализация CRUD операций в REST API. Пример практической реализации REST API. 4. Компоненты облачных сервисов Использование облачных кластеров для запуска и тестирования контейнеров. Практическое знакомство с облачными сервисами на примере AWS. Развертывание облачного кластера. Запуск образов в облаке и задание параметров масштабирования. Использование облачных СУБД. Бессерверные вычисления в облаке. |
1. Containerization technologies. Concepts of images and containers. Running standard containers. Building a new image and pushing it in the image registry. Container resource management. Container and host file systems. Use of dedicated subnets. Logging principles. Executing commands inside a container. Composition of containers. Clusters and service scaling options. 2. Examples of distributed applications. Examples of CMS platforms. Deployment of CMS based on existing images. Database interaction. Business logic separation patterns. Examples of multicomponent distributed applications. 3. Communication protocols. Structure of HTTP messages and basic HTTP requests. Representation of da-ta in the form of JSON. REST API paradigms. Implementation of CRUD operations via REST API. An example of a practical implementation of the REST API. 4. Components of cloud services. Use of cloud clusters to run and test containers. Practical acquaintance with cloud services on the example of AWS. Deployment of a cloud cluster. Running images in the cloud and setting scaling options. Use of cloud DBMS. Lambda functions and serverless computing in the cloud. API Gateways. |
Формируемые компетенции / The formed competences |
Специализированная компетенция: Быть способным применять ключевые методы проектирования и защиты информационных систем для реализации устойчивых распределенных и криптоприложений. |
Specialized competence: Be able to apply key methods of designing and protecting information systems to implement sustainable distributed and crypto-applications. |
Результаты обучения (знать, уметь, владеть) / Learning outcomes (know, can, be able) |
В результате изучения учебной дисциплины студент магистратуры должен: знать: — основные шаблоны проектирования архитектуры распределенных приложений; — протоколы взаимодействия многокомпонентных систем; — стандартные строительные блоки распределенных приложений; — основы построения облачных сервисов; уметь: — проектировать архитектуру распределенных приложений; — корректно определять топологию взаимодействия компонент распределенных систем; — использовать современные методы контейнеризации микросервисов; владеть: — навыками композиции распределенных систем на основе семейств микросервисов; — методами масштабирования распределенных систем. |
As a result of mastering the academic discipline, the student must: know: — basic patterns for designing the architecture of distributed applications; — protocols for interaction of multicomponent systems; — standard building blocks of distributed applications; — basics of developing cloud services; can: — design the architecture of distributed applications; — correctly determine the topology of interaction between components of distributed systems; — use modern methods of containerization of microservices; be able to: — compose distributed systems based on families of microservices; — use different strategies for scaling distributed systems. |
Семестр изучения учебной дисциплины, модуля / Semester of study |
3 |
3 |
Пререквизиты / Prerequisites |
Нет |
No |
Трудоемкость в зачетных единицах (кредитах) / Credit units |
6 зачетных единиц |
6 credit units |
Количество аудиторных часов и часов самостоятельной работы / Academic hour of students’ class work, hours of self-directed learning |
Всего 198 часов, из них 70 аудиторных часов и 128 часов самостоятельной работы. |
A total of 198 hours, of which 70 academic hours of students’ class work and 128 hours of self-directed learning. |
Требования и формы текущей и промежуточной аттестации / Requirements and forms of current and interim certification |
Письменный отчет с устной защитой, устный опрос. Экзамен. |
Lab report with oral presentation. Oral survey. Exam. |