11

全体のAzureのWebロールの構成設定:アズールを使用する前にAzureの前に解放する環境

に、私たちは読み取り専用のだろう異なる環境で座っ設定ファイル(テスト、ステージング、生産など)。リリース中、問題の環境にすべてのアプリケーションファイル(設定ファイルなし)がデプロイされます。アプリケーションファイルは、接続文字列やその他の環境固有の詳細について環境の設定ファイルを読み込みます。私はこれがかなり標準的なセットアップだと思いますか? Azureの後に解放

は、今、私たちは、Azureのウェブ役割に弊社のWebアプリケーションを移動しています。 WebロールはServiceConfiguration.Cloud.cscfgServiceConfiguration.Local.cscfgのファイルを使用します。

クラウドサービスに公開する場合は、接続文字列を知る必要があります。テストクラウドサービスに公開したい場合は、それに応じてServiceConfiguration.Cloud.cscfgを編集する必要があります。ステージングまたはプロダクションクラウドサービスに公開する場合は、ServiceConfiguration.Cloud.cscfgをさらに変更する必要があります。

デプロイメントを行うときに、接続文字列から開発者を抽象化することをお勧めします。これにより、誤った環境を指す間違いを防ぐことができます(これには大きな影響があります)。これはどうすればできますか?

Azure管理ポータルでこれらの設定を変更できますが、この手順をリリースプロセスに含めると、開発者は管理ポータルにアクセスする必要があります。これは理想的な状況ではありません。エラー(管理ポータルへの「オープン」アクセス)にも余裕があります。

更新:

私はあなたがより多くの(名前変更)を追加することによって、あなたのサービスの設定ファイルを管理できることがわかった:正しいクラウドサービス(黒)を選択して

enter image description here

そして、正しいサービス構成(赤い矢印)を一緒に使用すると、開発者は設定の詳細を知る必要はありません。

enter image description here

クラウドサービスを展開する際に、誤ったサービス構成を選択する開発者の問題はまだあります(おそらく、これはこれを防止するためのスクリプトに自動化することができますか?)

私の主なIRKは、環境タイプです(青い矢印)。これは今私には役に立たない。

+1

を持っている私がチェックする必要があると思いますが、私はこれが唯一のあなたが設定していないサービス定義を選択することができますだと思います。したがって、さまざまなエンドポイント(httpとhttps)、異なるVmサイズなどを環境間で使いたい場合は、問題にぶつかる可能性があります。私の答えの側面の解決策は、これを実行します。 –

+0

@ Eoin:ああ、サービス定義に関しては良い点だ。これは問題になります。最後の質問:「展開パッケージ」を持たずにコードをバージョン管理できるか?コードが変更されたかどうかわからないので、Visual Studioから直接公開することは少し怖いです。 – davenewza

+1

私たちの場合、私たちのソースコードはソース管理に使用するGitHubに格納されているので、ブランチを作成し、リリースの内容をロックし、Masterで開発を進めるための独自のプロセスを用意しています。プロダクションリリースを行うときは、サインしたブランチからデプロイするだけです。 –

答えて

4

複数のクラウド展開プロジェクトを環境ごとに作成して、それぞれが異なるServiceConfigurationを持つようにすることをお勧めします。私のアプリケーションで

、私は3つのアプリケーションプロジェクト(1 WebRoleと2 Workerロールを)持っている

私たちは、その後、6つのクラウド展開プロジェクト、各ターゲット環境のための1つを持っています。各デプロイメントプロジェクトには同じWebロール&ワーカーロールが含まれていますが、異なるcscfg & csdefファイルがあります。アプリケーションレベルで

Solution Organisation

、& web.configファイルがSlowCheetahを使用してコンフィギュレーショントランスフォームを使用して処理されているapp.configを。基本的に、各展開の構成マネージャーには異なるビルド構成があります。これだけではなく、DebugReleaseの、私はDebugQAUatTestSAndboxProduction

+0

投稿していただきありがとうございます。別々のプロジェクトを持つことは間違いなく1つの解決策です。私のポストでアップデートをチェックしてください(別の解決方法があります)。また、クラウドサービスに組み込まれたプロダクション/ステージング環境ではどうしますか? – davenewza

+1

プロダクションとステージングは​​、Azureの内部のプロダクションノードです。したがって、VIPスワップオプションを活用できます。ただし、環境ごとに完全に異なる環境がある場合は、関連する環境の「プロダクション」所有者に常に展開するだけです。 –

関連する問題