Подробное руководство, включая сравнения

28 ноября 2022 года — печальный день для разработчиков. Если вы еще не слышали, Salesforce (материнская организация Heroku) с этой даты прекращает использование своего бесплатного тарифного плана.

В течение многих лет Heroku была де-факто стандартной платформой как услуга (PaaS). Так много студентов и разработчиков развернули свое первое веб-приложение на Heroku. Как ни странно, Heroku сыграл ключевую роль в моей карьере.

TL;DR. Если вы ищете альтернативы уровню бесплатного пользования Heroku, ознакомьтесь с free-for.dev/#/?id=paas. Я перенес свои задания Cron в Northflank, а Heroku Dynos — в Koyeb.

Многое произошло

Для контекста, в 2022 году для Heroku многое произошло. Два наиболее заметных события:

  1. В апреле 2022 года в Heroku произошло нарушение безопасности (инцидент), в результате которого были скомпрометированы секреты CI и Review App. Интеграция GitHub Actions на Heroku не работала пару месяцев. Сообщения от Heroku были объективно плохими. Я испытал это на собственном опыте, когда мне пришлось прибегнуть к использованию GitHub CI Action для развертывания моего приложения.
  2. В августе 2022 года Heroku объявили об удалении своих планов бесплатных продуктов.

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

Хотя дела пошли плохо, все, что мог предложить Heroku, было по-прежнему великолепно, и я решил придерживаться этого. До сих пор, т.е.

Альтернативы Героку

Последние пару недель я переношу свои демоверсии и маленькие проекты из Heroku.

Если вы все еще ищете альтернативы уровню бесплатного пользования Heroku, загляните на free-for.dev (GitHub).

Несмотря на то, что сейчас в Интернете разбросано множество сообщений в блогах и рекомендаций, free-for.dev обеспечивает наилучшее освещение. Список содержит краткое описание того, что делает каждая альтернатива Heroku.

Что я искал

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

  1. Эквивалентные бесплатные уровни с точки зрения ЦП и ОЗУ. (спойлер: ни один из них не был так хорош)
  2. Поддержка заданий Cron из коробки. В идеале не требуется никакого странного обходного пути
  3. Пользовательский домен
  4. Интеграция с GitHub
  5. Поддержка базового ведения журналов и мониторинга (т. е. ЦП, памяти, диска, сетевых показателей)

Меня больше всего волнует не стоимость пропускной способности и поддерживаемый регион каждой PaaS.

Мои выборы

Heroku Postgres — с мая 2022 года мигрировал с Heroku Postgres на Railway. Пока у меня к нему претензий нет. Другой альтернативой, которую я рассматривал, была PlanetScale. Однако я не пошел на это, потому что он не совместим с Postgres.

Приложения Heroku Dynos — Burplist перенесены в Koyeb. Попробовав другие известные альтернативы Heroku, такие как Fly.io, Northflank и Railway, я могу с уверенностью сказать, что миграция с Heroku на Koyeb потребовала наименьших усилий и изгибов. Это просто работает в моем случае.

Планировщик Heroku — для работы в Cron я выбрал Northflank. Их поддержка заданий Cron, безусловно, лучшая. Помимо цен, опыт разработчиков намного лучше, чем у Heroku Scheduler.

Надстройки Heroku — не подходят для моего случая. Я полагался на надстройки Heroku для мониторинга и ведения журнала. К счастью, сегодня большинство современных PaaS поддерживают это «из коробки».

Некоторые мысли

К сожалению, бесплатные планы большинства альтернатив Heroku не так хороши, как у Heroku. Например, большинство бесплатных вычислительных инстансов имеют один общий ЦП и 256 МБ ОЗУ (Heroku Free Dynos начиналась с 512 МБ ОЗУ). Не учитывая ограниченное количество разрешенных приложений.

Удивительно, но большинство этих PaaS до сих пор не поддерживают выполнение заданий Cron. Еще раз спасибо Northflank за предоставление такой возможности с большим опытом разработчиков.

Для Koyeb поддерживаемые регионы для бесплатных уровней на момент написания этой статьи весьма ограничены.

Наконец, render.com — еще одна популярная альтернатива на рынке. Вы можете проверить их.

Сравнение стоимости

Обновлено 21 ноября 2022 г.

Бесплатные уровни

Цены

Одна вещь, которую я здесь не упомянул, это стоимость полосы пропускания (входящая + исходящая). Это то, что вы, возможно, захотите серьезно рассмотреть для более крупных проектов.

Они чувствуют себя… другими

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

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

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

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

Хотя я счастливый платящий клиент, жалко платить 5 долларов в месяц за то, чем я не пользуюсь в 99% случаев.

Заключительные мысли

К сожалению, это так. Интернет — мерзкое место. Если вы предлагаете бесплатные услуги в Интернете, люди найдут способ злоупотребить ими. Я помню размещение моего первого сокращателя ссылок. Сервис сразу же заспамил в первый же день, когда я сделал его общедоступным. Мне пришлось внедрить CAPTCHA и ссылки с истекающим сроком действия, чтобы уменьшить злоупотребления.

Сегодня, когда я вижу что-то по-настоящему бесплатное (если вы понимаете, что я имею в виду), созданное отдельными людьми, я не могу не задаться вопросом, как они будут поддерживать устойчивый свет из доброй воли. Я ненавижу видеть, как чьи-то добрые намерения терпят неудачу. Может быть, нам стоит начать платить за интернет-вещи.

Хотя я использую облачные сервисы, такие как AWS, почти каждый день, PaaS, такие как Heroku, всегда занимают особое место в моем сердце.

Героку был великолепен. Я думаю, что это проделало большую работу по поднятию планки в области PaaS, помимо косвенной защиты бесплатного образования (так или иначе).

Спасибо, Героку, от всего сердца.

Want to Connect?

Originally published at jerrynsh.com