Подтвердить что ты не робот

Управляемые хосты NodeJS vs VPS

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

Еще один путь для размещения приложения nodejs - это установка стека на VPS, например Linode.

Мне интересно, какое основное различие между этими двумя типами развертывания. Какие факторы следует учитывать при выборе одного над другим?

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

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

4b9b3361

Ответ 1

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

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

Еще одним соображением является то, что некоторые хостеры и облачные провайдеры предлагают собственные или отличные варианты технологий. У них есть свои причины, и они предлагают ценность, но это означает, что если вы хотите переключить облачных провайдеров, это может означать, что вам придется переписать код, сценарии развертывания и т.д. С другой стороны, использование виртуальных машин со стандартной ОС в качестве базовой довольно общий. Если вы автоматизируете/скрипте/документируете конфигурацию своих виртуальных машин и ваш код остается общим, тогда ваши параметры остаются открытыми. Если вы берете зависимость от проприетарной облачной технологии, то было бы хорошо абстрагировать ее за интерфейс, чтобы она была отделена от компонентов и не распространялась по всему коду.

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

  • получить виртуальную машину у облачного провайдера
  • Пришлось обновлять и исправлять ОС
  • Мне пришлось установить и настроить git в качестве канала публикации
  • Мне нужно было написать несколько сценариев и использовать их навсегда, чтобы он работал
  • Мне пришлось настроить обратный http-прокси, чтобы заставить его работать на нескольких сайтах.
  • Мне пришлось настроить DNS с облачным провайдером, открыть порты для git и т.д....

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

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

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

Nodejitsu с открытым исходным кодом свои инструменты, что также облегчает, если вы делаете свои собственные.

Если вы делаете это самостоятельно, вот несколько ссылок, которые могут вам помочь:

Поддержание сервера:

https://github.com/nodejitsu/forever/

http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever

https://github.com/bryanmacfarlane/svchost

Выскочка и Монит общий автоматический запуск и перезапуск с помощью мониторинга

http://howtonode.org/deploying-node-upstart-monit

Кластерный узел Запускает один процесс на ядро

http://nodejs.org/docs/latest/api/cluster.html

Обратный прокси-сервер

https://github.com/nodejitsu/node-http-proxy

https://github.com/nodejitsu/node-http-proxy/issues/232

http://blog.nodejitsu.com/http-proxy-middlewares

https://github.com/nodejitsu/node-http-proxy/issues/168#issuecomment-3289492

http://blog.argteam.com/coding/hardening-node-js-for-production-part-2-using-nginx-to-avoid-node-js-load/

Сценарий установки

https://github.com/bryanmacfarlane/svcinstall

Сценарий выхода из оболочки на основе кода выхода из процесса

Опубликовать сайт

Использование git для публикации на веб-сайте

Ответ 2

ИМХО самый большой недостаток в настройке собственного стека заключается в том, что вам нужно управлять такими вещами, как создание Node.js run forever, запуск его как демона, перенос его обратно-прокси-сервера, такого как Nginx, и и так далее... замечательная вещь о Node.js - создание возможности запуска веб-сервера с одним лайнером - является одним из его самых больших недостатков, когда дело доходит до готовых к выпуску систем.

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

Это намного проще с хостёрами: обычно это a git push и это. Масштабирование? Легко. Репликация? Легко....? Легко. Все в течение нескольких кликов.

Недостатком хостеров является то, что вы не можете настроить среду. Хорошо, вы, вероятно, можете выбрать версию Node.js и/или npm для запуска, но это. У вас нет контроля над тем, какое программное обеспечение стороннего производителя установлено. У вас нет контроля над ОС. Вы не можете контролировать, где находятся серверы. И так далее...

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

Итак, в основном вопрос о Node.js такой же, как и для каждой другой технологии: это про против индивидуализма, ценообразования, масштабируемости, надежности, знаний,...

Я лично решил пойти с хостером: время и усилия, которые я сохраняю, легко превосходят недостатки. Имейте в виду: для меня лично.

На этот вопрос нужно ответить индивидуально.