Сравнение бессерверных хостингов

Igor Olemskoi
Southbridge
Published in
9 min readNov 15, 2017

Откровенная борьба провайдеров за ваши деньги

Недавно я опубликовал статью — «Кодирование бессерверного будущего», чтобы объяснить, что новый архитектурный подход означает для разработчиков. Я рассказал о доступных вариантах, но меня попросили дать более подробную информацию о доступных вариантах для тех, кто хочет получить бессерверный роллинг прямо сейчас.

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

Итак, кто является игроком в этом пространстве и какие технологии разработки они в настоящее время поддерживают? Сколько бы стоило строить и запускать ваше приложение на этих сервисах?

О сравнительном ценообразовании

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

Кроме того, невозможно создать «типичный» сценарий трафика, поскольку он будет сильно отличаться от проектов, и примеры здесь также не особенно реалистичны. Они были выбраны, чтобы показать, как модель ценообразования реагирует на изменения на каждом уровне, отражает ли это то, как приложение может или не может масштабироваться.

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

Unicorn: время выполнения 5000 мс, зарезервированная память 512 МБ, исполнение 500 м.
Heavy: время выполнения 3000 мс, зарезервированная память 256 МБ, исполнение 10 м.
Moderate: время выполнения 1000 мс, зарезервированная память 128 МБ, исполнение 5 м.
Light: время выполнения 1000 мс, зарезервированная память 128 МБ, исполнение 1 м.

Lambda (Amazon AWS)

Amazon Web Services (AWS) — название, приходящее на ум первым при мысли об облачных вычислениях. Amazon является крупнейшим провайдером в облачном пространстве и имеет более широкий набор вспомогательных инструментов и ресурсов, чем любой из конкурентов.

AWS Lambda — функция-как-сервис, обеспечивающая бессерверную разработку в облаке Amazon.

Поддерживаемые языки

В настоящее время Lambda поддерживает функции, написанные на Javascript (и языки, которые его компилируют) с помощью Node.js, Python, Java (поддерживается Java 8) и семейства Microsoft .NET (C #, Visual Basic и F #) с помощью поддержки .NET Core.

Отрадно видеть, что .NET Core поддерживается провайдерами. Нужно пройти долгий путь, чтобы устранить проблемы, связанные с блокировкой, которую люди вынуждены использовать в этой технологии.

Документация и сообщество

Документация является всеобъемлющей для Lambda, чего и следовало ожидать от самого зрелого продукта в этом списке. Документация обновляется, отражая новые функции, и публикуется в онлайн. Поэтому нет необходимости бороться с такими неприятными моментами, как “это-не-работает-так-как-он-сказал”.

Сообщество также довольно велико. Это, опять же, связано с гораздо большими возможностями для роста в течение почти 3 лет с тех пор, как Lambda вышла на сцену.

Модель ценообразования

В настоящее время Lambda имеет свободный уровень, который позволяет получать миллион запросов и 400 терабайт-секунд времени вычислений в месяц. Этого достаточно, чтобы позволить вам выполнить достаточно много запусков, прежде чем вы получите какие-либо счета. Запросы выше этого порогового значения выставляются по цене $ 0,00001667 / ГБ — это самая низкая цена в облачном пространстве.

Сравнительные ежемесячные цены

Unicorn: $20,830.83. Heavy: $120.16. Medium: $4.55. Light: $0.00.

Функции Azure (Microsoft Azure)

Платформа Azure от Microsoft быстро расширяет свои функции (клиентская база) в последние годы, так как она конкурирует с AWS за долю на рынке. Список поддерживаемых ресурсов в значительной степени аналогичен тому, что предлагает AWS, но Azure также предоставляет довольно много дополнительных функций, характерных для аудитории .NET и Typcrip.

Azure Functions — бессерверное предложение от Microsoft, предоставляющее аналогичную модель функций-как-услуг AWS Lambda.

Поддерживаемые языки

Картина здесь немного отличается от AWS. Поддерживаемые языки — JavaScript (и языки, которые компилируются) с Node.js, C #, F #, Python, PHP, Bash, Batch и PowerShell.

Внедрение последних трех вышеперечисленных вариантов интересно тем, что Microsoft предпочел включить языки, которые традиционно считаются наиболее полезными для локального управления компьютерами и автоматизации задач. Это может быть сигналом того, что Microsoft видит перспективы в расширении бессерверного хостинга в центрах обработки данных и предвосхищает большую аудиторию среди разработчиков.

Документация и сообщество

Microsoft документирует все свои продукты — это самая опытная компания, когда дело доходит до взаимодействия со своим сообществом разработчиков.

Сообщество также быстро растет не потому, что это первый выбор для разработчиков в Windows и .NET, а потому, что эта модель ценообразования является чрезвычайно конкурентоспособной, как мы увидим ниже.

Модель ценообразования

Microsoft поставил цену на Azure Functions, равную Amazon и соответствующую свободному уровню Lambda. Когда трафик добавляется к стоимости, оценки затрат фактически являются самыми низкими среди крупных провайдеров при цитировании для одной и той же рабочей нагрузки. На основе последних обзоров производительность сопоставима с другими провайдерами.

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

Если вы работаете над стеком, основанном на технологиях Microsoft (например, .NET), можете вздохнуть с облегчением: потому что вас не рассматривают как пленников или не обдирают, когда дело доходит до выставления счетов за оказание услуг. Частично это относится к Microsoft, предлагающему самую низкую скорость для исполнения $ 0,000016 / ГБ, что ниже, чем
Amazon.

Сравнительные ежемесячные цены

Unicorn: $19,993.60. Heavy: $115.40. Moderate: $3.60. Light: $0.00.

Облачные функции (Google Cloud Platform)

Никто не удивится, узнав, что у «большой тройки» в облачной вычислительной среде есть свои предложения, хотя функция Google «как-в-сервисе», похоже, получила меньше внимания, чем предложения Microsoft и Amazon. Я немного удивлен, так как Google кажется столь же убедительным.

Облачные функции — беcсерверное предложение Google, и хотя с точки зрения паритета характеристик оно в основном схоже с Azure и AWS, у него есть несколько заметных отличий.

Поддерживаемые языки

В настоящее время Google Cloud Functions поддерживает только Javascript, но ожидается (хотя пока информация не подтверждена), что Google Cloud Functions будет расширяться в ближайшем будущем.

Если вы считаете, что видите паттерн, это потому, что он выглядит (по крайней мере на данный момент), как будто разработчики Node.js действительно будут иметь больше вариантов при переходе на бессерверную архитектуру.

Также стоит отметить (и это относится и к другим провайдерам), что другие языки, которые могут быть скомпилированы в Javascript (например, Typcript, Coffeescript), также являются вполне допустимыми при разработке программного обеспечения для этих служб.

Документация и сообщество

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

Сообщества отстает от Amazon и Microsoft хотя бы потому, что у них нет преимущества первого хода Amazon или обширного сообщества разработчиков Microsoft, чтобы опираться на поддержку. Сообщество значительно возрастет, но Cloud Functions — все еще довольно молодой продукт, поэтому потребуется время, чтобы найти аудиторию.

Модель ценообразования

Модель ценообразования для облачных функций Google изменяется по сравнению с тем, как она была реализована в AWS и Azure. Свободный уровень Google позволяет получать 2 миллиона запросов в месяц с оплатой $ 0.0000004 за вызов свыше этого значения. Затем биллинг также учитывает сетевой трафик, используемый функциями в совокупности.

Именно по этой причине я приписал значение 200 кб трафика на запрос в вычислениях в качестве базовой линии, что кажется разумным для веб-приложения.

К сожалению, калькулятор цен на веб-сайте Google, по-видимому, не учитывает оценку трафика или свободный уровень при расчете цен — так как я использую калькулятор на сайте ServerlessCalc.com для котировок Google.

Сравнительные ежемесячные цены

Unicorn: $23,321.20. Heavy: $138.95. Moderate: $9.76. Light: $0.00.

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

OpenWhisk (IBM Bluemix + OSS)

Интересно увидеть, как IBM войдет в бессерверную сферу. Хотя он не является крупным игроком в облачном пространстве на сегодняшний день, IBM вложила значительные средства в создание и продвижение Bluemix в качестве онлайн-сервиса.

OpenWhisk — бессерверное предложение IBM. Оно отличается как по архитектуре, так и по количеству поддерживаемых сервисов, доступных для пользователей. У OpenWhisk есть пара тузов в рукаве, которые он сбрасывает, когда дело касается привлекательности для разработчиков.

В то время как OpenWhisk доступен как предложение FaaS от IBM, в его основу также входит проект с открытым исходным кодом под руководством фонда Apache.

Это в значительной степени сводит на нет любые опасения по поводу блокировки, а также обеспечивает преимущества модели «все-в-оплате-за- событие», которая делает бессерверность привлекательной.

Как проект с открытым исходным кодом, OpenWhisk также со временем должен хорошо приспособиться принимая помощь сообщества, причем не только в виде исправлений, но и с точки зрения интерфейсов со сторонними службами.

Поддерживаемые языки

В настоящее время OpenWhisk официально поддерживает только Node.js и Swift, но дает возможность запускать практически любой язык или среду выполнения. Поэтому можно создать контейнер докеров, хотя и с некоторыми оговорками. Ближайшая заявленная цель OpenWhisk — увеличение количества официально поддерживаемых языков..

Документация и сообщество

Как и следовало ожидать от проекта Apache, документация конкретизирована и постоянно расширяется. Также доступно много материалов, которые разбросаны по всему Интернету, и официальный канал YouTube со множеством рекомендаций, которые помогут начать работу.

Модель ценообразования

На Bluemix ценообразование работает иначе.

В то время как Bluemix предлагает те же 400 терабайт секунд в месяц, что и AWS и Azure, запросы выше этого уровня оцениваются в размере $ 0,000017 / ГБ, что само по себе разумно, но немного выше.

Сравнительные ежемесячные цены

Unicorn: $21,243.20. Heavy: $120.70. Medium: $3.83. Light: $0.00.

Fission.io (OSS)

В предыдущей статье я кратко остановился на Fission, но здесь также стоит упомянуть о нем, поскольку в этом списке Fission уникален. Это не универсальный провайдер, а платформа с открытым исходным кодом, обеспечивающая бессерверную архитектуру над Kubernetes.

У Fission есть плюсы и минусы. Очевидный минус в том, что вам все равно придется взаимодействовать с провайдером для оплаты «металлических» затрат для запуска приложения. Кроме того, вы не сможете свободно управлять инфраструктурными ресурсами в той степени, в которой могли бы, если бы выбрали одного из провайдеров FaaS, упомянутых выше.

Преимущество Fission заключается в том, что ваш код все еще может быть написан и выполнен без сервера. Fission берет на себя основную часть задач автоматического масштабирования ресурсов в Kubernetes, освобождая вас от управления ресурсами вручную.

Возможно, самым большим преимуществом Fission является то, что (как в случае с OpenWhisk) вы не привязаны к одному провайдеру и можете свободно перемещаться от одного к другому, при условии, что они поддерживают кластеры Kubernetes (и любые другие конкретные требования, которые может иметь ваше приложение).

Поддерживаемые языки

Преимущество Fission, заключается в том, что на самом деле неважно, на каком языке написано ваше приложение. Пока есть возможность установить время выполнения для выбранного языка, вы можете без усилий создавать серверные действия с любой технологией.

Если вы планируете развиваться в C #, Go, Node.js, PHP или Python, вам будет интересно узнать, что поддержка этих языков доступна уже сегодня, но распространяется на дополнительные стеки (при условии, что время выполнения / компиляторы доступны в Linux) тривиальны.

Документация и сообщество

На данный момент сообщество Fission довольно мало, хотя документация имеет хороший обзор основных функций. Но лучше связаться с официальным каналом Slack.

Ценообразование

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

По правде говоря, на данный момент запускать собственный кластер Kubernetes вряд ли будет дешевле (как с точки зрения реальных затрат, так и времени, потраченного на его поддержку). Но вы получите выгоду в обмен на возможность поменять провайдера. Это поможет сохранить ценовую конкурентоспособность в долгосрочной перспективе.

Оригинал: Serverless Hosting Comparison.

--

--