Отличия серверных и облачных технологий

В статье рассматриваются облачные вычисления (англ. cloud computing), в информатике - это модель обеспечения повсеместного и удобного сетевого доступа по требованию к общему пулу (англ. pool) конфигурируемых вычислительных ресурсов (например, сетям передачи данных, серверам, устройствам хранения данных, приложениям и сервисам - как вместе, так и по отдельности), которые могут быть оперативно предоставлены и освобождены с минимальными эксплуатационными затратами и/или обращениями к провайдеру.

Потребители облачных вычислений могут значительно уменьшить расходы на инфраструктуру информационных технологий (в краткосрочном и среднесрочном планах) и гибко реагировать на изменения вычислительных потребностей, используя свойства вычислительной эластичности (англ. elastic computing) облачных услуг [1].

Постановка проблемы. Облачные вычисления становится самой важной методикой в интернете. Облачные вычисления (англ. cloud computing) - это модель обеспечения повсеместного и удобного сетевого доступа по требованию к общему пулу (англ. pool) конфигурируемых вычислительных ресурсов (например, сетям передачи данных, серверам, устройствам хранения данных, приложениям и сервисам - как вместе, так и по отдельности), которые могут быть оперативно предоставлены и освобождены с минимальными эксплуатационными затратами и/или обращениями к провайдеру [1]

Потребители облачных вычислений могут значительно уменьшить расходы на инфраструктуру информационных технологий (в краткосрочном и среднесрочном планах) и гибко реагировать на изменения вычислительных потребностей, используя свойства вычислительной эластичности (англ. elastic computing) облачных услуг.

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

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

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

В условиях такой трансформации Microsoft поставила перед собой цель выпустить настоящую "облачную" операционную систему - платформу масштаба уже не единичного сервера, но центра обработки данных (ЦОД) с единообразными подходами и инструментами для управления и разработки приложений в частном, партнерском, глобальном облаке и гибридных вариантах. По аналогии с тем, как Microsoft перепридумала клиентскую ОС Windows, серьезному переосмыслению подверглась и парадигма серверной ОС Windows Server. Ключевыми строительными блоками от компании Microsoft являются Windows Server и Windows Azure.

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

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

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

Программное обеспечение как сервис - модель предоставления программного обеспечения как сервиса (Software as a Service, SaaS) обеспечивает возможность аренды приложений. Программное обеспечение как сервис включает платформу как сервис и инфраструктуру как сервис. Примером приложения как сервиса может быть Business Productivity Online Suite.

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

Потребителями данного типа сервисов являются конечные пользователи, которые работают с приложениями, предоставляемыми в "облаке". Соглашение о предоставлении сервисов (SLA) обычно покрывает такие характеристики сервисов, как их доступность (uptime) и производительность. Возможности настройки приложений под нужды потребителей минимальны или вообще отсутствуют, их уровень диктуется требованиями рынка или возможностями поставщиков таких приложений.

Оплата конечного сервиса, как правило, производится ежемесячно и рассчитывается на основе количества пользователей приложения.

Платформа как сервис - модель предоставления платформы как сервиса (Platform as a Service, PaaS) предоставляет возможность аренды платформы, которая обычно включает операционную систему и прикладные сервисы. Платформа как сервис облегчает разработку, тестирование, развертывание и сопровождение приложений без необходимости инвестиций в инфраструктуру и программную среду. Платформа как сервис также включает и инфраструктуру как сервис. Примером платформы как сервис может служить Windows Azure.

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

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

  • • Время работы приложения.
  • • Объем данных и количество операций с данными (транзакций).
  • • Сетевой трафик.

Инфраструктура как сервис - модель предоставления инфраструктуры (аппаратных ресурсов) как сервиса (Infrastructure as a Service, IaaS) предоставляет возможность аренды таких инфраструктурных ресурсов, как серверы, устройства хранения данных и сетевое оборудование. Управление всей инфраструктурой осуществляется поставщиком сервисов, а потребитель управляет только операционной системой и установленными приложениями. Такие сервисы обычно оплачиваются по их фактическому использованию и позволяют пользователю увеличивать или уменьшать объем используемой инфраструктуры через специальные порталы, предоставляемые поставщиками сервисов.

Здесь потребителями являются владельцы приложений, ИТ-специалисты, подготавливающие образы ОС для их запуска в сервисной инфраструктуре. Облачная платформа предоставляет сервисы для запуска виртуальных машин и сервисы хранения данных. Соглашение о предоставлении сервисов (SLA) обычно покрывает такие характеристики сервисов, как доступность виртуального сервера, время развертывания образа ОС. В данной сервисной модели могут быть запущены практически любые приложения, установленные на стандартные образы ОС.

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

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

Из рисунка 1 видно, что при развертывании собственной инфраструктуры вы управляете всеми ее компонентами - от сетевых ресурсов до выполняющихся приложений. Тогда как при использовании модели IaaS вы можете контролировать такие компоненты, как среда исполнения кода, безопасность и интеграция, базы данных, и т.п. При переходе к модели PaaS, все компоненты платформы предоставляются как сервисы с ограниченными возможностями для управления ими. Это сделано, чтобы предоставить в распоряжение потребителей оптимально сконфигурированную платформу, не требующую дополнительных настроек.

Исторически операционные системы линейки Windows Server - это ОС, предназначенные для управления аппаратным обеспечением серверов, обладающие требуемыми для этого функциональными особенностями. Также эти серверные ОС содержат специализированные службы (программные компоненты), предназначенные для организации, мониторинга и управления ИТ-инфраструктурой предприятия, начиная от управления адресным пространством протокола IP и учетными записями пользователей и заканчивая организацией отказоустойчивых сетевых сервисов.

Говоря "облачная операционная система", Microsoft понимает под этим четыре группы требований к серверной ОС:

  • • Преобразование ЦОД. Необходимо иметь возможность взять все ресурсы ЦОД (хранение, сеть, вычислительные мощности), разделить их между облачными службами, обеспечить возможность высокой загрузки (эффективного использования) этих ресурсов. Нужно иметь возможность гибкого масштабирования, то есть для любой конкретной службы необходимо иметь возможность выделения ей дополнительных ресурсов, но только на то время, когда они ей нужны. Необходимо иметь возможность строить инфраструктуру, работающую в режимах always-up и always-on (всегда включено и всегда доступно). Необходимо иметь возможность автоматизирования задач по управлению ЦОД посредством API и порталов самообслуживания.
  • • Необходимо иметь возможность размещения современных приложений поверх такой инфраструктуры. Нужно иметь большой набор работающих служб, позволяющих строить социальные, мобильные приложения и приложения для обработки сверхбольших массивов данных, т.?е. поддержать все современные тренды. Предприятиям необходимо иметь гибкость в инструментарии, в среде разработки, чтобы быстро строить эти приложения. Необходимо иметь быстрый цикл разработки, который объединял бы разработчиков и управленцев.
  • • Microsoft ставил перед собой задачу поддержать тенденцию BYOD (bring your own device = приноси свое собственное устройство) на предприятиях, в то же время обеспечивая необходимые контроль и управление со стороны ИТ- службы.
  • • Необходимо было поддержать возможности по обработке и хранению любых массивов данных с любой парадигмой хранения: как SQL, так и NoSQL, совместно обрабатывать данные предприятия и данные из внешних структурированных источников, создавая новые возможности.

Результатом явилось построение облачной операционной системы и платформы. Новая ОС может быть развернута в своем ЦОД, можно использовать ее как услугу из партнерского ЦОД или из глобальной Windows Azure; при этом обеспечивается единый подход к виртуализации, инфраструктуре управления, инфраструктуре разработки приложений, управлению данными и сервисами идентификации.

Windows Azure - это операционная система Microsoft, предоставляемая как сервис. За счет использования экземпляров Windows Server потребители получают возможность запускать различные сервисы, которым обеспечивается эластичность, масштабируемость, безопасность и высокая доступность. Помимо вычислительных ресурсов Windows Azure также предоставляется ряд масштабируемых сервисов для хранения данных в виде таблиц, бинарных данных и сообщений, которые мы рассмотрим ниже.

Windows Azure обеспечивает автоматическое управление сервисами, гарантирует высокую доступность экземпляров Windows Server и их автоматическое обновление. Физически, платформа Windows Azure располагается на компьютерах в центрах обработки данных, создаваемых, развиваемых и поддерживаемых самой компанией Microsoft. В настоящее время такие центры расположены в Северной Америке, Европе и Юговосточной Азии.

Платформа Windows Azure создана на основе технологий виртуализации, схожих с технологией Windows Server Hyper-V, но, в отличие от обычного хостинга виртуальных машин управляется с помощью специального инфраструктурного слоя, называемого Windows Azure Fabric Controller.

Задачей Windows Azure Fabric Controller является организация массива виртуализированных экземпляров Windows Server в виде одной логической единицы вычислений и автоматическое управление ресурсами, балансировкой нагрузки, устойчивостью к сбоям, георепликациями и всем жизненным циклом приложений и сервисов, выполняющихся на платформе Windows Azure. Помимо обеспечения управления вычислительными ресурсами, Windows Azure Fabric Controller также предоставляет доступ пользователям и приложениям к самой платформе - Windows Azure.

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

Вычислительные сервисы - представляют собой контейнеры для приложений с поддержкой современных технологий разработки, включая .NET, Java, PHP, Python, Ruby on Rails и нативный код.

Сервисы хранения данных - масштабируемая распределенная система хранения данных, поддерживающая ряд моделей хранения, включая табличные структуры, бинарные объекты, асинхронные очереди сообщений, традиционные файловые системы и сети распределения контента (CDN, content distribution networks).

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

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

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

Как мы отметили выше, частью сервисов, предоставляемых платформой Windows Azure, являются вычислительные сервисы, иначе называемые "контейнерами для приложений". Таким образом, Windows Azure служит средой для разработки, хостинга и управления различными сервисами. Она предоставляет прикладной контейнер, в котором располагается код и логика облачного приложения. Прикладная среда схожа с прикладной средой, предоставляемой серверной операционной системой Microsoft Windows Server.

Экземпляр в Windows Azure представляет собой единицу развертывания и отражается на ту или иную виртуальную машину, для которой поддерживается ряд предопределенных конфигураций. Элемент платформы, называемый Windows Azure Fabric Controller, отвечает за физическое развертывание необходимых виртуальных машин. Все, что требуется от пользователя - указать необходимое число экземпляров виртуальных машин, которые должны быть развернуты для данного сервиса. Пользователям доступны такие функции, как ручной запуск и останов экземпляров, управление числом экземпляров, тогда как Windows Azure Fabric Controller обеспечивает автоматическое управление жизненным циклом экземпляров виртуальных машин, включая их перезапуск, создание резервных копий, копирование и т.п.

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

В Windows Azure поддерживается и модель развертывания виртуальных машин - эта опция обеспечивает поддержку модели инфраструктуры, предоставляемой как сервис (IaaS). Эта модель предназначена, в первую очередь, для сервисов, которым нужна интеграция с операционной системой Windows Server. Данная модель обеспечивает больший контроль над средой, в которой выполняется хостинг сервиса, и может использоваться, например, для хостинга существующих сервисов.

Цель исследования заключается в том, что исходя из сложившейся ситуации, исследовать существующие отличия серверных и облачных технологий. На базе программ от компании Microsoft - Windows Server и Windows Azure.

Основные результаты исследования. Для иллюстрации различий платформы Windows Azure и Windows Server мы используем диаграмму многослойной архитектуры приложения. Вспомним, что разделение на уровни - это с одной стороны хорошая практика проектирования, а с другой - классический способ визуализации архитектуры с целью упрощения задачи проектирования. Как правило, выделяют следующие логические уровни приложения:представление, сервисы, бизнес-логика, доступ к данным, хранилище. Наряду с уровнями рассматривают общие для всех уровней компоненты, обеспечивающие взаимодействие, безопасность и управление (рис. 1) [6].

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

Облачную платформу удобно представить в виде набора инфраструктурных элементов или строительных блоков, отображаемых на логическую архитектуру приложения, как представлено на рисунке 2.

Расположение блока на определенном логическом уровне означает, что данный блок реализует функционал этого уровня. Например, расположение веб-роли на уровне бизнес-логики означает, что веб-роль реализует бизнес-логику приложения. Заметим, что веб-роль, прикладная роль и виртуальная машина (VM-роль) относятся к контейнерным блокам, так как позволяют размещать прикладной код. Каждый блок может быть использован по отдельности или в совокупности с другими блоками. Совокупность блоков формирует структуру физической архитектуры приложения. Каждый блок обладает собственным набором паттернов использования. Виртуальная машина является универсальным блоком, позволяющим разместить в облачной инфраструктуре практически любое серверное приложение. Такой подход к проектированию позволяет сконцентрироваться на решаемой задаче и структурной составляющей архитектуры [5].

Используя рисунок 3, можно сравнить серверный вариант архитектуры с приведенным выше вариантом Windows Azure Platform.

Чтобы провести более точные аналогии, приведем таблицу 1, позволяющую сравнить технологии платформы Windows Azure и Windows Server. Подчеркнем, что это не прямые аналогии. Например, сервисная шина (Service Bus) не имеет прямого аналога на платформе Windows Server, однако, подобные функции можно реализовать, используя BizTalk Server или Windows Communication Foundation. В ряде случаев, аналогия является почти прямой, как например, при сравнении веб-роли и Internet Information Server или SQL Azure и SQL Server [6].

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

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

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

Для объяснения экономической составляющей облачных подходов к вычислениям часто используется аналогия с услугами водо- или электроснабжения, предоставляемыми в развитых инфраструктурах по соответствующим коммунальным сетям, легкодоступными и оплачиваемыми по мере потребления, в сравнении с разработкой каждым потребителем собственного водозабора или монтированием собственной электроустановки [3].

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

  • • Постоянный мониторинг состояния всех компонентов инфраструктуры, таких как сетевое оборудование, серверы, состояние виртуальных машин.
  • • Приложение может явно сообщить облачной инфраструктуре о проблемах с помощью программного интерфейса [5].

 

Список литературы:

  1. Интернет статья "Облачные вычисления" // wikipedia.org
  2. Интернет статья "Введение в Cloud Computing" // http://jeck.ru
  3. Martin R. J., Hoover N. Guide To Cloud Computing // Information Week, 2008.
  4. Интернет источник "Internet Information Services (IIS)" // http://www.iis.net/
  5. Интернет источник "Библиотека Microsoft" // http://msdn.microsoft.com/library
  6. Интернет источник "Официальное руководстве Microsoft" // http://apparchguide.ms/
Год: 2014
Город: Караганда
Категория: Экономика