Linuxイメージが強いMovable Type、じつはWindows Server上でたくさん動いている
シックス・アパートでは、同社の実績あるCMSプラットフォームであるMovable Typeを、いち早くWindows Azureに対応させている。Movable Typeは日本で5万社を超える導入実績があり、当初はブログソフトウェアとして社長ブログやニュースリリース配信、管理など、外部向けコンテンツ管理の用途で利用されることが多かった。
「それが、2005年くらいからイントラ内での社内情報共有で使いたいという用途が出てきました。それに対応するために、2006年には企業利用のために機能強化したMovable Type Enterprise(現在はMovable Type Advanced)の提供を開始し、OSはWindows Serverを、データベースはSQL ServerやOracleをサポートしています」
シックス・アパート シニアコンサルタントの柳下剛利氏は、LinuxやMySQLなどのオープンソースソフトウェアでの利用イメージが強いMovable Typeだが、企業内での利用を考えた際にはWindows環境に全面的に対応する必要があると考えたと言う。「2006年ころは、SolarisやHP-UXなど今や懐かしいとも思えるUNIX OSでの利用も数多くありましたが、2010年ころまでにはWindowsがどんどん増えています。いまではMovable Type Advancedの半分以上はWindowsで、データベースもほとんどがSQL Serverです」とのことだ。
オープンソースのソフトウェアでは .NETは敷居が高い
2011年8月、Windows Azureはまだ日本での実績もそれほど多くなかった。マイクロソフトとしては、実績を増やすためにもオープンソース系ソフトウェアにも是非Windows Azureを使って欲しいという意向があった。一方、シックス・アパートにもクラウドにフォーカスしていく方針が立てられていた。Movable TypeをWindows Azureに対応させる取り組みはこれら思惑が相まって、まずは実験的に始まった。「実験的とはいえ、最初に成田で両社の技術者が合宿し検討するところから始まりました。マイクロソフトとしては、オープンソースの人たちがAzureと密になって欲しい狙いがあったと思います」と柳下氏。
合宿では、これがうまくいかない、こんなものが足りないといった項目をMovable Typeを例に洗い出すところから始まった。足りないところ、改良して欲しいところの情報は、その後日本からマイクロソフト本社にフィードバックもされた。とはいえ「当時の結論としては、Microsoft .NETでアプリケーションを書かないと、うまくいかないところがある。それは、シックス・アパートとしては敷居が高いということになりました」と柳下氏は振り返る。
Windows Azureへの対応は、この時は会社の正式プロジェクトとしては動き出さなかった。しかし、引き続き情報収集は続ける。その状況が変化したのが2011年10月、シックス・アパートだけでなく複数のオープンソース・ソフトウェアを扱う企業が参加し、Windows Azure対応を検討する技術者合宿が熱海で再び開催された。シックス・アパートで製品企画と開発を担当する高山裕司氏も、2回目の合宿に参加した。「Movable TypeのVer5のころです。Azureに対応させるには、Movable Typeのソースコードにも手を入れる必要があると考え、より深く踏み込むことにしました」と高山氏。
一方、2012年、パソナキャリアカンパニーでは、サイトリニューアルに際して、CMSツールとしてMovable TypeとPowerCMSの組み合わせを稼働させるクラウドサービスを検討していた。日本マイクロソフトであればサポートもしっかりしてくれる。さらにシックス・アパートもAzureへの対応を正式表明。当時は、CMSのツールを使ってAzure上にコンテンツを配信するものはあったが、CMSのアプリケーションをAzure上で動かすものはMovable Typeしかなかったことなどもあり、Movable TypeをWindows Azureの上で使うことを、パソナキャリアは決める。このことも、Movable Type on Windows Azureプロジェクトの後押しとなったと柳下氏は言う。
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情報をシームレスにクラウドでも利用できる。クラウド用に別途ユーザー管理を考えなくていいというのも、運用上はかなり利便性が高い。
AWSとは異なるクラウド上のシステムデザインが、Windows Azureにはある
Windows Azureを使う際に、SQL データベースを使わずにWindows Azure上にSQL Serverをインストールする使い方もある。これならば、苦労したことのいくつかは対処する必要はなかったかもしれない。しかしながら、Movable Typeの運用では、可用性、信頼性の確保のためにアプリケーションとデータベースは別サーバーでの運用を推奨している。データベースのトランザクション負荷は、日常的にそれほど多いわけではない。そのために別のサーバーインスタンスを利用するのは「もったいない、SQL Azureを使ったほうがいい」という判断があった。さらに、「同じテストプログラムで検証したのですが、SQL Azureを使ったほうが速かったという結果もありました」と柳下氏。
とはいえ「Movable TypeをWindows Azure Marketplaceに載せていくことも検討しています」とも言う。これは、クラウドと一言で言ってもニーズによってさまざまな選択肢を用意すべきだという考えだ。シックス・アパートでは、自社サービスとしてMovable Typeのクラウド版を提供している。これはシックス・アパート自身がMovable Typeを管理するマネージドサービスで、「顧客がどうしてもおざなりになりがちなところを、シックス・アパートがしっかりサポートするものです」と柳下氏。バックアップなどの運用管理面を、手厚くサポートするリッチなクラウドサービスだ。
また、クラウドを考えれば、Amazon Web Services(AWS)は無視できない。AWSのマーケットプレイスにもMovable Typeは対応している。「AWS版は、自分でシステム設計をしたい、たとえばフロントにキャッシュを別途入れるなど、AWSの上でシステム化したいニーズにおもに応えるものです」と柳下氏。
そして、もう1つがWindows Azure対応版だ。
「Azure版は、別のAzure上で動くシステムと連携するなど、インテグレーション的な要素が強いと考えています。これは、社内システムがAzure化するイメージです。なので、Active Directoryにも対応でき、Azureを含めた企業のWindows環境の中でMovable Typeが動くことになります」(柳下氏)
AWSとは異なるクラウド上のシステムデザインが、Windows Azureにはあると柳下氏は言う。たとえば、AzureのストレージやSQL データベースには、AWSのようにアベイラビリティーゾーンを設定しなくても永続性がある。こういった違いも、運用管理性を考えればシステム設計に大きく影響する。
「Movable TypeをAzureに対応する道は、長く険しいものがありました。とはいえ、マイクロソフトは、それを献身的にサポートしてくれました。情報は揃いつつあるので、今後Azureというクラウドサービスを、オープンソース・ソフトウェアを開発している人たちが理解できるかどうかで、世界が変わっていくのではないでしょうか」(柳下氏)
オープンソースのソフトウェアならば、クラウドプラットフォームとしてはすぐにAWSが思い浮かぶかもしれない。どんな環境でそのアプリケーションを運用したいのか。クラウド上だけでなく、既存のオンプレミス環境なども考慮し、目的にあったクラウドを選択する必要がある。