SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

最新イベントはこちら!

EnterpriseZine Day 2024 Summer

2024年6月25日(火)オンライン開催

予期せぬ事態に備えよ! クラウドで実現するIT-BCP対策 powered by EnterpriseZine

2024年7月10日(水)オンライン開催

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

DB Press(AD)

「menu」が試してわかったマイクロサービスとTiDBの相性、デリバリー事業の急成長を支えられるか

「まさに寝られるデータベース」と太鼓判を押すワケとは

悩んだデータベース選定 Spannerでなく「TiDB」に軍配

 マイクロサービス化に舵を切った一方、すべてのメンバーが同様の経験をしているわけではない。だからこそ、“マイクロサービス環境をどう構築していけば良いか”を見極めるために必要なのは“トライ&エラー”だ。「マイクロサービス化はゼロベースと言っても過言ではなく、まずは他社事例を知るところから着手し、王道と言われているアプローチを選びました」と木村氏。一般的なアーキテクチャに則った設計に従い、環境構築は進められることとなる。

menu 木村氏
menu株式会社 サービス開発部 Expert 木村友士氏

 menuが採用したのは、ドメイン駆動設計(DDD)に基づいたソフトウェアアーキテクチャ「オニオンアーキテクチャ」だ。既に利用していたGoogle CloudのGoogle Kubernetes Engine(GKE)に加え、データベースは慣れていたCloud SQL for MySQLを選択した。このとき分散データベースのGoogle Spannerも検討したが、「当時は利用していたオブジェクト・リレーショナル・マッピング・ライブラリとの相性が悪く、さらにSpannerを新規習得するための学習コストもかかることからCloud SQLを選びました」と振り返るのはサービス開発部 Expertの窪田浩之氏だ。

 このような構成で試行錯誤していた窪田氏は、とあるクラウドネイティブコンピューティングのイベントで取り上げられていた「TiDB」を知ることとなる。既にCloud SQLではスケールアップの限界は見えていた。これ以上拡張するには「MySQLのシャーディングを使うしかありません。しかし、一度シャーディングしてしまえばレプリカも増えていき、その管理だけでなく縮退運用を行うことも難しくなります」と丹羽氏。そうした苦労を過去に、ゲーム業界などで何度も経験してきたと振り返る。

 ここで白羽の矢が立ったのがTiDBだ。分散データベースのTiDBなら、事業規模の拡張にあわせて柔軟に拡張できる。また、増えていくクラスターデータベースの運用管理についてもマネージドサービス「TiDB Cloud」を利用すれば手間がかからない。シャーディングを避けるという意味ではSpannerも条件を満たすが、新たな学習コストが必要だ。その点、TiDBは分散データベースであり、MySQLとの互換性もある。さらに運用を考慮しても「TiDB Cloudにはモニタリングダッシュボードもあり、これがあれば夜もゆっくり寝られます」と木村氏は笑みをこぼす。

 TiDBの評判の良さを社内外で聞いた丹羽氏は、menuのマイクロサービス化にともなうデータベースとして有効だと判断し、2022年11月にはローカル環境での構築・検証を実施している。MySQLベースで構築されたアプリケーションのデータベースをTiDBに切り替えて動かしてみたところ、動作に何ら問題ないことが確認できたとして「複雑なSQLがなかったことから、接続先を切り替えただけですんなり動きました」と窪田氏は述べる。

menu 窪田氏
menu株式会社 サービス開発部 Expert 窪田浩之氏

 これを踏まえて、最初に本番環境で適用したのがmenuアプリケーションのお知らせ機能だ。参照系の処理が中心だったことから、アプリケーションに大きく手を入れずに稼働できており、これを皮切りにマイクロサービス化したサービスのデータベースにTiDB Cloudを適用している。

 スモールスタートでマイクロサービス化、“TiDB化”を進めることで少しずつ実績を積んでいき、開発陣の経験値も積み上げていった。そして2024年4月には、いよいよ新機能をマイクロサービス環境下でTiDBを利用して実現するという。

 menuでデリバリー注文をすると利用できるおまけ機能(※公開に向けて一部ユーザーに試験公開中)でこの組み合わせを採用したのだ。とはいえ、「基本的にMySQLで設計するときと変わらずに進められました。トランザクションは多くなりますが、そこはTiDBの高拡張性と高性能を信頼しており、これまでのソーシャルゲームで培った経験からも『TiDBで問題ない』との確信がありました」と木村氏は自信を見せる。

 もちろん、開発の際に苦労がなかったわけではない。MySQL互換ではあるが、“完全に同じもの”ではなかったこと。また参照系のクエリが極めて多い場合には、レイテンシーが遅くなるケースもあったという。これらの課題は、PingCAPのサポート担当者とやり取りすることで迅速に解決できたとして、「事前にサポートが手厚いとの噂を聞いていましたが、本当でした」と木村氏は述べる。

次のページ
menuが試してわかった、マイクロサービスとTiDBの相性

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
DB Press連載記事一覧

もっと読む

この記事の著者

谷川 耕一(タニカワ コウイチ)

EnterpriseZine/DB Online チーフキュレーターかつてAI、エキスパートシステムが流行っていたころに、開発エンジニアとしてIT業界に。その後UNIXの専門雑誌の編集者を経て、外資系ソフトウェアベンダーの製品マーケティング、広告、広報などの業務を経験。現在はフリーランスのITジャーナリスト...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:PingCAP株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/19355 2024/03/27 10:00

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング