24

nodejs 向けのマネージド クラウド ベースのホスティング サービスが多数ありますが、これらは比較的新しく、一部はまだベータ版です。

nodejs アプリをホストするもう 1 つの方法は、Linode のような VPS でスタックをセットアップすることです。

ここで、これら 2 種類の展開の基本的な違いは何だろうと思っています。どちらかを選択する際に考慮すべき要素はどれですか?

これらのサービスがどれほど若いかを考えると、どちらが本番環境に適していますか。

明確にするために、私はプロバイダーの選択を求めているのではなく、管理された nodejs 固有のホスティングでホストするか、昔ながらの自己セットアップ VPS でホストするかを決定します。

4

3 に答える 3

34

サービスの 1 つを使用することは、大部分が無人です。コードを記述し、ボックスの管理、プロセスの維持、公開チャネルの作成、OS へのパッチ適用などについて彼らに心配させます...

対照的に、独自の VM を使用すると、より多くの制御が可能になりますが、より多くの先行投資と継続的な時間投資が必要になります。

もう 1 つの考慮事項は、一部のホスティング会社やクラウド プロバイダーが独自の技術や独自の技術バリエーションを提供していることです。それらには理由があり、価値を提供しますが、クラウド プロバイダーを切り替えたい場合は、コードやデプロイ スクリプトなどを書き直す必要があることを意味します。一方、標準 OS の VM をベースラインとして使用するとかなり一般的です。VM の構成を自動化/スクリプト化/文書化し、コードが一般的なままである場合、オプションは開いたままになります。プロプライエタリなクラウド テクノロジーに依存している場合は、インターフェイスの背後で抽象化して、分離されたコンポーネントにし、コード全体に散らばらないようにすることをお勧めします。

私は両方をやった。私が最近 VM パスを受講したのは、主に学習体験が必要だったからです。そうしなければならなかった:

  • クラウド プロバイダーから VM を取得する
  • OS の更新とパッチ適用が必要でした
  • 発行チャネルとして git をインストールして構成する必要がありました
  • いくつかのスクリプトを作成し、forever などを使用して実行し続ける必要がありました
  • 複数のサイトを実行するには、リバース http プロキシを構成する必要がありました。
  • クラウドプロバイダーでDNSを構成し、git用にポートを開く必要がありました...

リストは続きます。最終的に、コーディング以外の時間はかかりましたが、より多くのことを学びました。それらがあなたにとって重要な場合は、試してみてください。コードの作成に集中したい場合は、ノード ホスティング プロバイダーが最適です。

最後に、さらに多くのオプションがありました。2 つ目のサイトを追加したかったのです。リバース プロキシにエントリを追加し、スクリプトを追加して、別のアプリを永久に別のサイトで起動します。より多くのコントロール。その後、MongoDB を試してみたかった - シンプル - インストールしました。

コスト的にはほぼ同じですが、データベースなどの他の多くのパッケージを使用して複数のサイトをホストし始めると、VM が安くなり始める可能性があります。

Nodejitsu はツールをオープンソース化しているため、独自のツールを使用する場合も簡単になります。

自分で行う場合は、次のリンクが役立ちます。

サーバーの維持:

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

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

https://github.com/bryanmacfarlane/svchost

Upstart と Monitor 一般的な自動起動と監視による再起動

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

クラスタ ノード コアごとに 1 つのプロセスを実行

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 を使用して Web サイトに公開する

于 2012-09-29T13:08:04.693 に答える
14

独自のスタックをセットアップすることの最大の欠点は、Node.js を実行するforever、デーモンとして起動する、Nginx などのリバース プロキシの背後に配置するなどの管理が必要なことです。 Node.js について - Web サーバーをワンライナーで起動する - は、本番環境で使用できるシステムに関しては、Node.js の最大の欠点の 1 つです。

さらに、サーバーの管理、更新、および保護に関するすべての問題を自分で抱えています。

これは、ホスティング事業者にとって非常に簡単です。通常、それは agit pushであり、それだけです。スケーリング?簡単。複製?簡単。...?簡単。数回クリックするだけですべて。

ホスティング事業者の欠点は、環境を調整できないことです。さて、実行する Node.js および / または npm のバージョンをおそらく選択できますが、それだけです。どのサードパーティ製ソフトウェアがインストールされているかを制御することはできません。OSを制御することはできません。サーバーの場所を制御することはできません。等々 ...

もちろん、これらの機能の一部にアクセスできるホスティング業者もありますが、すべてをサポートするホスティング業者はめったにありません。

したがって、基本的に Node.js に関する質問は、他のテクノロジーと同じです。それは、個人主義、価格設定、スケーラビリティ、信頼性、知識などの長所と短所です...

私は個人的にホスティングサービスを利用することにしました。節約できる時間と労力は、短所よりもはるかに優れています。気をつけてください:私にとって、個人的に。

この質問には個別に回答する必要があります。

于 2012-09-29T13:04:50.860 に答える