情報システムのアーキテクチャーの解は一つではありません。データの種類や利用者の数、トランザクション量といった課題によって、最適な技術や方法論は変わります。私はこのことを常々意識して、アーキテクチャー設計に臨んでいます。

 「何を今さら当然のことを」と思ったかもしれません。しかし忙しいITの現場では、当然のことでも疎おろそかになってしまうことがあります。

 例えば、バッチ処理の時間を短縮する課題に直面したとき、Hadoopを適用するケースが増えています。しかし、どんなときでもHadoopが最良の解というわけではありません。高性能サーバーが2台という環境では、効果は得にくいでしょう。

 Hadoopは多数の安価なサーバーで分散処理する技術です。サーバーの台数が限られるときは威力を十分に発揮しません。しかもバッチ処理の内容によっては、1台のサーバーに処理が偏りボトルネックになる場合もあります。

 このようなアーキテクチャー選択の間違いを防ぐには、どうすればいいのでしょうか。個々の技術の仕組みだけでなく、その技術が誕生した背景の情報をしっかり理解しておく必要があります。

 Hadoopの中核技術は、分散処理で大量データの高速アクセスを実現する「MapReduce」とファイルシステムの「HDFS(Hadoop Distributed File System)」です。これらは、米Googleが検索エンジン用に開発した技術がベースです。大量のWebページのデータを収集し、検索用インデックスを作成するといった加工処理に効果的です。ただし、高度なトランザクション機能は備えません。従ってそのままでは、一貫性を要求する更新主体のバッチ処理には向かないと推測できます。