Статьи

AppFog vs. Heroku

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

Приложения, работающие на Heroku, являются автономными …

Для незнакомых людей PAAS обычно относится к сервису, который заботится о базовом оборудовании и ОС, которые поставляются при создании веб-приложения. Как разработчики, эти платформы позволяют нам легко создавать или создавать прототипы приложений без обработки какого-либо оборудования или настройки серверов.

Теперь достаточно рассказать о том, что такое PAAS, давайте перейдем к двум выбранным кандидатам: Heroku и AppFog . На первый взгляд, эти услуги могут показаться довольно похожими. Оба они поддерживают несколько языков, предоставляют базы данных и надстройки и позволяют запускать ваше приложение в облаке. Но эти компании по-разному подходили друг к другу с точки зрения исполнения.


Вы можете подумать, что цены между этими двумя конкурентами в основном одинаковы, но это не может быть дальше от истины.

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

Бесплатный план AppFog поставляется с 2 ГБ оперативной памяти. Следующий план дает вам 4 ГБ оперативной памяти, но за крутые 100 долларов в месяц.

Ваша оперативная память распределяется между всеми приложениями в вашей учетной записи. Минимальный объем оперативной памяти на экземпляр составляет 128 МБ. Таким образом, вы можете иметь до 16 экземпляров по 128 МБ, один экземпляр с колоссальными 2 ГБ или что-то среднее между ними.

Heroku, с другой стороны, взимает плату за процессорное время вашего экземпляра; RAM поставляется бесплатно с каждым экземпляром. Ваши приложения не разделяют часы выставления счетов, и Heroku дает вам 750 бесплатных часов в месяц за приложение. Этого достаточно, чтобы запустить один экземпляр за месяц и все еще иметь время (30 дней x 24 часа = 720).

Стоимость дополнительного времени составляет 0,05 доллара в час, а время отслеживается по секундам. Так что если у вас есть фоновый работник, который может выполнить свою работу за 15 секунд, с вас будет взиматься плата только за эти 15 секунд по цене, указанной выше.

Трудно сравнить эти тарифные планы, потому что у них обоих есть свои сильные и слабые стороны. Давайте сравним несколько случаев на обеих этих платформах и посчитаем, сколько вы заплатите. Я собираюсь рассчитать цены на основе 512 МБ RAM AppFog экземпляров; это то, что вы получаете от Heroku. Естественно, оптимизация оперативной памяти вашего приложения даст вам больше от вашей учетной записи.

Поддержка баз данных чрезвычайно важна, и … Heroku — явный победитель.

  • Сценарий № 1 — у вас есть одно приложение, работающее в четырех экземплярах за полный месяц. Это будет бесплатно на AppFog, но вы заплатите 107 долларов за Heroku.
  • Сценарий № 2 — у вас есть более четырех приложений, каждое из которых работает только один экземпляр. На Heroku это было бы бесплатно, хотя в AppFog это может начать складываться (5-8 приложений = 100 долларов, 9-32 = 380 долларов, 33-64 = 720 долларов).
  • Я лично предпочитаю ценообразование Heroku из-за модели «за приложение», а не из AppFog «за учетную запись». Это позволяет создавать как приложение на полный рабочий день, так и работника с частичной занятостью, оставаясь при этом в рамках бесплатного плана. Конечно, вам придется начать платить за приложение, если оно станет популярным. Сравните это с AppFog, где, в конце концов, вам придется начать раскошелиться, прежде чем оценивать спрос.

    Опять же, обратите внимание, что это только мое личное мнение. Мне нравится создавать случайные приложения и инструменты в свободное время без какого-либо финансирования, и Heroku лучше подходит для этой цели. Однако, если вы планируете создать только одно приложение или вам нужны экземпляры с объемом ОЗУ более 512 МБ, тогда лучше подойдет AppFog.

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

    Когда дело доходит до поддержки, AppFog — явный победитель.

    Подумайте на минуту, что один экземпляр вашего приложения может обслуживать 100 клиентов. При цене 36 долл. США в месяц вы можете легко разделить затраты между клиентами и предложить приемлемую цену, которая будет соответствовать вашему приложению.

    AppFog, с другой стороны, может быть немного дешевле, но пороги платежей, похоже, слишком сильно расходятся. Используя приведенный выше пример, когда вы переключаетесь с восьми экземпляров на девять, вам придется доплатить 180 долларов США только за один экземпляр. Но опять же, вы ничего не платите, пока не достигнете 33 экземпляров, после чего вы в основном удваиваете свой счет с 380 до 720 долларов. Таким образом, иногда вы платите более 42 долларов за каждый экземпляр, а иногда платите менее 12 долларов за каждый.


    Это еще одна область, где Heroku сильно отличается от AppFog. Приложения, работающие на Heroku, являются автономными; все рабочие и веб-экземпляры объединены в один репозиторий Git. Это работает путем помещения всего вашего приложения (веб-сервера, фоновых рабочих, сценариев и т. Д.) В репозиторий Git и создания Procfile . Здесь вы назначаете имена различным экземплярам вместе с тем, как они запускаются. Например, если у вас есть проект Python, который служит веб-экземпляром, и файл для фоновой электронной почты, то ваш Procfile может выглядеть следующим образом:

1
2
web: python site.py
emailer: python emailer.py

Первое слово каждой строки — это имя экземпляра. Вторая часть (после двоеточия) — это команда для запуска приложения. С Procfile вы можете масштабировать любой экземпляр по своему желанию через сайт, командную строку или API.

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

1
2
3
4
5
6
7
App1
    -web instance
    -worker_1 instance
    -worker_2 instance
App2
    -web instance
    -worker instance

Это просто, но сравните это с AppFog:

1
2
3
4
5
App1_web
App1_worker_1
App1_worker_2
App2_web
App2_worker

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


Поддержка баз данных чрезвычайно важна, и между этими двумя PAAS Heroku является явным победителем. Heroku предлагает только PostgreSQL, но их собственная база данных PostgreSQL — превосходная база данных производственного качества. Это не то, что они ударили вместе; они даже предлагают его как самостоятельный продукт .

AppFog, с другой стороны, поддерживает MongoDB, MySQL и PostgreSQL. К сожалению, однако, MongoDB и Postgres все еще находятся в бета-версии; AppFog накладывает ограничение 100 МБ на все базы данных. Обратите внимание, однако, что AppFog говорит, что это только временно; в настоящее время они обрабатывают добавление дополнительных настроек базы данных.

Если ваше приложение невелико или если вы не очень беспокоитесь о простоях или ограничениях дискового пространства, тогда вы действительно можете использовать любой PAAS. Но если вы создаете производственное приложение и вам нужна надежная, многофункциональная система баз данных, я предлагаю вам использовать базы данных Heroku Postgres, даже если вы планируете использовать AppFog для своего хостинга. Как я уже упоминал, Heroku предлагает свою базу данных как самостоятельный продукт по очень конкурентоспособной цене.


Обе службы предоставляют множество одинаковых надстроек, но Heroku предоставляет значительно больше из-за того, что они работают в бизнесе дольше, чем AppFog. Heroku предлагает более 100 надстроек, в то время как AppFog на момент написания этой статьи предлагает около 13. Думаю ли я, что это должно стать решающим фактором? На самом деле, нет. Конечно, приятно настроить стороннюю службу одним щелчком мыши, но вы захотите напрямую зарегистрироваться для добавления, а не через Heroku или AppFog. Это иногда дает вам лучшие возможности и более четкую информацию о ценах.


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

Heroku предлагает поддержку 24×7 … но только по цене. Вы должны заплатить за их «критический бизнес-пакет». Я не говорю, что у Heroku плохая поддержка, но я не уверен, что вы можете конкурировать с мгновенными ответами.


Чтобы упростить ваше решение, я создал следующую таблицу, в которой обобщены все приведенные выше замечания:

Означает ли это, что вы должны пойти с Heroku, потому что он выиграл 3,5 / 5 раз? Не обязательно. Все вышеизложенное верно, но можете ли вы сравнить выигрыш в дополнениях как важный для выигрыша в ценообразовании? В конечном счете, это то, что только вы можете решить в зависимости от потребностей вашего приложения.

Как всегда, оставьте комментарий, если у вас есть какие-либо вопросы или мысли о Heroku или AppFog. Спасибо за прочтение.