Хостинг приложений на 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 подход к деплою.

Ответить