はじめに
縁あって仮想化インフラの技術から、その上のアプリケーションに関する技術をを担当することになりました。
まだまだ、これから学ぶことが多く、他の方々に教えることはできないのですが、元仮想化インフラ屋さんからみたアプリケーションの世界について気づいたことをつらつらと書いていければと思います。
MQって何者?から始まったお勉強
さて、IBMでは今年WebSphereが25周年、MQとDb2は30周年を迎えました。
そういえば、2006年から2008年頃のサーバー仮想化の黎明期には、軽いWeb Serverから仮想化集約しましょうということを伝えて、徐々にデータベースの仮想化へと進めてきました。同じサーバーハードウェア上にWeb Serverとデータベースを載せることで、サーバー外のネットワークスイッチを通らずに、サーバー内の仮想スイッチレイヤで高速に通信できますというようなことを売りにしていたことを思い出しました。
はるか昔の入社2年目には、リレーショナルデータベースソフトウェアをSQLレスで操作するGUIベースのユーティリティを開発し、その後の1994年頃にはこれから主流になると言われてWeb,DB,APの3階層システムのプロトタイプを当時出たばかりのJavaで先輩と一緒に作った経験もあって、Web Serverとデータベースに関してはある程度馴染みがありました。それにしても、先輩は相変わらずすごい人です。。。
IBMに入った昨年、とある案件でPDOA構成をIA ServerやAWSへ移行サイジングすることとなり、Db2に関してはいろいろなバリエーション含めて実践で学ぶことができました。
しかし、MQについては、これは何者?となかなかピンと来なかったのです。
メッセージングってL7通信でやるんだよなぁ。あんまりインフラの監視からは見えない世界だな、いろんなクラウドのサービスと通信しまくってセキュリティリスクは大丈夫かな? くらいのインフラ屋さん視点での感想しか出てきません。
データベースのレプリケーションもvSphere Replicationが真っ先に思い浮かび、Q Replicationというメッセージングを使うレプリケーションがあることすら知りませんでした。
そんなレベルの私に、同僚の記事が光を射してくれました。メッセージキューは、プロセッサの処理ロジックみたいで、マルチコアのVMを多用するとコアの奪い合いでキューが溜まってスローダウンを起こす懸念があるんだよなぁとか、昔データベースユーティリティを作った時のTCP/IP通信処理部でWinsock関数を使ってWindows3.1とUNIX間で生成したSQLの送信と受信を同期処理で実装したらRecvが返ってくるまで画面が固まった状態になって怒られ、スレッドを回して非同期処理で通信させて苦労したなとか、パーシステントメッセージってIntelのパーシステントメモリみたいなものかなとか、横道にそれまくりながら、読んでいきました。
聞き覚えがある単語があると、なんとなくわかった気になるものですね。
締め
私のようになんとなくわかるけれど、よくわかっていないんだよなという方から、昔からよく使っている方、もう一度使ってみようかなという方は、是非5月30日のWebSphere・Db2・MQ アニバーサリー・フォーラムにいらして、熱気を肌で感じてください。