Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Обзор «облачных» продуктов




«Облачные» продукты (Рис.12) делятся на два типа:

§ Базовые платформы предлагают минимум - только виртуальное аппаратное обеспечение и, возможно, операционную систему. Они обычно более гибкие, поскольку у них меньше ограничений;

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

 

Рис.12 «Облачные» платформы.

 

Рассмотри каждую платформу отдельно:

- Базовые платформы. Если требуется максимальная свобода в конфигурировании приложений в облаке, то, вероятно, нужно выбирать базовую платформу. Можно указать некоторые аппаратные требования, например, тип процессора с определенной тактовой частотой, с определенным объемом памяти и так далее. С этого момента можно создавать именно такую систему, которая необходима для задач бизнеса. Это очень похоже на хостинг-услуги, но такие, которые растут и уменьшаются в соответствии с потребностями компании. В этом разделе обсуждаются четыре поставщика услуг подобного типа: Amazon, IBM, Joyent и Mosso.

Elastic Compute Cloud (EC2) (Рис.13) от Amazon была одной из первых платформ облачных вычислений и до сих пор остается одной из наиболее популярных. Принято говорить, что "вас никогда не уволят за работу с Amazon". EC2 - это отличный пример базовой платформы.

Рис.13 Elastic Compute Cloud.

 

Чтобы начать работать с EC2, нужен экземпляр Amazon Machine (Amazon Machine Instance, AMI). AMI представляет собой полный образ сервера с операционной системой, приложениями и так далее. У Amazon и у сообщества EC2 уже имеются много популярных образов AMI, как с Microsoft Windows®, так и с Linux", а также с различными комплектами открытого программного обеспечения, например, Apache Web Server, MySQL и интерпретатором Python. Если не удается найти подходящий AMI, Amazon предоставляет средства создания собственных вариантов AMI, которые можно использовать только для себя или же поделиться с сообществом.

AMI может быть установлен на "экземпляры" различного размера. Все администрирование и управление экземпляром выполняется с помощью Web-сервисов. Вокруг этих Web-сервисов уже выросла большая экосистема, облегчающая управление экземплярами EC2. Например, есть расширение Firefox под названием Elasticfox, которое можно использовать для управления и запуска образов AMI прямо из Firefox.

EC2 работает на XEN - открытом ПО для виртуализации. С помощью EC2 можно запускать практически любое программное обеспечение. В качестве операционных систем для AMI широко используются различные разновидности Linux. Доступны любые языки программирования: Java, PHP, Python и так далее. На EC2 можно использовать и коммерческое программное обеспечение, но гибкая природа EC2 делает более привлекательным применение ПО с открытым исходным кодом: не нужно беспокоиться о лицензировании, когда приходится использовать более крупные экземпляры или большее их количество.

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

IBM Blue Cloud (Рис.14).Когда Amazon первым вступила в сферу облачных вычислений, многие были удивлены. Когда IBM вошла в эту сферу, уже никто не удивлялся. Решение Blue Cloud было объявлено в конце 2008 года и должно было предоставить основные возможности облачных вычислений. Клиенты могут выбирать из более распространенного оборудования x86 или аппаратного обеспечения более высокого класса на основе POWER®. Blue Cloud использует программное обеспечение IBM Tivoli® для автоматического предоставления систем с различными возможностями (процессор/память/диск), что дает организациям возможность задействовать огромную вычислительную мощность - но платить за нее только по мере необходимости. IBM также является пионером в области "закрытых" облачных платформ, предоставляя преимущества облачных вычислений для внутренних приложений, находящихся за межсетевым экраном.

Рис.14 IBM Blue Cloud.

 

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

Joyent Accelerator (Рис.15). Возможно, компания Joyent не так широко известна, как Amazon или IBM, но она быстро заработала впечатляющую репутацию в роли поставщика платформы облачных вычислений для начинающих Web-компаний. Joyent Accelerator в значительной степени обеспечивает гибкость традиционных хостинг-провайдеров, но с ключевой возможностью облачной технологии - наращиванием мощности в зависимости от нагрузки на приложение. С его помощью можно быстро развернуть экземпляр приложения на PHP, Java или Ruby on Rails, уже заранее настроенный и готовый к использованию. При этом используется столько вычислительной мощности, сколько требуется при данной нагрузке. Это решение работает на ОС OpenSolaris, поэтому можно использовать все обычные инструменты для доступа и управления развернутыми в ней ресурсами, в том числе SSH и FTP.

Рис.15 Joyent Accelerator.

 

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

В Joyent поддерживается любая технология, совместимая с OpenSolaris. Это относится ко всем открытым LAMP (Linux - Apache Web-Server - MySQL - PHP) технологиям и языкам программирования, а также к другим языками программирования, например, Java и Ruby. Joyent дает возможность эффективно использовать любые имеющиеся инструменты Linux или UNIX® для обеспечения безопасности и обслуживания сайта и данных.

Mosso, дочерняя компания известного хостинг-провайдера The Rackspace Cloud (Рис.16), имеет несколько различных предложений для облачных вычислений. Mosso Cloud Sites охватывают базовые и специализированные платформы. Есть две базовые конфигурации Cloud Site. В одной используется программное обеспечение с открытым исходным кодом. Это классическая LAMP-система. В другой конфигурации используется Windows Server с Web-сервером IIS и базой данных на SQL Server. Необходимо выбрать конфигурацию и платить за пропускную способность, место на устройствах хранения и использование процессора по мере необходимости.

Рис.16 The Rackspace Cloud.

 

Mosso объявила, что также будет предлагать новый продукт под названием Cloud Servers, - Linux-серверы с полной гибкостью конфигурирования. Mosso Cloud Sites популярны благодаря тому, что предоставляют базовые компоненты, которые требуются для многих приложений. Их можно описать как специализированную платформу базового уровня. В следующем разделе рассматриваются более специализированные платформы, представленные на рынке.

- Специализированные платформы. Термин "специализированный" несколько субъективен. Что именно делает платформу облачных вычислений специализированной? Все платформы в этом разделе предлагают дополнительные возможности, кроме функций базовых платформ, описанных выше. Иногда это уникальные среды разработки; иногда это дополнительные услуги, интегрированные в платформу; иногда просто удобные функции. В этом разделе рассматриваются следующие специализированные платформы: Microsoft Azure, Google App Engine, Aptana Cloud, Heroku, Ning и Salesforce.

Платформа Azure (Рис.17) была анонсирована Microsoft в четвертом квартале 2008 года. Эта платформа привязана к своей операционной системе, являющейся специализированной разновидностью Windows. Она включает в себя "гипервизор" для динамического предоставления экземпляров машин и рассчитана на запуск любых.NET-приложений. Конечно, серверные.NET-приложения - это идеальные кандидаты для переноса в это облако. Также Microsoft начала предлагать версии многих своих серверных продуктов, например, Exchange, работающие в облаке на Azure.

Рис.17 Microsoft Azure.

 

Но Azure - не просто Windows- и.NET-платформа. Платформа Azure предлагает также множество других услуг, в том числе SQL Services, высокомасштабируемую базу данных на SQL Server, и Live Services - интерфейс Web-сервисов для популярных приложений Microsoft: поиск, обмен фотографиями, передачу мгновенных сообщений и так далее. Azure также обеспечивает тесную интеграцию с IDE Microsoft Visual Studio®, что облегчает запуск, тестирование и развертывание приложений на платформе Azure.

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

На первый взгляд, Microsoft не удалось обогнать своих конкурентов по облачной сфере — официальный релиз WindowsAzure состоялся лишь в начале 2010 года. Тем не менее, на сегодняшний день WindowsAzure остается одним из самых крупных и всеохватных проектов в сфере cloudcomputing. Но 2010 год можно считать важной датой в истории облачных технологий не только из-за релиза Azure, но и благодаря появлению ряда облачных сервисов, ориентированных уже не на разработчиков, а на простых пользователей.

Платформа App Engine (Рис.18), запущенная Google во втором квартале 2008 года, существенно отличается от других облачных платформ. На ней отсутствует выделение аппаратного обеспечения, даже виртуального; все, что требуется - просто развернуть в ней приложение, причем сделать это можно бесплатно. Однако на использование ресурсов App Engine накладываются ограничения, и дополнительную процессорную мощность, ресурсы хранения и пропускную способность Интернет-канала можно покупать по мере необходимости, как и на других облачных платформах. В Google App Engine есть несколько удобных функций, но это лишь начало ее набора специализированных функций.

Рис.18 Google App Engine.

 

Google App Engine предоставляет надежную среду разработки, которая поддерживает только Python. На Python разработано множество сервисов, предлагаемых этой платформой. Управление пользователями интегрировано с Google. Например, вход в приложение осуществляется с теми же учетными данными, которые используются для входа в Google Mail. Есть API для хранения структурированных данных. Хранение и извлечение данных из хранилища похоже на использование реляционной базы данных, но это технология, целиком разработанная Google. В ее основе лежит собственная распределенная файловая система Google GFS.

Google поддерживает только Python, который является открытой технологией; все остальные технологии принадлежат Google (хотя Google, вероятно, использует внутри себя множество открытых технологий). Также Google App Engine не предлагает каких-либо решений для резервного копирования данных, но используемое хранилище данных рассчитано на высокую отказоустойчивость.

Aptana Cloud (Рис.19). Компания Aptana известна в первую очередь благодаря Aptana Studio - IDE на основе Eclipse для работы с динамическими языками программирования, например, JavaScript, PHP, Python и Ruby. Aptana представила свою облачную платформу во втором квартале 2008 года. Фактически Aptana Cloud является набором функций поверх платформы облачных вычислений от Joyent.

Рис.19Aptana Cloud.

 

Используя Aptana Cloud, можно легко развернуть приложение в среде Linux или MySQL с использованием PHP, Jaxer (реализацией JavaScript на стороне сервера от Aptana) или Ruby on Rails. Приложение, установленное в Aptana Cloud, имеет такие же характеристики, что и любое приложение для Joyent Accelerator, но с дополнительными возможностями от Aptana. Развертывание и управление облачными приложениями производится непосредственно из Aptana Studio. Все действия, от выделения аппаратных ресурсов приложению до управления журнальными файлами, может выполняться из Aptana Studio. Aptana обеспечивает непревзойденный уровень удобства - разработка, тестирование, развертывание и управление осуществляются из одной среды.

Aptana унаследовала от Joyent поддержку открытых технологий и языков программирования. Она также унаследовала открытые инструменты для управления и резервного копирования. Многие аспекты управления интегрированы в Aptana Studio, но возможны и более сложные системы.

Heroku

Можно было бы просто сказать, что чем Google App Engine является для Python, тем проект Heroku, запущенный фирмой Y-Combinator, является для Ruby on Rails. Но это было бы несправедливо по отношению к Heroku. Это не просто облачная платформа, на которой есть Ruby on Rails. Heroku поддерживает только Rails, и поэтому она в значительной степени ориентирована на Rails. В Heroku нужно просто добавить определенный пакет к локально установленной версии Ruby, и можно сразу же выполнять команды для развертывания и запуска своего приложения на облаке Heroku. Также можно осуществить развертывание из репозитория Git. Можно даже получить доступ к исходному коду приложения и редактировать его непосредственно из Web-браузера. Для приложения можно использовать любой нужный пакет Ruby или подключаемый модуль Rails.

Среда Heroku полностью сконцентрирована на удобстве. Она работает поверх Amazon EC2, поэтому вычислительную мощность можно гибко наращивать. Heroku предлагает бесплатные услуги в рамках предложения Heroku Garden. Там можно бесплатно развернуть и протестировать приложение в облаке. Когда будет решено перейти к большей нагрузке или потребуется отказоустойчивость, можно перенести свое приложение на главную платформу Heroku.

Ning (рис.20). Облачные платформы, обсуждавшиеся в этой статье до сих пор, являются в значительной степени платформами общего назначения. Каким бы ни было приложение, они могут с ним справиться. Некоторые из них ориентированы на Web-приложения, но это все же довольно общая классификация. Популярный сайт Ning дает пользователям возможность создавать свои собственные социальные сети. Это обычно делается просто путем конфигурирования, добавления страниц, добавления элементов интерфейса к страницам, конфигурирования элементов интерфейса и так далее. Пользуясь Ning, можно загрузить исходный код сети, изменить ее в соответствии с требованиями и запустить в облаке Ning. Поскольку исходный код сети разрабатывается на обычном PHP, его знания достаточно, чтобы начать создавать собственные приложения для социальной сети.

Рис.20 Ning.

 

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

Очевидно, что Ning - это очень специализированная облачная платформа. Но если планируется встроить в приложение функции социальной сети (даже если они имеют второстепенное значение) и программирование на PHP не является проблемой, Ning может стать очень привлекательным выбором. Ning похож на Google App Engine. Имеется только один вариант выбора языка программирования (PHP), и нельзя при необходимости просто установить дополнительное программное обеспечение. Тем не менее, эта платформа дает возможность использовать высокомасштабируемую, хотя и закрытую систему.

Salesforce (Рис.21). Еще одна очень специализированная платформа облачных вычислений предоставляется компанией Salesforce, хорошо известной благодаря революции в ПО для управления взаимоотношениями с клиентами (customer relationship management, CRM) путем использования модели SaaS (Software as service, "программное обеспечение как услуга"). Используя платформу Force.com, можно создавать собственные приложения, работающие на инфраструктуре облачных вычислений того же типа, что используются Salesforce для ее CRM-приложения. Компании используют AppExchange для поиска и "установки" этих приложений, делая их доступными для своих пользователей. В этом есть сходство с приложениями Facebook, так как приложение работает как единое целое с основными приложениями Salesforce.

Рис.21 Salesforce.

 

Также на основе одного или нескольких приложений можно создать собственный сайт Force.com. Это уже больше похоже на парадигму облачных вычислений. В случае с сайтом Force.com не нужно платить за оборудование, но зато нужно платить за количество пользователей. Есть также разные уровни цены в зависимости от того, сколько требуется места для хранения данных одного пользователя. Для создания приложения, работающего на Salesforce, необходимо написать программу на Apex, Java-подобном языке программирования, разработанном в Salesforce. Этот же язык используется инженерами Salesforce для создания своих CRM-приложений.

Salesforce также предоставляет множество специфичных для этой платформы услуг для управления пользователями, учетными записями, ролями и доступом к данным. Для бизнес-приложений, особенно привязанных к конкретному предприятию, сайт Force.com может быть привлекательным вариантом. У Salesforce довольно ограниченный выбор открытых технологий и средств программирования. Но, как и Google App Engine и Ning, Salesforce предоставляет высокомасштабируемую патентованную технологию.

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

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...