私は、世界規模の配布拠点を持つ会社のためにソフトウェアを作成しています。ソフトウェアは、世界中にあるさまざまな Windows (Server 2003) サーバーで実行されます。
ユーザーは、サーバー上の共有からアクセスしてソフトウェアを実行します。各サーバーは、アプリケーションのインフラストラクチャを形成する一連のサービスを実行します。
アップグレードを行う際には、各サーバーで次のタスクを実行する傾向があります。
- すべてのサービスを停止する
- 新しいバイナリを中央の場所からサーバーにコピーする
- データベース更新スクリプトを実行する
- サービスを開始する
- 指を交差させて、すべてがうまくいくことを祈ります。
これは非常に手作業が多く、面倒で時間がかかり、エラーが発生しやすい操作です。
リリース手順を自動化するソフトウェアをお勧めいただける方はいらっしゃいますか?
「ロールバック」機能とリリースをスケジュールする機能が本当に欲しいです。
すべてのご提案を歓迎します。
答え1
Microsoft のソリューションは SCCM (旧 SMS) です。予算はいくらですか? 無料ではありませんが、低コストのソリューションが必要だとは言っていません。
答え2
私はこれを実現するために CFengine を使用しましたが、それは Linux 上でのことでした。CFEngine は Windows もサポートしていると思いますが、有料版だと思います。これを使用して、すべてのサーバーでスクリプトまたはレシピを実行できます。
答え3
無料のソリューションをお探しの場合は、PDQ デプロイ(弊社製品)。展開ごとに 1 つのアクションのみ実行するように制限されていますが、バッチ スクリプトを使用して複数の手順を簡単に実行し、PDQ Deploy を使用してサーバー上で .bat を実行することができます。
答え4
私が使うイノセットアップ(フリーウェア) は、この種の用途には最適です。一見、単なるインストーラーにしか見えませんが、実は非常に複雑なタスクを実行できる非常にオープンエンドなスクリプト言語を備えています。説明されているようなことは簡単に実行できます。私にとって唯一の欠点は、スクリプトが Pascal に基づいていることです。私は通常 Pascal でプログラミングしません。