Диссертация (1148251), страница 6
Текст из файла (страница 6)
Также она оптимальна для заказа виртуального сервера иразвертывания на нем своей базы данных, если нет необходимости вдорогостоящей (но стабильной и надежной) облачной базе данных от провайдера.Итак, услуги по модели IaaS оказываются большим числом провайдеров,что приводит к её минимальной стоимости для клиента. Однако надо учитывать,что при этом он освобождается только от сложностей управления оборудованием,но не администрирования своих виртуальных серверов.
В случае, если нафизическом сервере откажет процессор, диск или память, провайдер их заменит,но вся настройка и сопровождение операционной системы, базы данных и вебсервера лежит на плечах клиента. Объединение своих виртуальных серверов длясоздания отказоустойчивых веб-приложений с распределением нагрузки (webfarms),установкаобновленийприкладногопрограммногообеспечения,антивирусная защита — всё это лишь примеры проблем, которые неявноповышают конечную стоимость облачного решения.25При модели PaaS (Platform as a Service) клиент развертывает свои вебприложения на аппаратной и программной инфраструктуре (операционнаясистема, веб-сервер, среда выполнения, различные каркасы приложений)провайдера. Клиент сохраняет полный контроль над своими приложениями иможет частично конфигурировать платформу, например, через веб-портал илипеременныеокружения.Такимобразом,провайдерберетнасебяадминистрирование всей облачной инфраструктуры, в то время как клиентсосредоточен только на своем приложении.
Именно такой подход уменьшаетвременной разрыв между разработкой веб-приложения, его тестированием ипубликацией в облаке, устраняя одновременно неспецифичные для бизнесазатраты на поддержание инфраструктуры. В качестве примера можно привести“Web Apps” — PaaS платформа Microsoft Azure, где клиент имеет возможностьвоспользоваться шаблонами готовых веб-приложений (CMS, интернет-магазины,блоги и пр.), а потом редактировать их прямо в облаке (с помощью Visual StudioOnline [102]), связав с такими облачными сервисами, как кэширование, базаданных, очередь сообщений, мониторинг, диагностика и пр.В качестве другого примера модели PaaS, стоит упомянуть HDInsight —платформу для развертывания в облаке Microsoft Azure высокопроизводительныхприложений, созданных на каркасе Apache Hadoop [12].
Его задачей являетсяраспределение элементарных задач по узлам кластера, а потом сведение их вместедля получения результата (парадигма MapReduce [58]). Со стороны платформыAWS аналогом является Amazon Elastic MapReduce [6]Несмотря на удобство модели PaaS, абстрагированность от уровняинфраструктуры приводит к ограничению клиента в выборе инструментовразработки. Например, Web Apps не поддерживает веб-сервисы на языках C++,Perl или Smalltalk. В другой технологии — Google AppEngine, облачном сервисехостинга веб-приложений на серверах Google, поддерживаются только языкиPython, Java, Go или PHP. Более того, модель PaaS позволяет реализовать тольковнешнююсторону(фронтенд,front-end)веб-приложения,оставляядлявнутренней стороны (бэкенда, back-end) необходимость заказывать виртуальные26серверы по модели IaaS.
К бэкенду можно отнести отдельные приложения,которые перерабатывают каким-то образом данные для сайта: архивирование,индексирование, конвертация, построение отчетов и т.п. и не взаимодействуют сконечным пользователем.Поэтому совместное применение моделей PaaS и IaaS далеко не редкость, аналичие API по управлению облачной конфигурацией дает возможностьприменять услуги от разных провайдеров. К примеру, для фронтенда облачногосайта с музыкой можно применить Azure Web Apps (PaaS), а сервер дляиндексирования авторов, треков и альбомов (на основе Java-приложенияElasticSearch [97]) будет на отдельной виртуальной машине Microsoft Azure (IaaS),в то время как хранилищем выбрать (из-за низкой стоимости) Google CloudStorage [37, 127]Бизнес-модель SaaS (Software as a Service) — это модель аренды вебприложения,котораяподразумеваетегоразвертываниенаоблачномоборудовании компании разработчика [119].
Множество пользователей работаютс этим приложением через Интернет или терминальный доступ. С экономическойточки зрения такая модель наиболее выгодна для обеих сторон: разработчикиподдерживают одну версию программного обеспечения на наиболее подходящемоборудовании, распределяя её по множеству пользователей. Клиенты в своюочередь экономят на техническом облуживании, получая на привычномустройстве необходимый сервис в течение только такого срока, когда это реальнонеобходимо.Предсказуемостьрасходов,защитаотнелицензионногоиспользования и экономия на масштабах делают SaaS всё более популярноймоделью распространения такого программного обеспечения, как почта, офисныередакторы (Google Docs), системы управления и создания сайтов (CRM) и дажесреды разработки (Visual Studio Online).
Однако модель SaaS не применима вслучае таких типов программного обеспечения, которые требуют индивидуальнойадаптации под требования пользователя (напр. системы автоматизации торговли),взаимодействиясоспециализированнымоборудованиемзаказчика(автоматизация производства), возможность работы без Интернет-соединения27(например, сбор данных с датчиков), а также критичны к вопросам контроля зараспространением личных данных (государственные службы). Без доработки подиндивидуальные требования и размещения программного обеспечения изуказанных областей в частных облаках заказчика эти системы будут неприменимы для ряда клиентов, но в этом случае нарушается требование SaaS“одна версия — для всех клиентов”.Как уже упоминалось, облачные технологии призваны обеспечитьпостоянную доступность веб-сервисов и приложений.
Однако для этогоприложения должны быть спроектированы с возможностью горизонтальногорасширения, когда нагрузка распределяется по двум и более узлам. Только в этомслучае провайдер облачной инфраструктуры может гарантировать доступность в99.95%случаях[62].Очевидно,чтозасозданиеотказоустойчивогораспределенного приложения, использующего различные компоненты, сервисы иоблачную инфраструктуру, приходится платить большей сложностью разработки:одновременная работа нескольких экземпляров приложения, разделение междуними сеанса и общих данных, служба разделяемого кэширования, очередьсообщений и пр.
К этому необходимо добавить стратегии обработки отказов (т.к.обращение к каждой облачной службе может закончиться отказом в 5 случаях из10000) и тогда становится понятно, что исчерпывающее тестирование такогоприложения будет нетривиальным, соответственно критически важно вовремяобнаруживать проблемы и сбои. Сервис мониторинга по модели MaaS (Monitoringas a Service) ответственен за проверку доступности различных облачныхприложений и веб-сервисов, а также сбор различной статистики по ихпроизводительности.
По своей природе этот сервис должен обладать повышеннойнадежностью, устойчив к нагрузкам и предоставлять собранные данные вудобном виде через Интернет. Облачные провайдеры предоставляют такиесервисы мониторинга в готовом виде, напр. служба мониторинга Microsoft Azure[19].Для ряда облачных приложений, работающих с большими массивамиданных (big data), большое значение имеет пропускная способность сетевого28канала, чтобы снизить временные задержки на обмен данных между узлами. Ксожалению, как и любой облачный ресурс, пропускная способность сетевогоканала должна быть оплачена. Аренда сетевой инфраструктуры по модели NaaS(Network as a Service) позволяет оптимизировать сетевой обмен на уровне сетевыхпротоколов. Зная специфику приложения, можно организовать, например,собственнуюупаковкуданныхвпакеты(in-networkdataaggregation),широковещательный обмен (multicast) данными, маршрутизацию в зависимостиот контента (content-based routing) или даже кэширование на уровне сети (cachingwithin the network) [22].
Более того, сервис по модели NaaS позволяеторганизовывать частные сети (VPN) из разнообразных устройств клиента. Приэтом все, что необходимо клиенту, это наличие доступа через Интернет к серверуоблачного провайдера, который предоставляет всю необходимую аппаратную ипрограммную инфраструктуру. Подписка на этот сервис избавляет клиента отнеобходимостисамостоятельнообеспечиватьбезопасный,надежныйивысокодоступный сетевой канал.Развитием модели SaaS является DaaS (Desktop as a Service), когда рабочийстол пользователя перенесен в облако.
Вместе со всем программным окружением[23]. Таким образом, доступ к нему производится по Интернет с любогодоступного устройства, и его потеря не повлияет на рабочее место пользователя.Сервис RaaS (Recovery as a Service) предназначен для быстроговосстановления всей инфраструктуры и данных предприятия в случае форсмажора [27]. Его отличием от обычного резервного копирования являетсядостаточно короткое время восстановление всей деятельности.Итак, мы установили тот факт, что облачные технологии удовлетворяютпотребности самого широкого числа пользователей: системных архитекторов сосложными требованиями (IaaS, RaaS), прикладных разработчиков (PaaS),наемных сотрудников (NaaS, DaaS) и рядовых пользователей (SaaS).
Любоепрограммное обеспечение, развернутое в облаке и доступное по подписке любомупользователю, неформально называют соответствующим модели XaaS (Any X is aService).29Таким образом, можно сделать некоторые выводы о достоинствах облачныхвычислений:1) максимально возможная отказоустойчивость;2) снижение экономических затрат на оборудование;3) высокая производительность при обработке запросов и данных;4) пониженные требования к производительности пользовательскихустройств;5) низкая вероятность потерять пользовательские данные, хранящиеся воблаке.Однако, при всех вышеуказанных достоинствах, у облачных вычисленийесть и недостатки:1) ограничение доступа к оплаченному сервису или собственнымданным, а также возможность их передачи третьей стороне (напр.