вычислений пользуется чрезвычайно большой популярностью.
В последнее время понятие "облачных" вычислений пользуется чрезвычайно большой популярностью. Компания Gartner ставит cloud computing в верхние строчки списка наиболее прорывных технологий ближайших лет [14]. Все основные поставщики программного обеспечения и многие начинающие компании примкнули к движению "в облака" и утверждают, что их продукты уже готовы или готовятся к использованию в "облачной" инфраструктуре.
"Облачные" вычисления сулят обеспечить несколько новых возможностей. Они сулят сократить время выхода на рынок за счет устранения или упрощения процессов планирования, приобретения и подготовки к использованию аппаратных средств. Они сулят обеспечить разные способы сокращения расходов. Во-первых, за счет перехода к использованию бизнес-модели "платы по мере использования" можно превратить капитальные вложения в текущие расходы. Во-вторых, "облачная" инфраструктура может обеспечить более высокий (близкий к 100%) коэффициент загруженности аппаратных ресурсов. Поэтому cloud computing часто считают важной технологией для обеспечения экологически безопасного использования вычислительных средств (green computing). Кроме того, при использовании "облачных" вычислений сокращаются эксплуатационные расходы и трудозатраты за счет автоматизации таких IT-задач, как обновление системы безопасности (security patch) и переключение на резервные мощности при отказе оборудования (fail-over). Что касается производительности, то cloud computing обещает (практически) неограниченную масштабируемость, так что IT-администраторам не требуется беспокоиться о поддержке пиковой рабочей нагрузки. Наконец, "облачные" вычисления сулят гибкость при использовании программных и аппаратных средств и при управлении ими, что позволяет сократить время выхода на рынок и уменьшить расходы.
К настоящему времени выпущен ряд продуктов. В частности, свои продукты предлагают три крупнейших участника IT-индустрии – Amazon, Google и Microsoft.
Все эти продукты объединяет то, что они доступны широкой аудитории пользователей за счет оформления технологии cloud computing в виде сервисов, которые можно вызывать с любого персонального компьютера на основе интерфейса REST. Кроме того, все текущие предложения направлены на обеспечение всех основных преимуществ "облачных" вычислений, и они завоевывают все большее признание на IT-рынке.
Цель этой статьи состоит в том, чтобы заложить первую небольшую веху на пути к анализу упомянутых продуктов. С использованием базы данных и рабочей нагрузки тестового набора TPC-W мы произвели оценку предложений Amazon, Google и Microsoft и сравнили результаты этих экспериментов с результатами, полученными при прогоне тестового набора TPC-W на Java-сервере приложений с применением обычной системы реляционных баз данных. В частности, мы старались найти ответы на следующие вопросы:
Насколько хорошо оцениваемые продукты масштабируются при возрастании рабочей нагрузки? Действительно ли можно достичь (практически) неограниченной производительности?
Насколько дорогостоящими являются эти продукты, и как соотносятся коэффициенты их экономической эффективности (cost/performance ratio)?
Насколько предсказуемы расходы с учетом возможных изменений рабочей нагрузки?
Очевидно, что результаты, описываемые в этой статье, являются всего лишь мгновенным снимком текущего состояния дел. Основной вклад статьи состоит в формировании некоторого каркаса, который может позволить поставщикам улучшать свои службы, а пользователям – сравнивать продукты.
Как будет показано, наши эксперименты привели к ряду неожиданных результатов. Хотя многие службы со стороны выглядят очень похожими (например, матрицы цен Microsoft Azure и Amazon Web Services почти идентичны относительно пропускной способности сети, стоимости хранения данных и ресурса процессора), они очень различаются, когда речь идет о сквозной производительности (end-to-end performance), масштабируемости и стоимости использования. Может быть, еще более неожиданными оказались различия в архитектурах, поддерживающих управление крупномасштабными данными и транзакционные рабочие нагрузки в "облачной" инфраструктуре.
В то время как большинство (традиционных) систем баз данных общего назначения (например, DB2, MySQL, Oracle 11, Postgres, Microsoft SQL Server) основывается практически на одних и тех же "хрестоматийных" архитектуре и структурах данных (например, во всех них используются динамическое программирование, индексы на основе B-деревьев, упреждающая запись в журнал (write-ahead logging)) [26], различия в реализации "облачных" служб колоссальны. Хотя время хрестоматийной архитектуры "облачных" служб еще далеко не пришло, в этой статье мы пытаемся "заглянуть за кулисы", классифицировать варианты архитектуры и подготовить почву для сравнения различных вариантов архитектуры по отношению к производительности и стоимости.
Оставшаяся часть статьи структурирована следующим образом. В разд. 2 приводится обзор родственных работ. В разд. 3 описываются альтернативные архитектуры баз данных, предназначенные для обработки транзакций "в облаках". В разд. 4 кратко обсуждаются службы, используемые нами для экспериментов и представляющие различные архитектуры, которые описываются в разд. 3. В разд. 5 приводятся детальные данные о тестовом наборе и экспериментальной среде. В разд. 6 представлены результаты экспериментов. В разд. 7 содержатся заключительные замечания и планы будущих исследований.