2017-12-13 16 views
1

私はAngular 2を持っています(ただし、私の質問はデプロイメントのためのビルドプロセスを持つフレームワーク/テクノロジーに適用されます)。私はアプリケーションをホストするためにGoogle Cloud VMを使用しています。私は安定版を持っているときはいつも、私は標準の展開プロセスに従います - ローカルファイルをgithubにプッシュし、リモートVMからプルしてビルドスクリプトを実行します - これはWebページやWebアプリケーションにとってはとても良いプロセスではないようです私がコールをリダイレクトしてダウンタイムが発生しない限り、オフラインになるため、プロダクションではまた、App EngineまたはHerokuを使用する場合、ビルドには時間がかかりすぎます。しかし、事実です:ビルドされたファイルをgitで無視しないでアップロードしただけでは、サーバーはダウンタイムなしに新しいファイルを即時に応答します。
私の主な質問は、なぜこれを頻繁にしないのですか?これを行うかしないかのベストプラクティスとこれに関する文書がありますか?これに関連するものは何も見つかりませんでした。
ありがとうございます。クラウドホスティングを使用すると、ローカルまたはリモートでプロジェクトをビルドできますか?

答えて

0

VMを使用している場合は、確実にサーバーで構築できます。しかし、ポイントは、あなたの開発環境、プロダクション環境、ビルド環境があることです。おそらく彼らはすべて異なるマシンです。したがって、ビルドはCI/CD上で行われます。ジェンキンスあなたがそれを持っていなければ、あなたのワークステーションはビルドマシンです。したがって、テスト、ビルド、およびアプリケーションのビルド時に、コンパイルされたバンドルをデプロイするだけです。

ここで、何か面白いものをする必要がある場合は、が本番サーバー上のソースを必要とする可能性があります。しかし、ほとんどの場合、あなたのアプリは何とか役立つ静的なファイルの束です。これらのバンドルをUSBドライブにコピーし、データセンターに移動してサーバーにコピーすることで、すべてのサーバーを気にすることができます。

なぜ、人々はこれを行うのか、しないのですか?まあ、一般的に、より大きなチームにはある種の厳密な構築/展開手順があります。もしあなたが人のつま先を踏みたいと思わないなら、あなたはそれに従います。つまり、いつかビルドサーバーがあるということです。あなたのGoogle VMがそうであっても、VMがアプリケーションを構築して提供する2つのジョブを持っていることを意味します。小規模なチーム、ソロショップ、あなたはしばしばそのようなオーバーヘッドを気にしません。私は、Npmスクリプトにタスクを自動化することを提案している(つまり、npm run deploy.prodは、アプリケーションを構築し、Googleにプッシュし、多分いくつかのキャッシュのリフレッシュなどを引き起こす)。どこにビルドするかにかかわらず。しかし、あなたがソロを実行している場合、別のビルドマシンは必要ありません。別の理由は、人々が完全なスタックアプリケーションを展開することができるため、バックエンド部分を「ビルド」する必要があるということです。ノード上に配置されているので、すべてのプロセスがより大きなものになります。しかし、それが単なるフロントエンドならば、あなたはする必要はありません。

したがって、チームごとに、プロジェクトごとに異なります。

+0

詳細な回答をいただきありがとうございますZlatko。それは私にとって理にかなっている。 – william

関連する問題