Привет всем ! Сегодня я попытаюсь дать сравнительную характеристику двух гигантов облачного рынка, а именно Windows Azure и Amazon Web Services. В процессе своей работы мне приходилось выполнять проекты, основанные как на одной так и на другой технологии, поэтому идея составить сравнительную характеристику назревала уже довольно таки давно. После анализа большого количества подобных материалов в Интернете, а также основываясь на личном опыте и помощи одного из Windows Azure MVP и было принято решение написать этот пост.
Как мы все знаем обе платформы были введены в эксплуатацию сравнительно недавно (AWS в 2006, Windows Azure в 2008-м), услугами обеих платформ пользуются всемирно известные корпорации (чего стоят только NASA, Ericsson, T-Mobile, Boeing и другие), обе платформы позиционируют себя как лидера в сфере облачных вычислений поэтому их сравнение является едва ли не самой важной альтернативой, позволяющей оценить уровень предоставляемых услуг. Сравнение будет организовано в виде описания основных категорий в сфере облачных вычислений и описания того как та или иная категория реализована в AWS и Windows Azure
Стратегия развития
И начнем мы с наиболее важного как я считаю аспекта – это стратегии развития. Как нам всем известно на сегодняшний день облачные провайдеры умеют предоставлять свои услуги по 3-м схемам – это IaaS, PaaS и SaaS. Углубляться в описание данных терминов я не стану так как они уже “изжеваны” по всей Сети, скажу лишь то, что AWS предоставляет свои услуги по схеме IaaS, Windows Azure в свою очередь по схеме PaaS и этим они кардинально отличаются. Хотя обе платформы делают определенные сподвижки в сторону других схем, их первоначальная “природа” остается той же.
Соглашения о уровне предоставляемых услуг
Обе платформы предоставляют своим клиентам SLA`s, гарантирующие высокий уровень услуг (вычислительные мощности доступны в течение 99,95 % времени, для других сервисов гарантируется доступность в течение 99,9 % общего времени).
Масштабируемость
Как Windows Azure так и Amazon Web Services поддерживают автоматическое масштабирование. Это касается как горизонтального (повышение производительности решения за счет увеличения количества виртуальных инстансов, что позволяет распределить полезную нагрузку и тем самым значительно повысить общую производительность системы) так и вертикального масштабирования (увеличение производительности системы за счет добавления ресурсов к отдельным виртуальным машинами, например. за счет увеличения объема оперативной памяти). Помимо горизонтального масштабирования вычислительных мощностей Windows Azure поддерживает масштабирование баз данных за счет технологии Federations, доступной при использовании сервиса SQL Azure. Кроме того существуют решения. позволяющие упростить процесс наращивания ресурсов. У Амазона это Auto Scaling Service, у Windows Azure – Auto-Scaling Application Block.
Дополнительные возможности
Кроме базовых сервисов (аренда вычислительных мощностей и хранилищ данных) обе платформы предоставляют набор дополнительных услуг. Здесь преимущество остается за Windows Azure, так как список таких сервисов значительно шире
Вычислительные мощности
Обе платформы предоставляют довольно таки широкий спектр размеров виртуальных машин, начиная от микро инстансов и заканчивая чрезвычайно мощными экземплярами. Сравнить предложения от Amazon и Microsoft можно при помощи следующей таблички
Хранилища данных
Обе платформы поддерживают популярные на сегодняшний день системы хранения данных, включая как стандартные реляционные так и NoSQL-решения.
Реляционное хранилище
В данной категории у AWS существует довольно таки интересное предложение. Платформа предлагает клиентам 2 варианта запуска реляционного движка в облаке: управляемый и неуправляемый. В случае использования неуправляемого варианта вам предоставляются на выбор готовые образы (так называемые Application Machine Images) с уже предустановленными СУБД (поддерживаются IBM DB2, Oracle, MySQL, SQL Server Express, SQL Server Standart, Postgres, Syba). После выбора конкретного образа с него запускается виртуальная машина и ваша СУБД становится доступной. Так как сами виртуальные машины непостоянны и им требуется внешнее хранилище данных вам еще необходимо будет настроить Amazon EBS сервис для периодического сброса бекапов в хранилище. Второй подход – управляемый. В этом случае используется сервис Amazon Relational Database Service, при котором для вас разворачивается СУБД MySQL либо Oracle и сама платформа уже берет на себя задачи по обновлению, репликации и хранению резервных копий.
Windows Azure предоставляет реляционный сервис SQL Azure. Разработчику нет необходимости инсталлировать и конфигурировать сервера, можно использовать аналогичную модель программирования под SQL Server. Протокол взаимодействия все тот же – TDS. Размер базы данных ограничен 150 Гб. Существует нативная поддержка шардинга базы данных при помощи технологии SQL Azure Federations, что позволяет поднять производительность до нереальных высот. Кроме того поддерживаются ряд вспомогательных и полезных сервисов: SQL Azure Reporting Services, SQL Azure DataSync и др.
Высокопроизводительные вычисления
Как правило для решения сложных научных, инженерных и бизнес задач требуется огромное количество одновременно работающих вычислительных центров, каждый из которых выполняет лишь часть работ но все вместе они решают одну задачу (примером может быть задачи молекулярного моделирования). Как AWS так и Windows Azure поддерживают высокопроизводительные вычисления. Amazon предоставляет специальный вид виртуальной машины, называемый Cluster Machine, что позволяет объединять инстансы в кластера и выполнять тяжелые вычисления. У Microsoft в свою очередь существует Windows Server HPC 2008 R2 позволяющий объединять собственные сервера с облачными виртуальными машинами в любой пропорции для выполнения распределенных вычислений. Кроме того обе платформы поддерживают и значительно упрощают запуск такого популярного на сегодняшний день решения как Hadoop, что позволяет проводить в облачных условиях анализ больших объемов данных.
Разработка решений
Обе платформы поддерживают большинство современных языков программирования, кроме того значительные инвестиции вливаются в разработку различного рода SDK, аддонов и плагинов к популярным средам разработки и т.д.
Эмуляторы
Большое преимущество здесь остается за Windows Azure так для локальной разработки предоставляется очень полезная и удобная среда (эмулируется как среда выполнения так и хранилище данных), максимально имитирующая облачную, чего нельзя сказать о Amazon Web Services.
Мониторинг состояния сервисов
AWS включает службу Amazon CloudWatch, позволяющую собирать и аггрегировать детальные метрики с EC2-инстансов, балансировщиков нагрузки, баз данных и т.д.
Windows Azure предоставляет специальную диагностическую подсистему, позволяющую мониторить, аггрегировать и хранить логи приложения, IIS логи, счетчики производительности, статистику базы данных и так далее.
Скорость
Наверное одна из наиболее важных составляющих успеха той или иной платформы. Здесь безоговорочная победа Windows Azure. Независимые тесты производительности были проведены компанией Compuware с использованием их собственной утилиты CloudSleuth, дебютировавшей в этом году. Каждый может посмотреть результаты за последний месяц на сайте CloudSleuth https://www.cloudsleuth.net/web/guest/global-provider-view. На этом же сайте можно также посмотреть модель тестирования облачных сервисов. На момент написания данного поста ситуация была следующей:
Как видим по функциональности платформы сопоставимы, поэтому решение стоит принимать уже основываясь на требованиях проекта и четко понимая разницу между IaaS и PaaS принципами ! Спасибо за внимание, надеюсь публикация будет полезной !
Как мы все знаем обе платформы были введены в эксплуатацию сравнительно недавно (AWS в 2006, Windows Azure в 2008-м), услугами обеих платформ пользуются всемирно известные корпорации (чего стоят только NASA, Ericsson, T-Mobile, Boeing и другие), обе платформы позиционируют себя как лидера в сфере облачных вычислений поэтому их сравнение является едва ли не самой важной альтернативой, позволяющей оценить уровень предоставляемых услуг. Сравнение будет организовано в виде описания основных категорий в сфере облачных вычислений и описания того как та или иная категория реализована в AWS и Windows Azure
Стратегия развития
И начнем мы с наиболее важного как я считаю аспекта – это стратегии развития. Как нам всем известно на сегодняшний день облачные провайдеры умеют предоставлять свои услуги по 3-м схемам – это IaaS, PaaS и SaaS. Углубляться в описание данных терминов я не стану так как они уже “изжеваны” по всей Сети, скажу лишь то, что AWS предоставляет свои услуги по схеме IaaS, Windows Azure в свою очередь по схеме PaaS и этим они кардинально отличаются. Хотя обе платформы делают определенные сподвижки в сторону других схем, их первоначальная “природа” остается той же.
Соглашения о уровне предоставляемых услуг
Обе платформы предоставляют своим клиентам SLA`s, гарантирующие высокий уровень услуг (вычислительные мощности доступны в течение 99,95 % времени, для других сервисов гарантируется доступность в течение 99,9 % общего времени).
Масштабируемость
Как Windows Azure так и Amazon Web Services поддерживают автоматическое масштабирование. Это касается как горизонтального (повышение производительности решения за счет увеличения количества виртуальных инстансов, что позволяет распределить полезную нагрузку и тем самым значительно повысить общую производительность системы) так и вертикального масштабирования (увеличение производительности системы за счет добавления ресурсов к отдельным виртуальным машинами, например. за счет увеличения объема оперативной памяти). Помимо горизонтального масштабирования вычислительных мощностей Windows Azure поддерживает масштабирование баз данных за счет технологии Federations, доступной при использовании сервиса SQL Azure. Кроме того существуют решения. позволяющие упростить процесс наращивания ресурсов. У Амазона это Auto Scaling Service, у Windows Azure – Auto-Scaling Application Block.
Дополнительные возможности
Кроме базовых сервисов (аренда вычислительных мощностей и хранилищ данных) обе платформы предоставляют набор дополнительных услуг. Здесь преимущество остается за Windows Azure, так как список таких сервисов значительно шире
AWS
|
Windows Azure
|
|
|
Вычислительные мощности
Обе платформы предоставляют довольно таки широкий спектр размеров виртуальных машин, начиная от микро инстансов и заканчивая чрезвычайно мощными экземплярами. Сравнить предложения от Amazon и Microsoft можно при помощи следующей таблички
Amazon Web Services
|
Windows Azure
| |
Micro-инстанс
|
Micro instance
|
Extra-Small instance
|
Стандартные предложения
|
Small, Large, Extra Large
|
Small, Medium, Large, Extra Large
|
Память
|
От 1,7 Гб до 15 Гб
|
От 1,7 Гб до 14 Гб
|
Процессор
|
От 1 до 4-х ядер
|
От 1 до 8-ми ядер
|
Специальные предложения
|
High-memory, High-CPU, Cluster
| |
Операционные системы
|
Linux, Windows Server
|
Windows Server
|
Хранилища данных
Обе платформы поддерживают популярные на сегодняшний день системы хранения данных, включая как стандартные реляционные так и NoSQL-решения.
Amazon Web Services
|
Windows Azure
| |
Blob/Object хранилище
|
Размер одного объекта в Amazon S3 не может превышать 5 Тб. Нет ограничений на общий объем данных и количество объектов
|
Размер одного объекта не может превышать 200 Гб (блочный блоб) и 1 Тб (страничный блоб). Размер всех объектов одного аккаунта не может превышать 100 Тб, на количество таких аккаунтов ограничений не существует
* Поддерживается гео-репликация данных, что позволяет значительно повысить надежность хранения данных |
Табличное хранилище
|
В Amazon SimpleDB нет ограничения на количество записей. Таблицы организуются в “домены”, размер которых не может превышать 10 Гб. На количество “доменов“ ограничений не существует
|
В Windows Azure Table Storage не существует ограничений на количество записей. Запись может иметь до 255 полей и не может превышать 1 Мб размере. Размер объектов в одном аккаунте не может превышать 100 Тб. Нет ограничений на количество аккаунтов
|
Реляционное хранилище
В данной категории у AWS существует довольно таки интересное предложение. Платформа предлагает клиентам 2 варианта запуска реляционного движка в облаке: управляемый и неуправляемый. В случае использования неуправляемого варианта вам предоставляются на выбор готовые образы (так называемые Application Machine Images) с уже предустановленными СУБД (поддерживаются IBM DB2, Oracle, MySQL, SQL Server Express, SQL Server Standart, Postgres, Syba). После выбора конкретного образа с него запускается виртуальная машина и ваша СУБД становится доступной. Так как сами виртуальные машины непостоянны и им требуется внешнее хранилище данных вам еще необходимо будет настроить Amazon EBS сервис для периодического сброса бекапов в хранилище. Второй подход – управляемый. В этом случае используется сервис Amazon Relational Database Service, при котором для вас разворачивается СУБД MySQL либо Oracle и сама платформа уже берет на себя задачи по обновлению, репликации и хранению резервных копий.
Windows Azure предоставляет реляционный сервис SQL Azure. Разработчику нет необходимости инсталлировать и конфигурировать сервера, можно использовать аналогичную модель программирования под SQL Server. Протокол взаимодействия все тот же – TDS. Размер базы данных ограничен 150 Гб. Существует нативная поддержка шардинга базы данных при помощи технологии SQL Azure Federations, что позволяет поднять производительность до нереальных высот. Кроме того поддерживаются ряд вспомогательных и полезных сервисов: SQL Azure Reporting Services, SQL Azure DataSync и др.
Высокопроизводительные вычисления
Как правило для решения сложных научных, инженерных и бизнес задач требуется огромное количество одновременно работающих вычислительных центров, каждый из которых выполняет лишь часть работ но все вместе они решают одну задачу (примером может быть задачи молекулярного моделирования). Как AWS так и Windows Azure поддерживают высокопроизводительные вычисления. Amazon предоставляет специальный вид виртуальной машины, называемый Cluster Machine, что позволяет объединять инстансы в кластера и выполнять тяжелые вычисления. У Microsoft в свою очередь существует Windows Server HPC 2008 R2 позволяющий объединять собственные сервера с облачными виртуальными машинами в любой пропорции для выполнения распределенных вычислений. Кроме того обе платформы поддерживают и значительно упрощают запуск такого популярного на сегодняшний день решения как Hadoop, что позволяет проводить в облачных условиях анализ больших объемов данных.
Разработка решений
Обе платформы поддерживают большинство современных языков программирования, кроме того значительные инвестиции вливаются в разработку различного рода SDK, аддонов и плагинов к популярным средам разработки и т.д.
Amazon Web Services
|
Windows Azure
| |
Портал разработчика
|
Присутствует
|
Присутствует
|
Eclipse Tools
|
Присутствует
|
Присутствует
|
Visual Studio Tools
|
Присутствует
|
Присутствует
|
Java SDK
|
Присутствует
|
Присутствует
|
Мобильное SDK
|
iOS, Android
|
iOS, Android, WP7
|
PHP SDK
|
Присутствует
|
Присутствует
|
Python SDK
|
Присутствует
|
Отсутствует
|
Ruby SDK
|
Присутствует
|
Присутствует
|
.NET SDK
|
Присутствует
|
Присутствует
|
Эмуляторы
Большое преимущество здесь остается за Windows Azure так для локальной разработки предоставляется очень полезная и удобная среда (эмулируется как среда выполнения так и хранилище данных), максимально имитирующая облачную, чего нельзя сказать о Amazon Web Services.
Мониторинг состояния сервисов
AWS включает службу Amazon CloudWatch, позволяющую собирать и аггрегировать детальные метрики с EC2-инстансов, балансировщиков нагрузки, баз данных и т.д.
Windows Azure предоставляет специальную диагностическую подсистему, позволяющую мониторить, аггрегировать и хранить логи приложения, IIS логи, счетчики производительности, статистику базы данных и так далее.
Скорость
Наверное одна из наиболее важных составляющих успеха той или иной платформы. Здесь безоговорочная победа Windows Azure. Независимые тесты производительности были проведены компанией Compuware с использованием их собственной утилиты CloudSleuth, дебютировавшей в этом году. Каждый может посмотреть результаты за последний месяц на сайте CloudSleuth https://www.cloudsleuth.net/web/guest/global-provider-view. На этом же сайте можно также посмотреть модель тестирования облачных сервисов. На момент написания данного поста ситуация была следующей:
Суммируя все вышеописанное можно составить итоговую таблицу по всем сервисам обеих платформ.
Категория
|
Amazon Web Services
|
Windows Azure
|
Вычислительные мощности | ||
Вычисления |
Amazon Elastic Compute (EC2)
|
Windows Azure Compute
|
Высокопроизводительные вычисления |
Amazon EC2 HPS Clusters
|
Windows HPC Server
|
Обработка данных |
Amazon Elastic MapReduce (Hadoop)
|
Hadoop on Windows Azure Compute
|
Авто масштабирование |
Auto Scaling, Elastic Beanstalk
|
Scaling Application Block
|
Распределенное кеширование |
Amazon ElasticCache
|
AppFabric Caching
|
Контент | ||
CDN |
Amazon CloudFront
|
Windows Azure CDN
|
База данных | ||
NoSQL |
Amazon SimpleDB
|
Windows Azure Table Storage
|
Реляционная база |
Amazon Relational DB Service
|
SQL Azure
|
Репортинг |
SQL Azure Reporting
| |
Синхронизация |
SQL Azure DataSync
| |
Федерация |
SQL Azure Federations
| |
Разворачивание | ||
IaaS разворачивание |
Amazon Elastic Compute
|
VM Role
|
PaaS разворачивание |
Elastic Beanstalk
|
Web/Worker Roles
|
Массовый деплоймент |
AWS CloudFormation
| |
Маркетплейс | ||
Маркетплейс приложений |
Custom App Catalog
|
Windows Azure Marketplace
|
Маркетплейс данных |
Windows Azure Marketplace
| |
Мониторинг и управление | ||
Мониторинг |
Amazon CloudWatch
|
Диагностическое API
|
Ручное управление |
AWS Management Console
|
Windows Azure Developer Portal
|
Коммуникация | ||
Простая очередь |
Amazon Simple Queuing Service
|
Windows Azure Queue Storage
|
Продвинутая очередь |
Windows Azure Service Bus Queues
| |
Нотификация |
Simple Notification Service
|
Windows Azure Service Bus
|
Почта |
Simple Email Service
| |
Сеть | ||
Траффик менеджмент |
Amazon Route 53
|
Windows Azure Traffic Manager
|
VPN/Гибридное облако |
Virtual Private Cloud, Direct Connect
|
Windows Azure Connect
|
Балансировка нагрузки |
Elastic Load Balancing
|
Windows Azure Compute
|
Безопасность | ||
Управление подлинностью |
AppFabric Access Control Service
| |
Хранилище | ||
Блоб хранилище |
Amazon S3
|
Windows Azure Blob Storage
|
Диски |
Amazon Elastic Block Storage
|
Windows Azure Drives
|
Импорт/экспорт медиа |
Amazon Import/Export
|
Как видим по функциональности платформы сопоставимы, поэтому решение стоит принимать уже основываясь на требованиях проекта и четко понимая разницу между IaaS и PaaS принципами ! Спасибо за внимание, надеюсь публикация будет полезной !