世はまさにクラウドまっさかり。
クラウド化するのはハードウェア・コンピューティング・リソースだけではなく、
アプリケーション実行環境(いわゆるミドルウェア。データベースや
アプリケーション・サーバー)なんかもクラウド化しちゃうんですよね。
とは言うものの、それを具現的に管理する方はリソースの配分であるとか
もしもの時の問題の切り分けについても具現的に考えなければならないですよね。
クラウドです。といっているのは、Amazonさんだったりですが、国産の
データセンターサービス事業者の方などもクラウド的なPlatform As A Service
やInfrastructure As A Serviceなども提供してくると思います。
サービス提供者の視点で考えると、1つのアプリケーション実行環境に
複数のお客様のアプリケーションが稼動する事になります(マルチテナント・
ホスティングという事です)。
マルチテナント・ホスティングにおけるアプリケーション実行環境あるいは
それよりも更に小さな単位だとテナントに提供するワークスペースやそこで
実行されいるアプリケーションを切り出して監視する事やもしものときの
分析ができる事が重要になってきます。
1つの実装例として、Oracle Application Express (通称 APEX)があります。
これは1つの実行環境であるAPEX上に複数のワークスペースを作成する事ができ、
そのワークスペースの中に複数のアプリケーションを構築する事ができます。
APEX自体の実装はOracle Database上に実装されておりますので(HTTPの
リクエスト受ける口としては、HTTP Serverを外だしにする事もできますし、
Oracle DBにEmbeddedされたサーバーを口とする事もできます)、Oracle Databaseの持つ
セッション特定のTipsが活用されています。
このTipsは前回のエントリでお話した「5/23開催のOracle Weekendセミナー」の中でもお伝えした安定稼動の為のTips」の活用事例でもあります。
例えば....
こんな画面から作ったアプリケーション(Application 103)というものは(画像はポップアップします)、、
↓
これを私の大好きなDatabase Controlで見てみると(画像はポップアップします)、
↓
「モジュール」という列で、「APEX:APPLICATION 103」というに見えます。
これは単に見えるからうれしいということではなく、仮に性能が悪くなったとしても、
この「モジュール」単位でチューニングを実施する事ができるのです。
「APEX:APPLICATION 103」だけをチューニングする事もできるという事です。
しかも、これはAPEXでアプリケーションを構築する際に何にも意識しなくても、
この「モジュール」名を付与してくれるので開発者がデータベースを詳しく
分からなくても監視しやすいアプリケーションが作れるという利点があるわけですね。
私自身、APEXの開発生産性の高さは分かっていたものの、この
「監視しやすいアプリケーションを構築するTips」を使って実装されていたとは
つい最近まで知りませんでした。
そんなきめ細かい設計をしてくれたAPEX設計者に感謝したくなる思いです。
この「モジュール」という列を活用する事は何もAPEXだけでなくとも、
他の開発言語やアプリケーション実行環境を使っていても使えるので、
雲の中でも安全運転できるアプリを開発する時には是非活用してみてください。
次回は、この「モジュール」という列を活用する方法について少しまとめて見たいと思います。