2017-10-31 6 views
1

の展開:https://github.com/ebidel/try-puppeteerは、私がこのビルドを変更しようとしています複数のpackage.json Googleクラウド

私は2 package.json(及びserver.js)ファイルがあることに気づきました。

  1. ルート(https://github.com/ebidel/try-puppeteer/blob/master/package.json

  2. バックエンド(https://github.com/ebidel/try-puppeteer/blob/master/backend/package.json

は、なぜ彼らは2台の急行サーバで、個別にバックエンドとフロントエンドを展開していますか?これはベストプラクティスですか?過度の設計?

1つのプロジェクトで2つのserver.jsファイル(または2つのサーバー)を使用する目的は何ですか?

私は見落とされた階層システムを持っていますか?

また、このプロジェクトをどのように展開するのですか?バックエンドからのルートから?

答えて

1

は、なぜ彼らは2台の 急行サーバで、個別にバックエンドとフロントエンドを展開していますか?これはベストプラクティスですか?過度の設計?

は、前面と背面-endsのための2つのYAMLファイルを比較:

https://github.com/ebidel/try-puppeteer/blob/master/app.yaml

automatic_scaling: 
min_num_instances: 1 
max_num_instances: 1 

そして

https://github.com/ebidel/try-puppeteer/blob/master/backend/app.yaml

automatic_scaling: 
min_num_instances: 1 
max_num_instances: 5 

著者は、彼のbについての十分な仕事を期待しますスケーリングを正当化することを控える。事実、彼のフロントエンドは主に静的データを提供します。静的データは何も消費せず、失敗するのは簡単すぎます。

アプリケーションのデカップリングとは、バックエンドに過負荷やクラッシュが発生した場合、フロントエンドにダウンタイムが発生しないことを意味します。

1つのプロジェクトに2つのserver.jsファイル(または2つのサーバー)を持つ目的は何ですか?

この場合、それらは疎結合の2つの異なるアプリケーションです。プログラムのレベルで接続するのではなく、ネットワーク/ Google Cloud App Engineを通じて接続します。 gitリポジトリのポート8080と8081のgrepをより明確に見たい場合。 "try-puppeteer/backend"は、複数のgitリポジトリになり、階層が保存され、次にダウンドレードされます。

私は見落とされた階層システムを持っていますか?

フロントエンドはロードバランサとして機能します。コード内のポート8081と8080をもう一度見てください。

+0

パーフェクト。あなたの答えに感謝しています。あなたの時間を感謝する – Moshe

2

両方を展開する必要があります。ルートはフロントエンドです。ルートから:

npm run deploy-backend 
npm run deploy-frontend 

はpackage.jsonを参照してください。https://github.com/ebidel/try-puppeteer/blob/master/package.json#L16

+0

私はあなたの答えをありがとうございます。フォローアップ - 私はangular4 - >/server/distを使用しているので、私のエクスプレスサーバーはpuppeteer、APIサーバー(UI + puppeteerへのルート)を実行しており、静的ファイルを送信しています。十分に1つの展開ですか? – Moshe

+0

Readmeには、 'yarn deploy':https://github.com/ebidel/try-puppeteer#deploymentの両方でデプロイすることができますが、どのように動作しているかわかりません。 –

関連する問題