PDA

Просмотр полной версии : А подскажите облачный хостинг под простенький Node.js-сервер


mikhailk
20.12.2016, 18:02
В общем, есть простенький сервер на Node.js, который ничего не делает, просто контролирует сессии пользователя. Пользователь авторизуется в игре на своем iPhone через GameCenter и коннектится к этому серверу с несложной процедурой авторизации через серверный функционал GameCenter. Т.е., никакой базы данных пользователей на сервере нет, ничего никуда не пишется, все в памяти. В дальнейшем, если пользователь авторизовался повторно с другого устройства, то сервер контроля сессий прибивает предыдущую сессию пользователя и отправляет на устройство из предыдущей версии команду, которая отключает приложение.

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

Как я понял, сейчас пути два - либо специализированный хостинг Node.js, тогда туда надо будет просто залить сервер, либо просто хостинг linux, куда надо будет накатить Node.js с необходимыми дополнениями и сверху залить сервер.

К первым, как я понял, относятся
https://www.heroku.com/
http://nodejs-cloud.com/en
https://www.nodejitsu.com/
https://modulus.io

Причем, если о heroku я хоть что-то слышал, то остальные вообще как в тумане.

В качестве второго может быть тот же
https://aws.amazon.com/ru/
или любой другой облачный хостинг.

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

undefined
20.12.2016, 18:17
используем сейчас амазоновский aws:полная свобода ставь что угодно.Единственное ограничение - мускуль дико дорогой(что-то около 200$ просто за факт того, что он есть).Еще сегодня пришло письмо счастья о каком-то налоге 18% для россиян.По бд есть варианты:
1)Заказать вариант попроще
2)Держать бд рядом с апачем(тогда можно забыть про балансировку нагрузки+неизвестно как амазон к этому относится)
3)Если в бд пишется не часто, можно заказать что-нибудь из разряда no sql.Они, вроде, подешевле

mikhailk
20.12.2016, 18:41
Не, у меня там бд нет.

Но, вообще, я уже глянул амазоновский.
Наверное его буду использовать.

undefined
20.12.2016, 18:44
если без бд там вообще копейки получаются

wvxvw
22.12.2016, 15:18
Ну как бы Нода сама по себе в качестве HA / load-balancer не умеет ничего. Т.е. если сервис должен скейлится, то нужно думать не про ноду, а про то каким образом скейлить.
Простой вариант, но не самый надежный: поставить на один из амазоновских серверов ngnix, и настроить в нем форвардинг на другие сервера. Предположительно, обычный ngnix будет более надежным чем отдельные инстансы Ноды (ну и плюс, в нем логики почти никакой не будет).
Более сложный вариант: установить на нескольких амазоновских серверах что-то типа etcd / redis / аналогичную распределенную базу данных, которая бы координировала состояние всего кластера. Тогда клиенту можно было бы выдавать все адресса машин в кластере, т.о. перенося отвественность за HA на клиента.

Скорее всего "облачные решения" для Ноды делают что-то из вышеописаного. Разница будет скорее всего в том, на сколько можно контролировать то, что они делают.

undefined
22.12.2016, 15:24
так сам амазон же предоставляет балансировку.Покупаешь 2 интстанса и за доп. плату тебе дают балансировщика, который раскидывает запросы по инстансам.У нас,например, все крутится на двух апачах+мускуль+с3

wvxvw
22.12.2016, 19:52
Ну это если арендовать "готовые решения". Если арендовать просто машину с установленной системой, то это нужно будет делать самому.
Опять, же, балансировщик не всегда подходящее решение (если нужна повышеная надежность).

undefined
22.12.2016, 20:25
а в чем ненадежность если не секрет?

mikhailk
23.12.2016, 18:46
Скорее всего "облачные решения" для Ноды делают что-то из вышеописаного. Разница будет скорее всего в том, на сколько можно контролировать то, что они делают.

Контролировать не нужно.

wvxvw
24.12.2016, 12:58
а в чем ненадежность если не секрет?

"надежность" - это мой такой перевод HA (high availability). Это может выражаться по-разному, но тут я имел в виду, что у предоставляемого сервиса есть избыточность. Т.е. если один из адрессов предоставляющих услугу почему-то не отвечает, то ту же услугу можно получить с другого адресса.