ゼロからマイクロサービスに取り組むイオン、DB運用や組織課題の解決に「TiDB」が寄与できることとは
【15-B-6】【イオンスマートテクノロジー】マイクロサービス導入により生まれた組織課題に対するソリューションとしてのTiDB
TiDBでデータベース運用における課題を解決したい
イオンスマートテクノロジーがTiDBを導入する背景としては、データベース運用におけるいくつかの課題があったからだ。スケーラビリティやシャーディングによる運用コストと複雑性の増加、メンテナンスビリティの問題とメンテナンス時の運用負荷の増加、MySQL 8への対応がせまっていることなどが具体的な課題として挙げられる。
これら課題に対し、「TiDBのことを知れば知るほど、TiDBしか勝たんのでは、との気持ちにさせられました」と香西氏。そのため、2024年2月7日にはTiDB Cloudの導入を視野に、PingCAPと共同検証を開始するプレス発表もしている。3月からは、さまざまな検証を実施し、本格的な導入を進めることとなる。
イオンスマートテクノロジーでは、マイクロサービスアーキテクチャを採用しており、それによる課題もある。通常、マイクロサービスに期待するのは、開発スコープを小さくし開発スピードを上げる、開発スコープを分離しコストを適切に管理する、サービス分離による障害の影響範囲を極小化するなどがある。
イオンスマートテクノロジーは、3年目の新しい企業だ。設立当初にサービスを新規構築する際、上記のようなメリットを考慮し、これからの時代はマイクロサービス開発が主流となりKubernetesだとの方針が打ち出される。そのため最初からKubernetesとマイクロサービスでの開発となった。
ところで、香西氏が尊敬する米国のソフトウェア技術者のマーティン・ファウラー氏も言うように、「成功したマイクロサービスのストーリーのほとんどは、大きくなりすぎたモノリスを分割するところから始まっている。そして、マイクロサービスシステムとしてゼロから構築されたシステムは、ほとんどのケースで深刻なトラブルに見舞われている」との話がある。この言葉の通り、ゼロからマイクロサービスに取り組んでいるイオンスマートテクノロジーでは、さまざまなトラブルに遭遇しており「アンチパターンを踏み抜いています」と言う。
マイクロサービスがかなり難しいアーキテクチャであることに直面しており、導入後にさまざまな課題が出ているのが現状だ。たとえば、ドメイン境界設定に起因するサービス分割の失敗がある。これは、マイクロサービス間に依存関係を持たせることなく分割するのが難しく、適切に切り分けるには深いドメイン知識が必要になるためだ。結果的にマイクロサービス間の依存度に応じたインターフェイスの増加、多発する循環参照なども発生し、デプロイの複雑度が上昇してしまう。そのため、もともとシンプルなものを求めていたのに、逆にマイクロサービスの導入で複雑化してしまっている。
また、マイクロサービス間のトランザクション管理も難易度が高い。これはいわゆる分散トランザクションであり、「分散トランザクションは、単純に設計や実装の難易度がかなり高いと思います」とも言う。いくつか推奨されるパターンはあるが、パターンに従って実装しても、上手く分散トランザクションが実現できるとは限らないのだ。
この記事は参考になりましたか?
- Developers Summit 2024 セッションレポート連載記事一覧
- この記事の著者
-
谷川 耕一(タニカワ コウイチ)
かつてAI、エキスパートシステムが流行っていたころに、開発エンジニアとしてIT業界に。その後UNIXの専門雑誌の編集者を経て、外資系ソフトウェアベンダーの製品マーケティング、広告、広報などの業務を経験。現在はフリーランスのITジャーナリストとして、クラウド、データベース、ビッグデータ活用などをキー...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
丸毛 透(マルモ トオル)
インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
提供:PingCAP株式会社
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
