BT

オペレーションフレンドリなWindowsサービス

| 作者: João Miranda フォローする 2 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2013年10月20日. 推定読書時間: 2 分 |

原文(投稿日:2013/10/07)へのリンク

DevOps on Windowsがここ数ヶ月,オペレーションフレンドリなWindowsサービスを開発する方法についての記事を掲載している。オペレーションの視点から見て最も大きなハードルである,Windowsサービスのインストレーションとスタートアップフェーズを克服するにはどうすればよいかを解説する連載記事だ。

ハードルのある部分は,InstallUtilの一般的な使用方法に関連している。InstallUtilは,.NetベースのWindowsサービスをインストールするための非ネイティブなWindowsツールである。障害が発生したときに明確なエラーメッセージが提供されるため,あるいはデータベースからのデータのローディングやキャッシュといった長期間実行されるオペレーションをサポートするため,スタートアップの段階において注意すべき点がいくつかある。

DevOps on Windowsではそのような問題に対して,Windowsサービスを構築するための極めてシンプルなフレームワークによる解決を提案している。このフレームワークは,基本的に自己充足(self-containment)の考え方に基づいている。Windowsサービスが自分自身のインストール方法に関する情報を備えて,起動時の障害を適切に処理する,という発想だ。フレームワークの中心をなすのは,BasicServiceInstaller, BasicService, BasicServiceStarterという3つのクラスである。

BasicServiceInstallerは,先述した自分自身のインストーラを所持するという要件に対して,自己インストールと自己アンインストールの機能を提供することにより,独自のインストレーションのベースを構成する.Netクラスである。この自己インストール機能には,オペレーションチームにとって,scあるいはInstallUtilといった外部ツールを利用する必要なくなる,という意義がある。

BasicServiceは,スタートアップフェーズにおけるSCM (Service Control Manager)とのインタラクションに関して,ベストプラクティスに従った処理が行われることを保証する。SCMは,登録されたすべてのWindowsサービスが従うべきルールを規定することによって,サービスのライフサイクルを管理するWindowsプロセスだ。BasicServiceによる支援には2つの方法がある。ひとつはWindowsサービスが起動しない場合に,SCMに対して有意なエラーコードが返されることの保証であり,もうひとつは起動時処理に長い時間必要な場合に,SCMによって途中で強制終了されることのない実装の支援である。

最後のBasiceServiceStarterはサービスのインストール,サービスのアンインストール,コンソールからの実行,あるいはWindowsサービスとしての実行といった,アプリケーションのオペレーションモード決定に対して責任を持っている。同時に,Windowsサービスの起動時などに発生する任意のバックグラウンドスレッドの例外メッセージが,Windowsのイベントログに報告されることを保証する役割もある。

連載はこのフレームワークの背景にある理由を説明しながら,7番目のアーティクルまで続いている。サイトの方針は,"オートメーションではなく,ソフトウェアの一貫性や単純性に重きを置く"というものだ。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT