Ответ 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
Сценарий установки
https://github.com/bryanmacfarlane/svcinstall
Сценарий выхода из оболочки на основе кода выхода из процесса
Опубликовать сайт