私たちは、ベンダーのディレクトリが現在GITは無視されますが、我々は他の場所でGITに重要な依存関係を犯したオートロードされているシェフ生産の展開のための `作曲install`
を使用して〜200 EC2インスタンスにデプロイされるミッションクリティカルなアプリケーションを持っていますそれら。私たちの計画は、/ vendor内でComposer経由ですべてをインストールし、composer autoloaderを使用する従来のアプローチに移行することです。
私の質問は:私たちが/ bulk-deploy(同時に200以上のサーバー)をリリースすると、コードはGITからサーバー上の新しいリリースディレクトリにプルされるので、コンポーザインストールを実行する必要があります。コンポーザーインストールの信頼性を「高める」ための技術はありますか?実際には心配することはありません。私たちのサーバー数を考えると、1%の失敗率でさえ、クライアントが停止していることを意味します。
私たちは、各デプロイメントでコンポーザーのインストールを起動するアプリケーションがあります。少なくとも依存関係の1つが「ダウン」または移動したため、少なくとも24時間はデプロイできませんでした。この問題を回避するいくつかの方法はありますが、GITの主な依存関係を依然として避けていますか?
ありがとうございます!
こんにちは、ありがとうございました! 私たちの展開が効果的にシェフを賞賛しているGITクローンであると考えると、「パッケージ製品制作ビルド」はどこでライブをお勧めしますか? GITに登録されているコードベースの「リリース」ブランチを持つことが「パッケージ化されたプロダクションビルド」状態を表すのは間違いでしょうか?コードをインスタンスでリモート消費するために他の場所に構築して保存する必要がありますか? 私はこのビルドが混乱/事故を避けるためにメインのGITリポジトリの外で生きるべきだと言っています。これを容易にするための推奨事項やツールはありますか? – sudoyum
ねえ! 'git clone'ではうまくいきません。 gitのチェックアウトには 'composer.json'(または理想的には' composer.lock')が含まれています。それに基づいて、依存関係が引き込まれます。 - 確かに、それらをGitに保存し、 "dependencies included"ブランチに基づいてリリースタグを作成することは可能ですが、そうすることはお勧めしません。 –
'はコードをビルドし、私たちのインスタンスがリモートで使用できるように別の場所に保存する必要がありますか?たとえば、単純なmakefile(またはPHPビルドスクリプトやAnt/Phingベースのbuild.xmlファイル)を使用して、いくつかのビルド作業を行うことができます: 'composer install' +' zip' + 'リリースのダウンロードフォルダへのアップロード' 。 –