normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Trac Lightning on Windows Azure への道のり 〜その2〜

以前に紹介した Trac Lightning on Windows Azure への道のり 〜その1〜 id:waritohutsu:20120320 から、二か月弱経ってしまったが、続編を紹介したい。前回までの記事では、Windows Azure 上で Trac Lightning を実行することが可能なところまで検証したが、永続化部分に対する考慮が不足していた。
課題となっていた永続化部分についての対応を行い、GitHub にて WATracLightning というプロジェクト名で公開した。興味がおありの方は是非お試し頂きたい。

今回の記事では特にソースコードの紹介はしないため、必要な場合は GitHub 内のソースコードを参照して頂きたい。

システム構成図

作成した WATracLightning のシステム構成図は以下となる。予め VHD ファイルと Trac Lightning のバイナリをブロブ上に配置しておく必要がある点に注意して欲しい。

処理の流れ

Workerロールで行われる処理は以下になる。Trac Lightning のインストール後、一度OSの再起動が必要であるため、RoleEntryPoint.Run()処理内で実行するスクリプトに多少工夫が必要になる。

RoleEntryPoint.OnStart() 内では、diskpart.exe を利用して Azure Drive を固定ドライブレターにマウントする処理を実行している。ご存じない方も多いと思うが、Azure Drive がマウントするドライブレターは固定ではない*1ため、当該処理が必要になる。

今後の課題

現時点では、Jenkins が上手く動作していない。Jenkins を利用した自動ビルドや自動テストは、プロジェクトサイズが大きくなると時間のかかる処理であるため、当該処理だけでもインスタンス数を増やす対応が可能かどうかのフィージビリティ検証を行いたいところだ。

ご参考リンク(結局利用はしなかったが…)

*1:単一のVHDファイルをマウントする場合でもドライブレターが異なる場合がある