Диссертация (1148251), страница 7
Текст из файла (страница 7)
пополитическим причинам);2) необходимость в наличии постоянного интернет-соединения;3) придоминированииодногооблачногопровайдера,возможнаситуация крупномасштабного сбоя многих сервисов.В качестве наглядного примера рассмотрим две конкурирующие междусобой платформы облачных вычислений — Amazon AWS и Microsoft Azure.1.2 История развития облачных технологий (Amazon AWS и MicrosoftAzure)Сайт Amazon.com является ведущей розничной торговой площадкой в мире.Появившись в начале “эры доткомов” (в 1994 г.), компания Amazon организовалапродажу книг и печатной продукции через сайт. За счет отсутствия затрат нааренду торговых площадей и сопутствующих традиционным оффлайн-магазинамрасходов, Amazon сразу же смогла предложить конкурентные цены конечным30покупателям.
Сконцентрировавшись на инвестициях в свой сайт, расширенииассортимента и совершенствовании системы логистики, Amazon смогла пережить“крах доткомов” и преуспеть. Сейчас компания имеет сайты с локализованнойпродукцией для 15 стран, разрабатывает собственную линейку устройств,доставляет товары множества категорий по всему миру. Показателями её успеха в2014 года по данным Amazon [91] являются 244 млн.
активных пользователей,ежегодная продажа 16 млн. товаров покупателям из 185 стран. Информационныесистемы компании в 2015 г. поддерживают 34 центра разработки [10]. Как можновидеть, компания Amazon накопила существенный опыт в построении надежной,производительной и отказоустойчивой инфраструктуры своих сервисов.
Всё этодостигалось традиционными методами построения масштабируемых систем насобственных серверах.Чтобы получить максимальную выгоду от своего масштаба, Amazon в 2006г. открыла доступ сторонних разработчиков к своей IaaS инфраструктуре AmazonEC2 и системе хранения S3. Тем самым компания резервировала избыточныемощности для своего роста и, одновременно, сдавала их в аренду. Пользуясьсвоим обширным опытом и обратной связью от пользователей, Amazon сталапредлагать большое количество новых сервисов для облачной инфраструктурыпод общим названием Amazon AWS.
Вскоре её клиентами стали как крупныечастныекомпании(напр.Netflix,Pinterest,Samsung,Unilever),такигосударственные структуры (напр. European Space Agency). В 2010 году Amazonперевела все свои внутренние информационные системы в облако Amazon AWS.Постоянный рост клиентов помогает совершенствовать технологию и снижатьцены, что в свою очередь, привлекает новых клиентов и снижает собственныезатраты Amazon.На данный момент Amazon AWS — самая мощная и популярная облачнаяIaaS платформа в мире [38]. На её виртуальных машинах можно развернуть весьнабор операционных систем, от многочисленных дистрибутивов Linux доMicrosoft Windows Server.
её опоздавший конкурент, компания Microsoft,выпустившаясвоюоблачнуюплатформуMicrosoftAzureв2010г.,31концентрируется на предложении более абстрактного уровня инфраструктуры —PaaS. В этом случае виртуальные серверы с операционной системой WindowsServer управляются слоем облачной системы Microsoft Azure, предоставляявозможность программисту реализовать свою задачу в виде сайта, веб- илирабочей роли. Это позволяет сконцентрировать свой код на решении бизнесзадачи, а не инфраструктурном взаимодействии с облачным оборудованием.Наборы сервисов для разработки облачных приложений у компаний Microsoft иAmazon примерно одинаков, поэтому наибольшую выгоду от примененияMicrosoft Azure получают программисты под платформу .NET и работающие всреде разработки Microsoft Visual Studio, т.к.
компания Microsoft тесноинтегрирует все свои технологии.1.3 Основные компоненты и сервисы облачных платформ Amazon AWSи Microsoft AzureРассмотрим различные компоненты и сервисы, которые образовались задесятилетнюю историю существования облачных платформ.
Конкурентнаяборьба между облачными провайдерами Amazon и Microsoft привела к тому, чтонабор их сервисов почти одинаков по функциональности. Условно их облачнуюинфраструктуру можно разделить на четыре основные группы: вычислительная(compute),сетевая(networking),хранениеидоступкданным(data),взаимодействие между приложениями (application) [57].1.3.1 Вычислительная инфраструктураВсе вычисления в облаке происходят на арендуемых виртуальных машинах(instances). На одном сервере (host) может быть запущено одновременнонесколько виртуальных машин, обслуживающих разных клиентов.
Фактически,когда клиент заказывает виртуальную машину, то на сервере резервируются поднеё процессорное время (CPU), а также оперативная и дисковая память [5]. В то32же время пропускная способность сети и доступ к диску будут разделяться всемивиртуальными машинами. В случае максимального использования какого-либоресурса одновременно всеми виртуальными машинами, им достаются его равныедоли. Если так совпало, что на одном сервере размещено слишком многовиртуальных машин и сразу несколько из них испытывают пиковые нагрузки, товозможно замедление работы всех виртуальных машин, хотя они и действуют врамках своих квот (overprovisioning).В зависимости от своих потребностей, клиент может заказать виртуальныемашины различной мощности: по процессору, количеству ядер, размеруоперативной памяти, сетевой пропускной способности и количеству локальнойдисковой памяти.
Например, на ноябрь 2015 года Amazon предлагает широкуюлинейку из 54 типов виртуальных машин (AWS Instances) от “T1 micro” (0.613GBоперативной памяти, 1.2GHz CPU, 1 ядро CPU, очень низкая пропускнаяспособность сети и без локального дискового пространства) до d2.8xlarge (244 GBоперативной памяти, 36 ядер CPU суммарной производительностью 140 GHz,пропускная способность сети в 10Gb и 48Tb локальной дисковой памяти) [29].Для интенсивных параллельных вычислений в рамках Compute Unified DeviceArchitecture (CUDA) или OpenCL существуют конфигурации с видеокартойNVidia последнего поколения, которые можно объединять в кластер. Кромеотличий в аппаратных ресурсах, типы виртуальных машины могут предлагатьприоритетный доступ к разделяемому хранилищу данных (Amazon EBS-optimizedinstances, производительность вплоть до 2000 Mbps) для приложений критичных кработе с дисковой памятью и повышенную пропускную способность сети для тех,кто передает большие объемы данных.В свою очередь сервис Virtual Machines в облаке Microsoft Azure предлагаетлинейку из 52 типов виртуальных машин от Basic Tier A0 (0.768GB оперативнойпамяти, одно разделяемое ядро CPU, низкая пропускная способность сети и 20Gbлокального дискового пространства) до Standard Tier GS5 (448GB оперативнойпамяти, 32 ядра CPU Intel Xeon E5 V3, пропускная способность сети в 10Gb и 896GB локальной дисковой SSD-памяти) [75].33Каждой виртуальной машине (на примере Microsoft Azure) доступно тривида дискового хранилища: временный локальный диск (содержимое которогостираетсяприотключениивиртуальноймашины),системныйдискс операционной системой (OS disk, содержимое которого реплицируется, данныесохраняются постоянно и он оптимизирован для процесса загрузки системы),локальный диск с постоянными данными (Data disk, содержимое которого такжереплицируется, данные сохраняются постоянно и он оптимизирован дляслучайного доступа к блокам файлов).
В рамках сервиса Premium Storageпредлагается повысить производительность дисковых операций до 2000 Mbps.Такимобразом,облачныевычисленияпозволяютподобратьвычислительные мощности, максимально подходящие к конкретным задачам, ине переплачивать за простаивающие ресурсы. В любой момент через веб-портал,консольные команды или вызовы специального API, пользователь можетизменить тип своей виртуальной машины, поменять их число, подключить илиотключить необходимые сервисы.Список операционных систем, которые предустановлены на виртуальныемашины, заказанные в виде IaaS, достаточно широк у обоих провайдеров иварьируется от Linux до Windows Server 2012 (общим правилом является то, чтовиртуальные машины с Linux-системой стоят дешевле, чем аналоги на Windows).Операционная система и установленное на ней программное обеспечениехранится в “образах диска” (технология AMI от Amazon и VHD от Microsoft).Данные образы пользователь может получить от облачного провайдера, изгалереи его партнеров или создать собственный.
После разворачивания такогообраза, виртуальная машина будет полностью готова к выполнению своихфункций без дополнительной настройки.На уровне DaaS Amazon предоставляет сервис AWS WorkSpaces—постоянно доступный виртуальный рабочий стол под управлением Windows 7 [9].По сути — это виртуальная машина, но её запуском, работой, безопасностью ирезервным копированием занимается инфраструктура AWS. Имея в наличииподходящий“тонкийклиент”(нетбук,chromebook,планшет,смартфон,34электронная книга) и интернет-соединение, пользователь из любой точки мираполучает доступ к своему рабочему месту.
Наиболее удобен этот сервис будет длякомпаний, которые при найме и увольнении временных сотрудников могутбыстро организовывать или сворачивать рабочее место, копируя туда толькореально необходимые данные. Со стороны Microsoft в качестве альтернативыпредлагается сервис установки и запуска отдельных приложений в облаке AzureRemoteApp. В этом случае системный администратор может подготовить образ снужными приложениями, загрузить его на портале Azure, и тогда пользователиполучают возможность запускать эти приложения на своем тонком клиенте также, как и любое другое локальное приложение.
Сами приложения будутвыполняться в облаке Azure, но их окна будут транслироваться по протоколу RDPна компьютер пользователя.В свою очередь Microsoft на уровне PaaS предлагает концепцию рабочих ивеб-ролей (worker and web roles).Рабочая роль — это приложение, котороеполучает от веб-роли задачи, выполняет для них длительные вычисления ипередает результаты обратно.
Пример длительных вычислений — модерированиеоставленных комментариев, обработка загруженных изображений, сбор данныхсо сторонних сайтов и пр. Веб-роль — это веб-приложение, котороенепосредственно работает с пользователем, принимает запросы и выдает ответы,запускаяасинхронновыполнениедлительныхзадачнарабочейроли.Функционально обе роли схожи, отличие лишь в наличии IIS-сервера у веб-роли.Однако на рабочей роли есть возможность запуска любого приложения(например, Node.js веб-сервера), а веб-роль имеет свой планировщик задач WebJobs. Обычно роли сохраняют данные в облачном хранилище и через очередьсообщенийуведомляютдругдругаозадачах.Подобнаяархитектураасинхронного обмена сообщениями позволяет масштабировать количествовиртуальных машин, выделенных под каждую роль. Приведенная ниже рабочаяроль слушает очередь сообщений, и при поступлении очередного сообщения,выполняет соответствующую операцию [25]:35//Роль всегда является наследником класса RoleEntryPointpublic class WorkerRole : RoleEntryPoint {//Метод OnStart выполняется при каждом запуске ролиpublic override bool OnStart() {string connectionString = CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString");var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);if (!namespaceManager.QueueExists(QueueName))namespaceManager.CreateQueue(QueueName);Client=QueueClient.CreateFromConnectionString(connectionString,QueueName);return base.OnStart();}//Вся бизнес-логика рабочей роли выполняется в методе Runpublic override void Run() {Client.OnMessage((receivedMessage) = > {try {// Выполняем длительную операцию}catch {// Обработка возникших исключений}});while (true){ Thread.Sleep(5000); }}}ЛИСТИНГ 1.