1. はじめに
これまでの3回でPHPからMicrosoft SQL Server(以降、SQL Server)を利用する実際の方法論、ビジネス拡大の可能性などについて触れてきました。第4回となる今回は採用をまだ躊躇するかもしれない要素として、将来性について書いていきます。
今のITの潮流からすると間違いなく、多くの人が「クラウド」あるいは「仮想化」というキーワードをお話になるのではないでしょうか。でも「クラウド」という言葉は非常に広範囲な意味を持つということも最近理解が進んでいると思います。「仮想化」は現実的な基盤の進化とクラウドの動的な基盤を支える大事なテクノロジーです。これを踏まえてマイクロソフトのクラウドを活用することになった場合に、この選択肢をどう捉えられるのかという点も考察していきます。
2. 将来への展望
一般的にシステムの将来性を考える時に以下のような様々な要素を考えるのではないでしょうか。
- 製品開発がシステムのライフサイクル上で見た時に継続されるのかどうか
- 継続して機能拡張していってくれるのか
- 企業のお客様向けであればメーカーサポートはどうなのか
- オープンソースであればコミュニティのサポートはどうか
- 性能面で言うとどのくらいのユーザー数が増えるとどうインフラ拡張すればいいのか
- どういう機能を組み合わせて将来的に利用していけるか
完全に独自の実装であれば心配の度合いもより大きいと思いますが、今回ご紹介してきた仕組みはODBCという標準規格で用意されているドライバーの上にソースも公開しているPHP用ドライバー、その環境に関してメーカーであるマイクロソフトの正式なサポート窓口に問合せも可能ですから上記のいくつかの点では安心して利用できます。
性能面や拡張機能面ではこれまでの回でもご紹介しているように、SQL Serverの開発は長年続いており、継続して進化を続けていますし、無償版から大型データセンターで用いることができるエディションまで用意されています。そしてそのまま移行する先としてSQL Azureも利用可能です。SQL Azureはクラウド上で構築されたSQL Serverで、Windows Azureとは独立して利用できるため、自前のデータベースサーバーが負荷で圧迫している状況から移行が非常にスムーズに可能な新しい選択肢と言えます。マシンの発注を待つのではなく、クラウド上のサーバーインスタンスを追加発注するのです。運用はマイクロソフトがしてくれますからアプリケーションと構築しているシステムに開発者は神経を集中できる大きなメリットがあります。
3. SQL Serverのさらなる活用
SQL Serverの機能は出荷のたびに拡張されており、どんどん利便性が向上し、新しいシナリオを生み出しています。第3回で紹介したReporting Servicesを利用した帳票のシナリオもその一例です。Analysis Services(DWHなど分析系の機能)やPowerPivot(セルフで分析型のレポートを作るExcelの大型版のような機能)などを使ってもさらに色々なシナリオが描けますが、ここではもう一つ開発者視点で別の可能性をご紹介しておきます。
データベースの進化に伴う拡張というのは色々ありますが、例えば地図を扱うアプリケーションを想定すると、通常の業務アプリケーションであれば想定しないロケーションを表す経緯度などのデータを扱うことになります。SQL ServerではSpatialデータ型による地理情報システム(GIS)における地図データの格納を想定したような型が存在し、例えばBingマップ(旧Virtual Earth)との連携を行うアプリケーションを強力にサポートしてくれます。
Spatialデータ型は本当に一例であり、SQL Serverを使うことで今まで全部アプリケーションで実装するかどうか悩むようなことがデータベースのエンジン機能をうまく使う、あるいは周辺の標準機能を利用することで容易に実現できるケースがあるわけです。
4. クラウド化への展望
データを扱う部分でSQL Azureはすでに前述しましたが、アプリケーションの全体をクラウド化したいと思った時にどうするのでしょうか。マイクロソフトのクラウドを利用いただくとそこは柔軟に対応でき、クラウド⇔元のシステム間を行き来するあるいは両方を連携させたハイブリッド構成を行うことをそれほど労苦なくできるのが人気の秘密です。どういうことかを解説します。
まず、初期構築の段階でPHPをWindows Server 2008/R2およびIIS7上で構築していただければ、Windows AzureにはWebロールというWebサーバー機能が強いサービスがありますのでそこでPHPアプリケーションを動かすことはいくつか考慮すべき点があるにせよ容易です。なぜならWindows AzureがWindows Server 2008/R2をベースにしているからです。ベースにしていると書いたのはクラウド特有の環境ゆえの相違点は存在するからで、実際にはWindows Serverのラックが想像もできない数存在していると思っていいでしょう。
データベース部分に関しては自習書の中身を見ていただくとよくわかりますが、アプリケーションからの接続文字列の切り替えというデータを扱うアプリケーション開発だと普通に行う切り替えをするだけなのです。開発マシンから本番マシンへの切り替えのために環境設定をするのと同じように本番マシンからSQL Azureへ切り替えるわけです。同じようにSQL Serverのラックが想像もできない数存在していると思ってください。
イメージが湧かない人もいらっしゃると思いますので下記のビデオをご紹介します。
コンテンツやデータの同期をクリアすればローカル環境に同じ構成のマシンを配置しておくことは容易ですから、想像いただくとおわかりだと思いますが、行き来が思っているよりも容易に行えることがわかると思います。加えて、マイクロソフトではWeb配置(Web Deploy)という新しい考え方やツールを提供し始めており、シームレスにコンテンツ+構成+データをパッケージ化してWebシステム間を行き来できる方式を投入しています。SSH+FTPもいいですが、クラウドの規模感が見えてくるともう別次元で考えた方がよくなってくるわけです。この新しい展開方式は本格的な開発ツールであるVisual Studio 2010はもちろんのこと、無償でPHPアプリケーションやPHPベースのCMSをもローカルで編集できるWebMatrixでも採用しています。
5. クラウド化への第一歩
PHPを動作させる環境はLinux/Apacheがいい、そう思っている方は多いでしょう。しかし、今回のPHPからSQL Serverを利用するシナリオ、そこからのクラウドでの展望を考えた時に、Windows上で使う光に照らされた道が見えた方がいらっしゃったら食べず嫌いをやめて一度ぜひWindowsでもPHPを使う選択肢を見てみてください。以前よりもかなり利用環境として整備が進んでいます。いくつか便利な情報提供をしている場所をここでご案内しておきます。
- 最新情報:Windows上でPHPを使う PHP on Windowsガイドライン
- 最新情報:IISをインターネットで使う インターネットWebサーバー構築ガイドライン
- 無償でWeb配置に対応した開発ツール Microsoft WebMatrix
- SQL Serverで何ができるかちゃんとみたい SQL Server 2008/R2 自習書シリーズ
- クラウド化を見据えて 無償セミナー&ハンズオン
- SQL Azure 開発者向け情報
- Windows Azure 開発者向け情報
特に今マイクロソフトは無償のセミナーやハンズオンを精力的に行っており、ぜひ一度参加いただくことをオススメします。
6. まとめ
これまで4回、PHPからSQL Serverを利用するメリットを取り上げてきました。PDOに対応したドライバーをマイクロソフトのSQL Serverチームが開発したことにより、SQL Serverが持つ様々な標準機能との相互運用によって構築されるシステムのポテンシャルをさらに引き出すことができるようになります。基本的に我々は「システム」を作っているのであって、「プログラム」を作っているだけでは絶対にないです。クラウドが普及してくると益々納期というのは短くなる傾向なのでそういう視点で見た時に、利用できるテクノロジーは吟味してうまく組み合わせて、短納期で高品質なものをお客様に提供していくことが本当の意味での現実解です。
最後に、皆様のビジネスにこのシリーズがお役に立ったのであればうれしく思います。