menuが試してわかった、マイクロサービスとTiDBの相性
大型の機能追加において採用されたマイクロサービスとTiDBの組み合わせ、「アプリケーション開発者はTiDBの内部構造を意識せずとも、MySQLとして扱えばTiDBの利用において苦労することはありません」と窪田氏。また、「TiDBでは、一時的にサービス負荷が上昇することに対する不安がない点も評価できます。MySQLでは必要な性能を確保するために細かなチューニングが求められましたが、TiDBでは現状はチューニングを実施することなく利用できています」と木村氏は話す。
加えて、開発から運用に至るまでの状況をモニタリングダッシュボードでリアルタイムに把握可能だ。「以前、CMキャンペーンを打った際にリソースが足りず、一晩中システムに貼り付いて対処したこともありました。しかし、今ではダッシュボードで確認してコンソールで設定するだけで、簡単にスケールアウトできます。まさにTiDBは『寝られるデータベース』でしょう」と木村氏は語る。

また、拡張性を得るためにMySQLのシャーディングを利用すれば、レプリケーションの同期遅延などに悩まされることになるが「TiDBにはそういったことも一切ありません」と丹羽氏。もちろん、分散データベースである以上はネットワークのオーバーヘッドがあり、レイテンシー面で不利になるだろう。だからこそ、そうした得手不得手を認識した上でアプリケーションを設計し、TiDBを活用することが重要だ。menuにおいても、すべてがTiDBに置き換わるのではなく、適宜棲み分けて利用していく。
既存システムにおいてマイクロサービス化が難しいアプリケーションや機能は、無理して作り替えるのではなく、API化などで緩やかにマイクロサービスへ対応していく。それ以外の切り出せるものから順次マイクロサービス化を進めて、TiDBも適用する。ある程度のマイクロサービス化が進めば、たとえば配達クルーに注文を割り当てるような複雑な処理についても他サービスへの影響を意識する必要がなくなり、最適化に向けたトライ&エラーがしやすくなるという。
他にもTiDBには、「テーブルに対してオンラインでDDLでの実行ができ、リソースコントロールという機能により、異なるサービス間でのリソースの干渉を抑制することができます。これはマイクロサービスとの相性も良いでしょう」と木村氏。サービス負荷の予測が難しいようなサービスでは、TiDBを選択肢に入れるべきだと言う。既にMySQLのシャーディングで苦労しているのなら、TiDBは簡単に使えるだろう。
なお、今度は“TiFlash”(トランザクションデータのリアルタイム分析を可能にするカラムナストレージでTiDBのコンポーネントの1つ)などを利用したデータ活用なども視野に入れており、menuにおけるTiDBの適用範囲はさらに広がりそうだ。
「それぞれのデータベースに得意、不得意があります。そして、TiDBは得意な部分が多いのです。そこをしっかりと見極めて使っていきます」と丹羽氏は言い、TiDBはNoSQLの良いところとRDBMSの良いところをあわせ持ち、安心して使えるものだと評価するのだった。

この記事は参考になりましたか?
- この記事の著者
-
谷川 耕一(タニカワ コウイチ)
EnterpriseZine/DB Online チーフキュレーターかつてAI、エキスパートシステムが流行っていたころに、開発エンジニアとしてIT業界に。その後UNIXの専門雑誌の編集者を経て、外資系ソフトウェアベンダーの製品マーケティング、広告、広報などの業務を経験。現在はフリーランスのITジャーナリスト...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
提供:PingCAP株式会社
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア