Головатая Е.А. Эвристическое занятие по дисциплине «Технологии облачной виртуализации и контейнеризации»
Опубликовано 07 декабря 2021 в 12:00

Эвристическое занятие по дисциплине

«Технологии облачной виртуализации и контейнеризации»

 

Головатая Екатерина Александровна, кандидат технических наук, доцент кафедры интеллектуальных систем факультета радиофизики и компьютерных технологий БГУ

Учебная дисциплина: «Технологии облачной виртуализации и контейнеризации»

Изучаемая тема: «Контейнеризация веб-приложения при помощи Docker».

Количество часов на реализацию методической разработки: 6 часов лабораторных занятий.

Основные цели педагога по отношению к индивидуальной самореализации студента при изучении данной темы:

Создать условия для понимания принципа контейнеризации посредством развертывания веб-приложения на сервер проекта «Цифровой факультет БГУ».

Главная проблема занятия с позиции самореализации студента:

Необходимость автоматизации развертывания и изоляции отдельных приложений, использующих общие вычислительные и сетевые ресурсы.

Круг реальных объектов действительности, предлагаемых студенту для изучения:

Веб-приложение, облачный сервер, контейнер.

Методы изучения реального объекта действительности:

Когнитивные методы: метод эмпатии, метод сравнения, метод исследования, метод гипотез, метод ошибок, метод конструирования теорий.

Креативные методы: метод придумывания.

Методы оргдеятельностного типа: метод рецензий.

Этапы занятия

1. Целеполагание

Преподаватель предлагает студентам самостоятельно ответить на следующие вопросы. Ответы публикуются на форум образовательного портала, чтобы студенты могли видеть ответы друг друга.

  • Чем отличается локальное и облачное развертывание веб-приложения?
  • Какие права должен иметь пользователь сервера для того, чтобы развернуть приложение?
  • Каким образом может быть организован доступ к серверу для организации развертывания?
  • Какие этапы включает в себя процесс развертывания для подготовки веб-приложения к эксплуатации?
  • Как необходимо организовать работу сервера для поддержки одновременной работы нескольких таких приложений?

В процессе обсуждения полученных ответов, вместе с преподавателем студентам предлагается выделить и озвучить возникшие в процессе ответов на вопросы дилеммы и противоречия.

Каждому студенту предлагается выбрать, какую из дилемм он хотел бы разрешить в ходе данного занятия.

2. Создание собственного образовательного продукта.

Студентам предлагается самостоятельно выполнить эвристическое задание в группах по 2-3 человека.

Открытое задание «МЕСТА ХВАТИТ ВСЕМ»

Как известно, вычислительной мощности современного сервера вполне достаточно для работы нескольких приложений одновременно. Благодаря этому, новую функциональность для существующих систем можно реализовывать в виде отдельного веб-приложения с собственным API, не изменяя существующее.

Представьте, что вам поступил заказ на расширение функциональности существующей домашней страницы сайта проекта «Цифровой факультет» (http://digital-faculty.bsu.by/) путём добавления нового виджета – отдельного компонента (например, для демонстрации календаря событий, прогноза погоды, облака тегов и т.п.), для которого необходимо спроектировать серверную часть. Предложите свой тип виджета и спроектируйте архитектуру серверной части для предоставления основных данных, необходимых для его отображения, посредством RESTful API. Учтите, что полученный API должен являться самостоятельным серверным приложением, которое необходимо развернуть на имеющемся физическом сервере проекта.

В процессе выполнения задания:

  • Предложите тип виджета, который вы бы хотели видеть на домашней странице сайта проекта «Цифровой факультет».
  • Определите, какая информация требуется для отображения этого виджета.
  • Предложите набор REST-ресурсов (в виде списка поддерживаемых запросов), которые предоставляют необходимую для отображения информацию. При необходимости воспользуйтесь памяткой по REST.
  • Спроектируйте серверное приложение, реализующее предложенный REST API.
  • Обоснуйте выбор стека технологий.

 

3. Демонстрация и сравнение полученного образовательного продукта

На данном этапе студентам предлагается представить свои решения в виде краткого сообщения на форуме образовательного портала и устного выступления. Обсуждение и ответы на вопросы проводятся с активным участием преподавателя.

Опишите полученное приложение, а также сценарий его подготовки к развертыванию на существующем физическом сервере. Добавьте описание своего приложения на форум.

Сообщение на форуме должно содержать:

  • описание предлагаемого виджета с указанием источников информации и необходимых программных средств для ее получения;
  • набор REST-ресурсов (в виде списка поддерживаемых запросов), которые предоставляют необходимую для отображения информацию;
  • файлы с спроектированным серверным приложением;
  • обоснование выбора стека технологий;
  • (необязательное) файл с визуальным представлением предлагаемого виджета.

Представьте решение своей группы в виде устного доклада.

Проанализируйте выложенные решения одногруппников и проголосуйте за виджеты, которые вы бы разместили у себя на сайте (максимум 3 виджета, за свой голосовать можно). Обоснуйте свой выбор перед одгруппниками и преподавателем.

 

После рассмотрения всех решений студентам предлагается совместно ответить на следующие вопросы:

  • Какое из предложенных приложений обрабатывает запросы на портах по умолчанию (80/443)?
  • Являются ли совместимыми технологии, которые были выбраны для разработки приложений (например, поддерживают ли они все одну и ту же ОС сервера, не зависят ли разные приложения от разных версий одной и той же библиотеки, и т.п.)? Требуются ли предложенным приложениям общие сервисы (например, общий сервер СУБД одного и того же типа)?
  • Каким образом между всеми приложениями должны распределяться ресурсы сервера в случае их нехватки? Можно ли «пожертвовать» работоспособностью вашего виджета?

В случае отсутствия противоречий преподаватель предлагает свой виджет, основанный на принципиально несовместимой технологии (например, .NET Framework 4, работающий только под управлением ОС Windows, или язык программирования Perl, работающий только под управлением ОС Linux), для поддержания дискуссии.

Для рассмотрения вопросов обеспечения информационной безопасности преподаватель предлагает обсудить следующую ситуацию:

Представьте, что вместо выполнения этого задания вам втайне было поручено разработать умышленно вредоносное приложение, целью которого является истощение ресурсов сервера, попытка доступа к файловой системе и памяти других работающих на сервере приложений с целью нарушения их работоспособности. Подумайте, каким образом могут быть реализованы эти атаки. На форуме в комментариях к своему приложению опишите, к каким из атак уязвимо ваше приложение. Дополните списки атак ваших одногруппников. Предложите способы устранения выявленных уязвимостей для вашего приложения и для всего сервера в целом.

Примеры виджетов, предложенных во время занятия

4. Открытое задание на обобщение темы занятия

Далее студентам предлагается выполнить эвристическое задание на обобщение темы занятия. Работа осуществляется в тех же группах. Результаты представляются в виде устного доклада с дискуссией.

 «ИЗОЛЯЦИЯ И ДИСТАНЦИРОВАНИЕ»

Как следует из предыдущего задания, организация одновременной работы сторонних приложений на сервере является нетривиальной задачей – необходимо реализовать доступ к каждому из приложений, распределить ресурсы и изолировать приложения друг от друга.

Представьте, что вы – администратор физического сервера проекта «Цифровой факультет». В определенный момент несколько сторонних разработчиков, незнакомых вам и потенциально имеющих злой умысел, просят вас развернуть свои небольшие серверные веб-приложения для предоставления данных к новым виджетам для главной страницы сайта проекта «Цифровой факультет».

  • Предложите способ организации маршрутизации запросов к отдельным приложениям.
  • Рассмотрите паттерн «Reverse Proxy» и возможности веб-сервера nginx для решения этой задачи, сравните их с вашим решением.
  • Предложите способ распределения ресурсов между приложениями.
  • Предложите различные стратегии перезапуска приложений в случае их отказа.
  • Предложите способ изоляции приложений друг от друга с точки зрения их программных зависимостей
  • Предложите способ изоляции приложений друг от друга с точки зрения информационной безопасности.
  • Рассмотрите механизм контрольных групп Linux и технологию контейнеризации Docker для решения описанных выше задач, сравните их с вашим решением.
  • Порассуждайте, каким образом инфраструктура сервера может быть масштабирована при получении дополнительных средств, на которые закуплен ещё один физический сервер.
  • Результаты выполнения задания представьте в виде устного доклада.

5. Рефлексия

    1. Для подведения итогов занятия студентам предлагается ответить на вопросы на образовательном портале.

      Ответьте на следующие вопросы:

      1) Что является для вас главным результатом проведенного занятия? Какие усилия вы приложили, чтобы его достичь?

      2) Перечислите трудности, с которыми вы столкнулись при изучении темы. Как вы преодолевали эти трудности?

      3) Была ли полезна работа в команде?

      4) Пригодились ли вам в процессе выполнения задания навыки в смежных областях? Какие навыки вы можете назвать? В каких областях, по вашему мнению, у вас оказалось недостаточно знаний?

      5) Напишите ваши предложения по улучшению занятия.

      Фрагменты рефлексии студентов

    6. Оценивание

      1. Критерии оценивания

        • Аргументированность решений в основном задании (0-2);
        • Участие в обсуждении проблем, общих для всех студентов, выполняющих задание (0-2);
        • Критерии выбора стека технологий (0-1);
        • Оригинальность предложенных подходов (0-1);
        • Учет всех функциональных требований к описанным системам (0-2);
        • Четкость и последовательность при сопоставлении своего решения с известными в задании на обобщение (0-2).

         

      7. Выводы и рекомендации по использованию методической разработки

        1. Данное занятие было проведено с магистрантами 2-го курса cпециальностей «Информационная безопасность» (профилизация «Аппаратно-программные средства защиты информации») и «Радиофизика» (профилизация «Компьютерная безопасность»). Занятие проводилось с использованием образовательного портала edurfe.bsu.by для публикации ответов студентов и организации перекрестного обсуждения. Все студенты отметили положительный эффект от командной работы.

          На этапе целеполагания для студентов сформулированы вопросы, позволяющие оценить уровень знаний в предметной и смежных областях. Обсуждение данных вопросов и выделение существующих дилемм позволяет восполнить пробелы, сконцентрировать внимание и сориентировать студентов на дальнейшую работу. Образовательным продуктом занятия является разработанный виджет. При этом задания построены так, что студентам предлагается проанализировать свои образовательные продукты с разных точек зрения: разработчика, пользователя, системного администратора, злоумышленника и т.д. Альтернативным вариантом проведения занятия является разделение студентов не на равноценные группы, а в соответствии с определенной ролью, то есть несколько групп занимаются разработкой виджетов, одна группа представляет злоумышленников и пытается найти изъяны в предложенных решениях, а другая группа представляет администраторов системы.

          Данная методическая разработка может быть использована в высших учебных заведениях в процессе преподавания дисциплин, связанных с администрированием и проектированием облачных информационных систем. Представленные в разработке задания можно использовать для проведения занятий как в очном, так и в дистанционном формате.

        Автор: Головатая Е.А.