Хостинг приложений на Java, Node.JS, React и не только. Обзор недорогих и бесплатных вариантов

В статье мы рассмотрим варианты хостингов для Java, Node.JS, React, Go, Python и других web и не только приложений. Разумеется, вы можете разместить ваше приложение на любом VPS-хостинге, но их мы не будем рассматривать, так как они не предлагают встроенной поддержки Node.js, Java, React и т.д.. Мы рассмотрим только специализированные решения, предлагающие простой деплой данных приложений.

  • Heroku. Легендарная компания, стоящая на заре подобного вида хостинга, благодаря которой стал популярен GitOps подход. Первый по-настоящему serverless-провайдер. Приложения развертываются в специальных прерываемых контейнерах, называемых Dynos. Сервис качественный, но очень дорогой - в среднем по 25-50$ в месяц за приложение, если вы не хотите, чтобы оно останавливалось, когда к нему нет запросов. И есть проблемы с оплатой российскими картами. Поддерживает приложения на Java, Python, Node.JS, Ruby, Go.
  • Amvera Cloud - российский сервис. Очень похож на Heroku по основной механике развертывания через push в мастер ветку привязанного или выделенного Git. Стоит существенно дешевле - минимальный тариф 170 руб./мес., а уже за 290 руб. вы получите объем ресурса, доступный в Heroku за 50$. Есть стартовый баланс для бесплатного тестирования. Поддерживает Python, Java (Maven, Gradle), Node.js и произвольные проекты, упакованные в Docker. В ближайшее время будут добавлены Golang, PHP и ряд других окружений. Помимо этого присутствует поддержка PostgreSQL, MySQL, Redis и MongoDB.

Движки хостинга приложений от Google, AWS и Azure:

Данные сервисы концептуально похожи и предназначены для легкого развертывания приложений в классических облаках от Google, Microsoft и Amazon. Оплата за сервисы не взимается, но необходимо оплачивать ресурсы самих облачных провайдеров.

Другие похожие сервисы для хостинга приложений:

  • Clever Cloud - французский сервис, поддерживающий развертывание проектов на Golang, Haskell, Java, Node, PHP, Python, Ruby, Rust, Scala и .NET. Сервис похож на Heroku, но предлагает более демократичные цены (от 4,5 евро за инстанс приложения). Единственное, вам потребуется европейская карта для оплаты (с которой сразу спишется 20 евро).
  • Engine Yard - сервис доставки кода в AWS c GitOps подходом. Предлагает инстансы AWS с настроенной доставкой кода. В свое время сервис был одним из конкурентов Heroku, но остался на “вторых” ролях. Из особенностей - высокая стоимость, которая начинается от 180$ за инстанс EC2.

Альтернативные способы хостинга приложений

Использование serverless функционала облачных провайдеров. Из преимуществ - можно организовать почти бесплатный хостинг. Из недостатков - существует определенный порог входа и данный функционал больше предназначен для использования в качестве составной части более сложных продуктов. Как один из примеров - регулярная отправка писем, где функция отрабатывает и уходит в спящий режим. Другим недостатком serverless является холодный старт. Когда приходит первый запрос к вашему приложению, оно ответит не сразу, а только когда запустится. Поэтому это не лучший вариант для ботов и подобных сервисов, где ответ необходим в режиме реального времени.Использования инструмента на ваш выбор для автоматизации CI/CD в связке с классическим VPS или облаком. Вы платите только за хостинг, но сам инструмент нужно установить и настроить.

Составим сравнительную таблицу.

Красным выделены негативные факторы, зеленым - позитивные, а белым - спорные/промежуточные моменты.
Красным выделены негативные факторы, зеленым - позитивные, а белым - спорные/промежуточные моменты.

В статье мы рассмотрели несколько специализированных сервисов для хостинга приложений на Java, Python, Node.JS, Ruby, Golang. Концептуально можно выделить следующие подходы:

  • специализированный хостинг/облако/сервис с GitOps подходом. Ваша задача - отправить код через push в мастер-ветку выделенного репозитория, после чего сервис сам все соберет и запустит. К таким сервисам относятся Heroku (США), Amvera Cloud (Россия), Clever Cloud (Франция).
  • инструмент развертывания приложений от AWS, GCP и Azure, соответствующий инфраструктуре данных облачных провайдеров.
  • VPS с самостоятельной настройкой инструмента для осуществления CI/СD.

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

11 комментариев

Самый лучший вариант с моей т.з. это чистый Linux на VPS. Ибо только желание и попытка разобраться во всем с самого начала и настройка с чистого листа (довольно простая, для Node.JS, Python, PHP, SQL, etc, ) дает полное понимание последний того или иного решения и почему что-то глючит или работает не так.
Да "они не предлагают встроенной поддержки", но эту поддержку довольно просто встроить, ничего сложного там нет абсолютно.

1

VPS дает больше свободы действий. Но с другой стороны и "выстрелить себе в ногу" проще.

Привет, подскажи пожалуйста, я хочу развернуть сайт сделанный на gatsby,
если я арендую vps хостинг, смогу запустить свой сайт без поддомена?
Есть хотя бы примерные инструкции?

На самом деле есть много иностранных сервисов с развертыванием через Git. Можно их рассмотреть.

Сервисы есть, но как ниже написал (не туда ответил), либо карта нужна, либо ограничений на бесплатных тарифах очень уж много.

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