1

製品の特定のビルドを特定の Azure クラウド サービスまたは VM に自動デプロイする方法を調査しています。

次の手順は自動化され、手動による介入は最小限に抑えられます。

  • クラウド サービスまたは VM を作成する
  • 製品の特定のビルドをインストールします ( IIS ではなく、スタンドアロンの exe または Windows サービスとして)
  • 構成ファイルを微調整する
  • ユーザー アカウントの設定
  • exe/サービスを実行します

コードは現在 Visual Studio Online / TFS にあります。Cruise Control .NET CI がセットアップされており、TeamCity への移行を検討しています。これは、通常の QA および実稼働タイプの環境に使用されますが、アドホックな展開にも使用されます。たとえば、試用版の機能が製品に追加され、それを特定の顧客が試してみるために新しい VM に展開したい場合などです。コマンド ラインまたは UI を使用してビルドを選択し、VM を作成し、構成の変更を指定できることが理想的です。

考えられる解決策の 1 つはOctopus Deployかもしれませんが、これで実際に Azure VM を作成できるとは思いません。また、おそらく Azure API と TFS デプロイも検討します。

私の研究を絞り込むために、私が見逃している実証済みの代替手段はありますか?

前もって感謝します!

4

4 に答える 4

1

Octopus Deploy は多くのことを実行できますが、この特定のシナリオでは、リリース管理、自動プロビジョニング、および構成管理の 3 種類の作業を実行するよう求めています。自動化の素晴らしさと本当に難しい状況との紙一重です。

あなたが求めているタスクのうち、ほとんどすべてが現在 Octopus 内で実行できます。クラウド サービスまたは VM を作成することは可能かもしれないと私は主張します。認証を使用して VM をスピンアップできる PowerShell コマンドレット/ライブラリがあれば、Octopus で実行できる可能性がありますが、現在そのジョブを実行するには適切なツールでない可能性があります。なんで?

私の意見では、それは開発者、DevOps、およびシステム管理者の間の障壁を歪めます。Chef、Puppet、Salt などを使用するかどうかにかかわらず、構成管理に関係なく、それをバックアップするための専門知識を備えたユーザー層全体が必要です。このような柔軟性を必要とする開発者が持っていないシステムの専門知識がよく言われます。第二に、現時点では、これは (まだ) Octopus 内の焦点では​​ありません。Octopus などのツールを使用して、できることとすべきことを比較するかどうかを判断するのは難しいでしょう。

Azureが VM 用の Octopus tentacle のプレインストールをサポートするようになったことは本当に素晴らしいことです。ただし、VM プロビジョニングを自動化するには、サーバーのサムプリント、ポートのその他の補足構成情報などの追加情報が必要です。その構成管理は、Octopus の管理下に置くべきでしょうか、それとも Chef や Puppet のようなものでしょうか? 正直なところ、これに対する答えはありませんが、今の私の気持ちはオクトパスではありません. いつの日か、おそらくですが、これが本当に準備が整い、完全にテストされ、精査されるまで、少なくとも Octopus については (少し) 待ちます。

あなたが冒険的なタイプなら、ぜひオクトパスを試してみてください。今年中にこのインフラストラクチャの自動化の PoC (概念実証) を行う可能性がありますが、インフラストラクチャの自動化の主要な手段として、今日のビジネス/本番環境での使用に依存することはリスクが高く、多くの作業と実験が必要になります。繰り返しますが、それができないと言っているわけではありません。今日のこの回答の時点で、Octopus 内で行うべきかどうか疑問に思っています。

どちらかといえば、Octopus Deploy 側からすると、これは実現可能ですか? はい、まだ完全には解決されていません。あなたがやりたいことを見ると、それは 2 段階のプロセスだと思います。1. 新しい VM をスピンアップし、環境に触手を接続し、2. その新しい VM でデプロイ プロセスを実行します。

また、Octopus ブログもご覧になることをお勧めします。彼らは、インフラストラクチャの自動化について公に語っています。ここでそれについて読むことができます: http://octopusdeploy.com/blog/rfc-cloud-and-infrastructure-automation-support

この回答が何らかの形で役立つことを願っています。

于 2015-02-23T00:04:35.143 に答える
0

参考までに。1 つのオプションは、Azure Management API を使用してすべてを行うことです。また、VS プロジェクトで Azure クライアント ライブラリを参照することも好きで、すべて C# コードで行います。

于 2015-05-27T14:31:02.227 に答える
0

これは非常に幅広い質問ですが、多くの方法のいずれかを使用して目標を達成できることは確かです。少し古いですが、Tom Hollander の自動デプロイメントに関するブログが出発点として適しています。多くの OctopusDeploy と TeamCity が使用されているのを見てきましたが、最終的にはすべてAzure の PowerShell コマンドレット、カスタム コードの管理ライブラリ、または純粋な REST API呼び出しに依存しています。

于 2015-01-29T22:21:15.227 に答える