Программное обеспечение неуклонно движется в сторону облачных технологий. Повсеместное внедрение сетевых технологий и, в частности, сети Интернет приводит к потенциальной возможности постоянного доступа к удаленным ресурсам. Под ресурсами можно понимать хранение данных и их обработку (вычислительные ресурсы). Подобные технологии позволяют обращаться к ресурсам из любой точки мира, при условии наличия доступа к сети.
В процессе обучения на технических специальностях постоянно возникает необходимость использования различного программного обеспечения. Особенно это обостряется на специальностях, связанных с информационными технологиями и вычислительной техникой. Учащиеся либо пользуются выделенной вычислительной техникой организации с предустановленным программы обеспечением, либо пытаются использовать для этих целей свои собственные компьютеры. Не редко можно увидеть на занятиях учащихся со своими ноутбуками. Ресурс каждого такого вычислительного узла ограничен. Возникает проблема нехватки вычислительных ресурсов. Большинство организаций не имеют возможности постоянно модернизировать вычислительную технику. При этом организация не может требовать с учащегося покупки какого-либо оборудования для целей обучения. Что делать, если в организации есть технически «устаревшие» компьютеры, а средств на покупку новой техники не хватает? Это приводит к необходимости использования нового подхода применения вычислительных ресурсов — облачным сервисам.
Облачные технологии позволяют использовать некоторое количество аппаратных средств в качестве общей вычислительной среды. При коммерческом применении облачной технологии выделяют несколько моделей:
‒ SaaS (англ. Software as a Service — программное обеспечение как услуга) — модель, при которой потребителям предоставляется готовое прикладное программное обеспечение. Доступ осуществляется через мобильное приложение или веб-браузер. Эту модель можно применять без облачных технологий.
‒ PaaS (англ. Platform as a Service — платформа как услуга) — модель предоставления облачных вычислений, при которой потребитель получает доступ к использованию заранее подготовленных платформ: операционных систем с предустановленным программным обеспечением и ограниченными аппаратными ресурсами. Доступ зависит от используемой платформы. Возможен доступ к командной строке (SSH), к графической среде (удаленные рабочий стол) или к веб-панели управления.
‒ IaaS (англ. Infrastructure as a Service — инфраструктура как услуга) — модель, при которой потребитель получает возможность самостоятельно динамически по необходимости создавать и использовать виртуальные вычислительные ресурсы, такие, как виртуальные машины, дисковые хранилища, сетевые устройства и т. д.
Любую из этих моделей можно использовать для учебного процесса. Применение зависит от преподаваемой дисциплины и направленности обучения. PaaS является частным случаем применения IaaS. Преподаватель может подготовить образ виртуальной машины средствами IaaS и выделить доступ к ней учащимся как PaaS. Доступ к виртуальным машинам можно осуществить либо с более слабых компьютеров организации, либо с личных устройств обучающихся. Используется сеть организации или сеть интернет.
Программное обеспечение для создания облачных сред можно разделить на два типа: коммерческие разработки частных компаний и открытое программное обеспечение на основе исходных кодов, разрабатываемых сообществами. Коммерческие разработки не тиражируются и используются частными компаниями, такими как Amazon, Google, Microsoft. Эти компании предлагают покупать серверные ресурсы по необходимости их использования по моделям PaaS или IaaS. Компания Microsoft предоставляет возможность создания частной облачной платформы, но из-за высокой стоимости оно нецелесообразно для небольших организаций или организаций, обладающих относительно небольшим количеством вычислительных узлов. Большинство коммерческих провайдеров облачных услуг используют открытое программное обеспечение. Самое популярное на текущий момент программное обеспечение для создания публичного или частного облака — OpenStack. Это набор отдельных открытых программных продуктов, объединяемых для целей создания облачной платформы.
Проект OpenStack не имеет готового дистрибутива для развертывания на аппаратном обеспечении. Есть лишь документация с изложением возможной пошаговой эталонной установки [1]. Установка заключается в последовательной установке отдельных сервисов из которых состоит вся система на отдельные аппаратные узлы. С увеличением количества вычислительных узлов увеличивается количество трудозатрат по вводу такой системы в эксплуатацию.
Существуют различные программные средства автоматического развертывания. Например, компания Canonical Group Ltd, разработчик операционной системы Ubuntu, предлагает программное обеспечение для автоматического развертывания сервисов Openstack. Но данное программное обеспечение требует значительных аппаратных ресурсов и наличия платы управления питанием BMC c IPMI. В персональных компьютерах таких плат не предусмотрено. Поэтому использовать подобное программное обеспечение невозможно [2].
Тем не менее, построить облачную платформу, предоставляющую сервисы инфраструктуры на базе устаревших персональных компьютеров возможно. Были проведены ряд испытаний по созданию вычислительного стенда. Использовались компьютеры с двухядерными процессорами Intel Core2Duo, 4 Гб оперативной памяти, 250 Гб накопители на жестких магнитных дисках. В каждом компьютере было установлено по 2 сетевые карты FastEthernet или GigabitEthernet. В качестве связующего сетевого оборудования использовались 2 коммутатора и 1 маршрутизатор. На данном стенде получилось установить облачную платформу и предоставить доступ к выделяемым виртуальным ресурсам. Для базового функционала были установлены следующие сервисы: Nova, Glance, Cinder, Keystone, Neutron, Horizon, Heat. Для дискового хранилища был выделен отдельный узел с добавлением в него накопителя на жестких магнитных дисках. Увеличение количества оперативной памяти до 8 Гб на узле, выполняющем роль контроллера, позволило значительно увеличить общее быстродействие системы.
Более стабильный вариант повторного запуска системы удалось достичь, перейдя с операционной системы Ubuntu на операционную систему CentOS.
Созданный стенд позволил решить поставленную задачу: построение на базе морально устаревшего аппаратного обеспечения небольшого облачного сервиса, предоставляющего IaaS сервисы. Количество предоставляемых ресурсов пропорционально количеству вычислительных узлов, их ресурсов и быстродействия. Система масштабируется. Она позволяет добавлять или заменять отдельные узлы и используемые сервисы.
Литература:
- OpenStack Installation Guide [Электрон. ресурс] — Режим доступа: https://docs.openstack.org/install-guide/.
- Deploy OpenStack on a cluster of physical machines [Электрон. ресурс] — Режим доступа: https://www.ubuntu.com/download/cloud/build-openstack.