Windows Azureではほとんど同じだけど少しだけ違う、その情報が不足していた
プロジェクトは正式に動き出したが、苦労も多かった。
「これはMovable Typeに限った話ではなく、オープンソース系のソフトウェアをAzureに載せようとする人すべてに共通です。当時は、Azureの上で動かすための情報があまりに少なかったのです」(柳下氏)
オープンソース系ソフトウェアの多くがPerlやPHP、Javaなどで記述されている。「そういうソフトウェアを開発している人たちは、極力 .NETは書きたくないよねというのがあります。なのに、さまざまな言語に対する情報やSDK(Software Development Kit)などが充実していなかったのです」と柳下氏。
もう1つ、Movable Typeの対応で苦労したのがWindows AzureのデータベースサービスSQL データベースの利用だった。「インターフェイスはオンプレミスのSQL Serverと変わらないのですが、運用していく上ではクラウドならではの苦労がありました」と高山氏。たとえば、SQL データベースのテーブルにデータを追加するには、クラスター化インデックスが必要だ。これは、SQL データベースが自動で複数データセンターに複製を作っているから。クラスター化インデックスがないテーブルにデータ追加すると、エラーとなる。当然ながら、オンプレミスのSQL Serverにはそのような制限はない。
また、SQL データベースを使っていると、コネクションタイムアウトを起こしてしまうことがある。これはある意味クラウドなので仕方がないこと。これには、リトライするようにプログラムを書き換えなければならなかった。「ほとんどオンプレミスのSQL Serverと同じなのですが、クラウドでは少しだけ違う。その情報が少なかったのです」と柳下氏。
Windows Azureへの対応のため、マイクロソフトと議論を重ね密な協力体制で連携作業が行われた。結果的には一部インストールのためのツールは .NETで記述されたが、Movable Type本体のソースコードには .NETで開発したプログラムを追加せずにWindows Azureへの対応は完了する。マルチプラットフォーム製品を提供する上で、これは重要なことだ。2012年12月、Movable Type AdvancedのWindows Azure対応版の出荷が正式に始まった。
実際にWindows AzureでMovable Typeを動かしてみると、メリットがさまざまあることが分かると柳下氏は言う。「Azureのコンソールで簡単にデータベースのインポート、エクスポートができます。これはテスト環境を作るといった場合など、かなり楽です」とのこと。さらに、オンプレミスでActive Directoryを運用しているならば、Windows Azure Active Directoryを使えば、既存のユーザーID情報をシームレスにクラウドでも利用できる。クラウド用に別途ユーザー管理を考えなくていいというのも、運用上はかなり利便性が高い。