Cloud Computing
Cloud computing
Небольшое отступление : термин "облачные" возник из способа представления Интернета, как облака на различных диаграммах, иллюстрациях и схемах.
Найти человека, чья работа или интерес связан со сферой информационных технологий, ничего не слышавшего про "облачные вычисления" будет крайне затруднительно.
Эта тема является одной из самых обсуждаемых в последнее время.
Такой ажиотаж объясняется просто - появилось решение, способ, позволяющий существенно сократить расходы на ИТ-услуги, отказаться от инвестирования в инфраструктуру и расходов, связанных с ее сопровождением и модернизацией, свести время развертывания приложения к минимуму.
Существует три основные модели расположения приложений:
Наиболее привычной и традиционной моделью расположения приложения является, безусловно, на стороне заказчика, локально, в рамках его инфраструктуры.
Основной сложностью данной модели являются существенные затраты на формирование ИТ-инфраструктуры, отвечающей требованиям бизнеса и используемых приложений, а также затраты, связанные с ее сопровождением и модернизацией.
В качестве положительного момента можно отметить, что инфраструктура, аппаратное и программное обеспечение полностью подконтрольны заказчику.
Хостинг. Данная модель развертывания приложений получила развитие в связи с распространением глобальной сети и увеличением ее роли в профессиональной деятельности человека. Ранее такая модель называлась Application Service Provider (ASP), теперь - Software as a service (SaaS).
Облачные технологии и виртуализация
Одним из положений, на котором основывается "облачный" подход, является положение о неравномерности запросов к ресурсам со стороны клиента. Для сглаживания этой неравномерности между аппаратными ресурсами и middleware помещается слой виртуальных серверов.
Таким образом, балансировка нагрузки осуществляется как средствами программного обеспечения, так и средствами распределения виртуальных серверов по реальным.
Инфраструктура, как сервис (Infrastructure as a service, IaaS)
Как правило, под этим понимают предоставление компьютерной инфраструктуры в форме виртуализации, как сервиса согласно концепции облачных вычислений. Иными словами - это возможность арендовать инфраструктурные ресурсы (сетевое оборудование, устройства хранения, серверы).
Таким образом, IaaS можно представить, как сочетание:
- Аппаратных средств.
- Операционных систем и системного программного обеспечения.
- Связующего программного обеспечения.
Непосредственное управление всей инфраструктурой осуществляется поставщиком услуг. Клиент, со своей стороны управляет операционной системой и установленным ПО. Обычно в зависимости от нужд заказчика, меняется и объем используемой инфраструктуры.
Подход IaaS избавляет компании от необходимости поддержки "сложных" инфраструктурных решений (центры обработки данных, сетевая инфраструктура), кроме того, уменьшаются и соответствующие издержки.
Облачная платформа предоставляет сервисы для запуска виртуальных машин и сервисы хранения данных.
Таким образом, к особенностям IaaS можно отнести:
- виртуализацию (по факту, покупку аппаратных мощностей заменит покупка серверного времени, дискового пространства и сетевой пропускной способности).
- интегрированные системы управления - единая платформа для управления различными типами оборудования.
- возможность использования готовых инфраструктур, на основе проверенных архитектур.
Платформа, как сервис (Platform as a service, PaaS)
Платформа, как сервис - это возможность аренды платформы, которая обычно состоит из операционной системы и прикладных сервисов. Такая платформа представляет собой комплексное решение для разработки, тестирования, развертывания и поддержки приложений. PaaS также включает в себя и IaaS.
К особенностям PaaS можно отнести:
- модель оплаты "pay as you go" - услуга оплачивается только тогда, когда необходима.
- масштабируемость - количество выделяемых ресурсов зависит от количества обслуживаемых пользователей.
- отказоустойчивость и безопасность - не требуют дополнительных затрат от компании, поскольку уже реализованы в PaaS.
- виртуализация.
- интегрированная платформа разработки, тестирования, развертывания и сопровождения приложений.
- доступность - для использования PaaS необходимо только подключение к Internet.
Windows Azure
Windows Azure - представляет собой Windows-платформу компании Microsoft, предоставляемую, как сервис (PaaS), развернутый на серверах и сопутствующий инфраструктуре дата-центров компании и имеющий доступ к Интернет. Т.е., Windows Azure - операционная система, предоставляемая, как сервис.
При использовании Windows Azure пользователи получают возможность запускать различные сервисы, при этом платформа обеспечивает масштабируемость, безопасность и доступность.
- добавляет возможности веб-служб существующим пакетным приложениям;
- позволяет создавать, изменять и распространять приложения через Веб при наличии минимальной IT-инфраструктуры;
- предоставляет сервисы хранения большого количества данных, пакетной обработки и высокопроизводительных вычислений;
- обеспечивает возможности оперативного тестирования и распространения веб-служб при минимальных затратах;
- уменьшает издержки, связанные с содержанием IT-инфраструктуры;
- упрощает процесс управления IT-инфраструктурой.
В основе Windows Azure лежат технологии виртуализации, платформа управляется при помощи инфраструктурного слоя Windows Azure Fabric Controller, обеспечивающего развертывание служб и приложений, управление нагрузкой и ресурсами, о чем уже говорилось в "лекции 4" .
Также введем понятие экземпляра - в Windows Azure это единица развертывания, отражающая виртуальную машину с рядом предопределенных конфигураций. При этом Azure Fabric Controller отвечает за физическое развертывание виртуальных машин. Со стороны пользователя требуется лишь указать необходимое число экземпляров виртуальной машины, развертываемых для определенного сервиса.
Жизненным циклом экземпляров управляет Azure Fabric Controller, пользователь, в свою очередь, может запускать и останавливать экземпляры.
Роли Windows Azure
Как правило, сервис Windows Azure имеет более одного экземпляра. Каждый экземпляр может выполнять как всю логику приложения, так и ее часть. При этом разработчик контролирует число и типы ролей.
Можно провести аналогию между ролями в Windows Azure и стандартными типами проектов в Visual Studio. В данном случае экземпляр Windows Azure представляет собой отдельный проект.
- Веб-роль (web role)
- Прикладная роль (worker role)
Основной задачей веб-роли является обеспечение поддержки протоколов HTTP и HTTPS. Размещается роль на базе IIS. Таким образом веб-роль, фактически, соответствует ASP.Net проекту Visual Studio, с учетом отличий в сборках приложений и способе конфигурации.
Прикладная роль отвечает за поддержку внешних точек входа через TCP\IP и ряд портов (кроме 80 и 443). Данная роль не размещается на веб-сервере. Продолжая аналогию, эту роль можно сравнить с Windows-сервисами, также она может быть использована для выполнения фоновых задач.
Таким образом, роли в Windows Azure - это "блоки" из которых строится облачное приложение. Экземпляр роли - виртуальная машина с рядом предопределенных характеристик.
VM-роль
VM роль в Windows Azure предназначена для облегчения процесса миграции существующих Windows Server приложений в облачную структуру.
VM-роль предоставляет сервисы на уровне инфраструктуры (IaaS), облегчая процессы контроля и управления инфраструктуры для администраторов и разработчиков.
Отметим, что остальные роли (веб и прикладная) находятся "над" VM -ролью, позволяя тем самым разработчикам, чья деятельность осуществляется на более высоких уровнях абстракции, концентрироваться непосредственно на приложении, а не на ОС, на котором оно базируется.
В отличие от переноса сервисов и отдельных компонентов приложения, VM-роль позволяет перенести приложение целиком, снижая стоимость владения им, за счет предоставления сервисов автоматического управления, обновления и отказоустойчивости.
Таким образом, роль виртуальной машины позволяет создавать пользовательский образ виртуального жесткого диска (на основе Windows Server 2008 R2) и размещать его в облаке.
Фактически VM-роль это виртуальная машина, но обладающая рядом особенностей:
- не поддерживается сохранность образов при аппаратных сбоях;
- каждый сервис может иметь только один внешний IP-адрес;
- невозможен автоматический мониторинг приложений, функционирующих внутри виртуальной машины;
- для обеспечения требуемого уровня доступности требуется наличие двух одинаковых экземпляров виртуальной машины.
Каждая виртуальная машина создается при развертывании прикладных сервисов. Все виртуальные машины располагаются в центрах обработки данных Microsoft.
Термины
Middleware или подпрограммное обеспечение - слой ПО, состоящий из "посредников" между различными компонентами крупного приложения.
Краткие итоги
Строго говоря, концепция облачной обработки данных является результатом эволюции ряда технологий, в том числе, виртуализации.
Более того, облака расширяют возможности виртуализации, с точки зрения сокрытия реальной инфраструктуры. Пользователь работает с "представлением" и "эмуляцией" практически на всех уровнях взаимодействия с ИТ-инфраструктурой.
Более подробно о преимуществах облаков для бизнеса и особенностях построения частных облаков будет рассказано в заключительной лекции настоящего курса.