検索
特集/連載

リレーショナルデータベースからNoSQLデータベースへの移行は必然かデータベースのモダナイズ【前編】

Webサイトのパフォーマンス問題に悩む企業が出した答えはSQL ServerからRedisへの移行だった。同社の事例を通してデータベースのモダナイズの実際を紹介する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 赤い制服のサービススタッフと家族の旅行先として名高いといえば、英国の海岸レジャーの老舗リゾート企業Butlin's(Butlins Skyline)だ。だが、老舗といえども時代と共に変わっていかなければならない。同社もオンライン予約に対応してはいたが、そのWebサイトのパフォーマンスが一定水準に達していないことを危惧していた。

 「Webサイトについて受ける苦情の中で恐らく最も多かったのが、ページの動きが遅いことだった。ユーザーがWebサイトにとどまる時間は限られていて、それ以上待つことはない」と語るのは、Bourne Leisure(Butlin'sの親会社)でソリューション設計およびデリバリー部門の責任者を務めるジョン・ハガティ氏だ。同社はButlin'sの他にHaven HolidaysやWarner Leisure Hotelsを所有している。

 カスタマーエクスペリエンスを高めるためにBourne Leisureが注目したのがRedis Labsだ。同社はインメモリNoSQLデータベース「Redis」を提供する。リレーショナルデータベースよりも高いパフォーマンスを発揮する代替アーキテクチャを提供するデータベースグループの一つだ。このグループには、他にもGridGain Systemsの「GridGain」などが属する。アナリストによると、こうしたデータベースは上級IT管理者のデータベース戦略を一変させるという。

 ハガティ氏がRedisに魅力を感じたのは、Bourne Leisureのバックエンドの予約エンジンを変更することなくWebサイトのパフォーマンスを向上させられるためだと話す。この予約エンジンはEmbarcadero Technologiesの「Delphi」を基盤とする一般的なホテル予約システムだ。

 「この予約エンジンは、価格を問い合わせるたびに非常に多くのビジネスルールが実行される。当社にとっては柔軟性の高いシステムだが、価格を取得するのに時間がかかる」(ハガティ氏)

 同氏のチームは技術刷新の一環として、この予約エンジンとWebサイトの間に新たなキャッシュ層を設けた。Webサイトで検索を実行するとこの層が働き、キャッシュ上の価格をWebサイトに返す。予約するときは、予約エンジンから価格が取り出される。

 Bourne Leisureは、それまで「Microsoft SQL Server」ベースのキャッシュ層を使っていた。だが、十分なパフォーマンスは得られなかったと同氏は話す。

 2017年、同社は主要業務全体でWebテクノロジーを刷新するプロジェクトに着手した。チームはこれを機にキャッシュデータベースを見直すことにした。

 「当社のシステムは大変古く、メンテナンスが非常に難しい大昔のJavaスタックだった。だが、後れを取っていたおかげで幾つか新しいアイデアを取り入れる良い機会になった」(ハガティ氏)

 チームはこの過程で、NoSQLデータベースとインメモリデータベースを検討する機会を得た。チームが選んだのは、Redis Labsの協力を得てキャッシュシステムをキー/バリュー形式の分散インメモリデータベースに組み込む方法だった。

 Bourne Leisureがインメモリデータベースを検討したのはこれが初めてではなかった。「以前インメモリデータベースに触れる機会があったが、非常に複雑で使うのが難しいという印象だった」とハガティ氏は言う。

 Redis Labsと同社のRedisを紹介された同氏は、24時間サポートが提供されることからビジネスに適していると判断した。「24時間サポートが決め手だった。オープンソースであるが故にそこまでのサポートが提供されない製品もある」と同氏は話す。

 「手を加えずにそのまま利用できる機能が優れており、特に管理機能が優秀だった。当社の運用システムに気を配り、アプリケーション層をインストールしてくれたオンサイトサポートチームは大きな力となった」(ハガティ氏)

 新しいキャッシュデータベースはAPI層に位置し、フロントエンドのWebサイトとバックエンドの予約エンジンにリンクされる。予約エンジンをそのまま使う必要があったのでマイクロサービスアーキテクチャへの飛躍はできなかった。だが、予約APIエージェントがWebユーザーの代理として動作する「ミニサービス」アプローチは導入できた。このシステムは拡張可能で、最高40エージェントを同時に運用できると同氏は言う。

 Bourne Leisure独自のテストでは、新システムは旧システムの少なくとも10倍の高速化を実現している。ただしユーザーエクスペリエンスについては、新旧を比較できるほどのインタフェースの変化がなかったため、両者の違いを測るのは難しかった。ハガティ氏は、同社が一度に導入した新しい技術の数を考えれば「驚くべき成功」だと話す。

 「レガシーシステムから新しい技術に一気に移行するのは非常にリスクが高かった。Webアプリケーションに『React』(訳注)を採用した。『Microsoft Azure』への移行も行った。自社で作成したAPIとエンドポイントも稼働させた。技術の多くが変わり、全てがRedisを利用するようになった。それでもビジネスは非常に円滑に動いている。これは大いなる成功だ」(ハガティ氏)

訳注:ユーザーインタフェース構築用JavaScriptライブラリ。

 この成功は、同社の今後のプロジェクトにおけるデータベースの選択を変えようとしている。以前なら最初からリレーショナルデータベースを選んでいた。だが、今や相当の理由がない限り選ぶことはなくなったと同氏は語る。

 「このプロジェクトによってあらゆる可能性があることが分かり、チームの価値観が変わった。チームはクラウドファーストの戦略を取るようになっている。インメモリソリューションを検討することもあれば、同等のパフォーマンスを得られる別のものを検討することもある」

 例えば現在、チームはアップグレードオプションとしてクラウドベースのエンタープライズデータウェアハウス「Snowflake」を検討している。

後編(Computer Weekly日本語版 2020年1月8日号掲載予定)では、データベース市場を俯瞰(ふかん)しつつ、NoSQLデータベースの一つであるGridGainを紹介する。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る