Slide 1

Slide 1 text

マイクロサービス導⼊により⽣まれた 組織課題に対するソリューションとしてのTiDB イオンスマートテクノロジー株式会社 CTO室 SREチーム リーダー ⾹⻄ 俊幸

Slide 2

Slide 2 text

This session is sponsored by ... Developers Summit 2024

Slide 3

Slide 3 text

• ⾃⼰紹介 • 会社紹介 • TiDBとTiDB Cloudについて • TiDB Cloud導⼊検討の背景 • マイクロサービス導⼊により⽣まれる課題 • TiDB Cloud導⼊によりどう変わるのか • まとめ Agenda Developers Summit 2024

Slide 4

Slide 4 text

⾃⼰紹介

Slide 5

Slide 5 text

所属 • イオンスマートテクノロジー株式会社 • CTO室SREチームリーダー兼DevRel担当 • 2023年8⽉より現職(DevRelは12⽉ぐらいから) コミュニティ運営 • NRUG(New Relic User Group)SRE⽀部 • Cloudflare Meetup Nagano • TiUG(TiDB User Group) その他 • 2021年8⽉に⻑野県佐久市へ移住 • 3児の⽗ ⾹⻄ 俊幸 aka @Tocyuki ⾃⼰紹介

Slide 6

Slide 6 text

会社紹介

Slide 7

Slide 7 text

• イオンのデジタルシフト戦略を担う会社の位置付けで2020年10⽉に設⽴ • お客様のお買い物体験向上と店舗DXを進める イオンスマートテクノロジーについて 会社紹介

Slide 8

Slide 8 text

イオンスマートテクノロジーのミッション 会社紹介

Slide 9

Slide 9 text

膨⼤なIDと購買データを集約したアプリ「iAEON」 会社紹介 iAEONはイオングループが提供する決済機能やポイントプログラムを1つにまとめたアプリです。 イオングループ内の多数の事業会社がもつ顧客IDを⼀つのアプリに統合しています。 提供開始から約3年で、iAEONは500万⼈以上の会員を抱え、独⾃のコード決済サービス「イオンペイ」は836万⼈ (23年5⽉時点)が利⽤しています。

Slide 10

Slide 10 text

テックブログ Meetup エンジニア向け採⽤サイト オウンドメディア 1 2 3 4 会社紹介 イオングループのエンジニ アたちにより、 Zennの Publicationで運⽤されてい るテックブログ 毎⽉オンライン or オフライ ンで実施されているAEON 主催のテック系イベント イオンスマートテクノロ ジーをはじめとしたグルー プ内テック系企業のエンジ ニア向け採⽤ページ AEONグループの社員イン タビューや登壇レポート、 イベントのお知らせなどの 様々な記事をお届けします

Slide 11

Slide 11 text

来週2/21(⽔)19:00からやります︕ 会社紹介 https://aeon.connpass.com/event/308065/

Slide 12

Slide 12 text

TiDBとTiDB Cloudについて

Slide 13

Slide 13 text

• PingCAP社が開発するMySQL CompatibleなNewSQL • 複数コンポーネントからなる分散データベースシステム • HTAP(Hybrid Transactional and Analytical Processing) • 無限のスケーラビリティ TiDBとは TiDBとTiDB Cloudについて

Slide 14

Slide 14 text

• TiDB, TiDB Cloudの開発元 • 800億以上の資⾦調達に成功し、積極的な事業展開を⾏なっている • 元InnoDB開発者のSunny Bainsなど、国内外でDBのスペシャリストた ちが集まってきている • PingCAP JapanにもTiKVのCore Developerが在籍 PingCAP社について TiDBとTiDB Cloudについて

Slide 15

Slide 15 text

NewSQLとは TiDBとTiDB Cloudについて DBMS CAP ACID 拡張性 ⼀貫性 可⽤性 分断耐性 RDBMS ⭕ ⭕ ❌ ⭕ 🔺 NoSQL ❌ ⭕ ⭕ ❌ ⭕ NewSQL ⭕ 🔺 ⭕ ⭕ ⭕

Slide 16

Slide 16 text

MySQL CompatibleなNewSQL TiDBとTiDB Cloudについて プロダクト 互換性 GitHub Star数 ライセンス 開発元 Cloud Spanner PostgreSQL - 商⽤ Google CockroachDB PostgreSQL 28.4k OSS Cockroach Labs YugabyteDB PostgreSQL 8.3k OSS Yugabyte, Inc. TiDB MySQL 35.5k OSS PingCAP ※TiDB単体

Slide 17

Slide 17 text

複数コンポーネントからなる分散データベースシステム TiDBとTiDB Cloudについて https://github.com/pingcap/tidb/blob/master/docs/tidb-architecture.png

Slide 18

Slide 18 text

複数コンポーネントからなる分散データベースシステム TiDBとTiDB Cloudについて https://github.com/pingcap/tidb/blob/master/docs/tidb-architecture.png MySQLプロトコルの接続エンドポイン トを外部に公開するステートレスSQLレ イヤー。データは保存されず、コン ピューティングと SQL 分析のみを⽬的 としており、実際のデータ読み取りリク エストを TiKV ノード (またはTiFlash ノード) に送信する。Golang製OSS。

Slide 19

Slide 19 text

複数コンポーネントからなる分散データベースシステム TiDBとTiDB Cloudについて https://github.com/pingcap/tidb/blob/master/docs/tidb-architecture.png 分散トランザクション型のKey-Value データベースでデータの永続化には RocksDBが使われている。CNCFによっ てホストされているRust製のOSSであり、 すでにGraduatedステータスとなってい る。

Slide 20

Slide 20 text

複数コンポーネントからなる分散データベースシステム TiDBとTiDB Cloudについて https://github.com/pingcap/tidb/blob/master/docs/tidb-architecture.png データを列ごとに保存し、主に分析処 理を⾼速化するように設計された HTAPを実現するためのコンポーネン ト。C++製OSS。

Slide 21

Slide 21 text

複数コンポーネントからなる分散データベースシステム TiDBとTiDB Cloudについて https://github.com/pingcap/tidb/blob/master/docs/tidb-architecture.png PD(PlacementDriver)はTiDB クラス ター全体の「頭脳」となるメタデータ管 理コンポーネント。管理 UI を提供し、 分散トランザクションにトランザクショ ン ID を割り当てる役割も持つ。Golang 製OSS。

Slide 22

Slide 22 text

複数コンポーネントからなる分散データベースシステム TiDBとTiDB Cloudについて https://github.com/pingcap/tidb/blob/master/docs/tidb-architecture.png NW遅延加算によるレイテ ンシがあるため数msを求 められるような性能要件の システムには不向き

Slide 23

Slide 23 text

HTAP TiDBとTiDB Cloudについて • Hybrid Transactional and Analytical Processingの略 • OLTPとOLAPのワークロードを同じアーキテクチャで処理できてワーク ロードが互いに⼲渉しない • OLTP (Online Transaction Processing) • RDBで⾏うようなリアルタイムトランザクションの管理と処理 • OLAP(Online Analytical Processing) • DWHなどで⾏うような⼤量データの⾼速なデータ分析

Slide 24

Slide 24 text

HTAP TiDBとTiDB Cloudについて Online Application Reporting/BI App Server OLTP database OLAP database ETL 従来のハイブリッドワークロードシナリオ

Slide 25

Slide 25 text

HTAP TiDBとTiDB Cloudについて Online Application Reporting/BI App Server TiDBによるHTAPの実現

Slide 26

Slide 26 text

• PingCAP社が提供するDBaaS • 2024年2⽉現在、AWS / Google Cloudで提供されている(Azureはよ) • ServerlessとDedicatedを選択可能(ServerlessはAWSのみの提供) TiDB Cloudとは TiDBとTiDB Cloudについて

Slide 27

Slide 27 text

DedicatedとServerless⽐較 TiDBとTiDB Cloudについて 項⽬ Dedicated Serverless 提供IaaS AWS, GCP AWS 課⾦体系 リソース 利⽤容量&クエリ 接続⽅式 Public: Internet Private: Private Link, VPC Peering Public: Internet Private: Private Link スケール 操作に基づくスケール オートスケール 機能制限 - いろいろと制限あり バージョン 最新のLTS 最新バージョン https://docs.pingcap.com/ja/tidbcloud/limited-sql-features

Slide 28

Slide 28 text

TiDB Cloud導⼊検討の背景

Slide 29

Slide 29 text

• スケーラビリティ • シャーディングによる運⽤コストと複雑性の増加 • メンテナビリティとメンテナンス時の運⽤負荷 • MySQL8対応 データベースに抱えていた課題 TiDB Cloud導⼊検討の背景 しか勝たんのでは︖

Slide 30

Slide 30 text

TiDB Cloudの導⼊を視野に共同検証を開始 TiDB Cloud導⼊検討の背景

Slide 31

Slide 31 text

マイクロサービス導⼊により⽣まれる課題

Slide 32

Slide 32 text

• 開発スコープを⼩さくして開発スピードを上げる • 開発スコープを分離してコストを適切に管理・最適化する • サービスを分離して障害の影響範囲を極⼩化する ⼈はマイクロサービスに何を期待するのか TiDB Cloud導⼊検討の背景

Slide 33

Slide 33 text

弊社の場合... マイクロサービス導⼊により⽣まれる課題 https://speakerdeck.com/aeonpeople/cndt2023-ionkakuberneteswocai-yong-sitetounatuta?slide=9

Slide 34

Slide 34 text

⽒、⽈く マイクロサービス導⼊により⽣まれる課題 Martin Fowler⽒ 出典: https://martinfowler.com/bliki/MonolithFirst.html 成功したマイクロサービスのストーリーのほとんどは、⼤き くなりすぎたモノリスを分割するところから始まっている。 マイクロサービスシステムとしてゼロから構築されたシステ ムは、ほとんどすべてのケースで深刻なトラブルに⾒舞われ ている。

Slide 35

Slide 35 text

⽒、⽈く マイクロサービス導⼊により⽣まれる課題 Martin Fowler⽒ 出典: https://martinfowler.com/bliki/MonolithFirst.html 成功したマイクロサービスのストーリーのほとんどは、⼤き くなりすぎたモノリスを分割するところから始まっている。 マイクロサービスシステムとしてゼロから構築されたシステ ムは、ほとんどすべてのケースで深刻なトラブルに⾒ 舞われている。

Slide 36

Slide 36 text

弊社、深刻なトラブルに⾒舞われています マイクロサービス導⼊により⽣まれる課題 どちゃくそアンチパターン 踏み抜いてるやないかい... とあるイオンピーポー

Slide 37

Slide 37 text

• ドメイン境界設定に起因するサービス分割の失敗 • マイクロサービス間のトランザクション管理 • マイクロサービスとリンクしていない組織設計 よくある(?)マイクロサービス導⼊後の課題 マイクロサービス導⼊により⽣まれる課題

Slide 38

Slide 38 text

• ドメイン境界設定に起因するサービス分割の失敗 • マイクロサービス間のトランザクション管理 • マイクロサービスとリンクしていない組織設計 よくある(?)マイクロサービス導⼊後の課題 マイクロサービス導⼊により⽣まれる課題 技術的な課題

Slide 39

Slide 39 text

ドメイン境界設定に起因するサービス分割の失敗 マイクロサービス導⼊により⽣まれる課題 • マイクロサービス間で依存関係を持たせることなく良い感じにサービス 分割したり切り分けるのはシンプルに難しい • 適切な切り⽅には深いドメイン知識が必要で後からわかることも多い • マイクロサービス間の依存度に応じたI/Fの増加 • 多発する循環参照とデプロイの複雑度上昇

Slide 40

Slide 40 text

マイクロサービス間のトランザクション管理 マイクロサービス導⼊により⽣まれる課題 • 所謂(?)分散トランザクション • 分散トランザクションはシンプルに設計や実装の難易度が⾼い • Sagaパターン • TCC(Try/Confirm/Cancel)パターン • XA • 分散トランザクションが発⽣した時点で設計の敗北まである(諸説ある)

Slide 41

Slide 41 text

• ドメイン境界設定に起因するサービス分割の失敗 • マイクロサービス間のトランザクション管理 • マイクロサービスとリンクしていない組織設計 よくある(?)マイクロサービス導⼊後の課題 マイクロサービス導⼊により⽣まれる課題 技術的な課題 システムアーキテクチャーや実装の課 題なのでTiDBで直接的に解決するこ とは中々むずかしいが、TiDBに集約 することでアーキテクチャーや実装の 選択肢を増やすことはできる (マイクロサービスとは︖)

Slide 42

Slide 42 text

• ドメイン境界設定に起因するサービス分割の失敗 • マイクロサービス間のトランザクション管理 • マイクロサービスとリンクしていない組織設計 よくある(?)マイクロサービス導⼊後の課題 マイクロサービス導⼊により⽣まれる課題 組織的な課題

Slide 43

Slide 43 text

マイクロサービスとリンクしていない組織設計 マイクロサービス導⼊により⽣まれる課題 • マイクロサービスは究極組織論である(諸説ある) • 適切なサービス分割とリンクした組織設計がセットで必要 • 組織構造はそのままにマイクロサービス化されることも(つらい) • アーキテクチャドリブンな逆コンウェイ戦略は組織最適化の動機付けと しては弱い(個⼈的⾒解&経験談) • マイクロサービスにしたから組織も良い感じに最適化される⼒学が働くとは限らな い

Slide 44

Slide 44 text

(再掲)弊社の場合... マイクロサービス導⼊により⽣まれる課題 https://speakerdeck.com/aeonpeople/cndt2023-ionkakuberneteswocai-yong-sitetounatuta?slide=9

Slide 45

Slide 45 text

弊社の開発組織の⼀部 マイクロサービス導⼊により⽣まれる課題 API基盤開発チーム 運⽤保守チーム API基盤 API 2 DB API 3 API 1 DB API XX DB API 4 DB ・・・ 会員基盤 OIDC DB User Auth 会員基盤開発チーム Microservice Microservice Microservice Microservice Microservice アプリ基盤 BFF Message Native App アプリ基盤開発チーム App API DB SREチーム

Slide 46

Slide 46 text

弊社の開発組織の⼀部 マイクロサービス導⼊により⽣まれる課題 SREチーム API基盤 API 2 DB API 3 API 1 DB API XX DB API 4 DB ・・・ 会員基盤 OIDC DB User Auth 会員基盤開発チーム Microservice Microservice Microservice Microservice Microservice アプリ基盤 BFF Message Native App アプリ基盤開発チーム App API DB 主にこのAPI基盤のこと API基盤開発チーム 運⽤保守チーム

Slide 47

Slide 47 text

弊社の開発組織の⼀部 マイクロサービス導⼊により⽣まれる課題 SREチーム API基盤 API 2 DB API 3 API 1 DB API XX DB API 4 DB ・・・ 会員基盤 OIDC DB User Auth 会員基盤開発チーム Microservice Microservice Microservice Microservice Microservice アプリ基盤 BFF Message Native App アプリ基盤開発チーム App API DB DevとOpsが分離したまま API基盤開発チーム 運⽤保守チーム vs

Slide 48

Slide 48 text

• Opsが各マイクロサービスの役割を把握できない状況に • マイクロサービス間に依存関係がありメンテナンスの調整が⼤変 • DBのバージョンアップ対応などマイクロサービスの数だけOpsでメンテ ナンスでやる必要があり⼤変 • 得意⽇やキャンペーン時のDBスケールアップ対応もメンテナンスを挟む 必要があり⼤変 • これらOpsのツラミは⽂字通り運⽤でカバーすることに DevとOpsが別れたままマイクロサービス、どうなった︖ マイクロサービス導⼊により⽣まれる課題

Slide 49

Slide 49 text

マイクロサービス導⼊により⽣まれた組織課題 マイクロサービス導⼊により⽣まれる課題 運⽤負荷の増⼤ 運⽤でカバー ここを少しでもなんとかしたい

Slide 50

Slide 50 text

TiDB Cloud導⼊によりどう変わるのか

Slide 51

Slide 51 text

メンテナンスによる運⽤負荷の改善 TiDB Cloud導⼊によりどう変わるのか DB作業内容 現在 TiDB導⼊後 スケールアップ メンテナンスあり メンテナンス不要 バージョンアップ メンテナンスあり メンテナンス不要 DDLの実⾏ メンテナンスあり ※ものによりけり メンテナンス不要 シャーディング メンテナンスあり メンテナンス不要 ※シャーディング不要

Slide 52

Slide 52 text

オンラインスケールアップ&スケールアウト TiDB Cloud導⼊によりどう変わるのか

Slide 53

Slide 53 text

オンラインDDLの実⾏ TiDB Cloud導⼊によりどう変わるのか

Slide 54

Slide 54 text

オンラインDDLの実⾏ TiDB Cloud導⼊によりどう変わるのか tidb_ddl_reorg_worker_cnt という パラメーターを調整することで⾼速化が可能

Slide 55

Slide 55 text

⾃動シャーディング&バージョンアップ TiDB Cloud導⼊によりどう変わるのか アプリケーション側での実装は不要

Slide 56

Slide 56 text

データベース運⽤のツラミからの開放 TiDB Cloud導⼊によりどう変わるのか とあるイオンピーポー

Slide 57

Slide 57 text

まとめ

Slide 58

Slide 58 text

• TiDBはMySQL CompatibleなNew SQLでHTAPを実現するプロダクト • マイクロサービスは⼿段であり⽬的ではない • アーキテクチャと組織設計の不整合のつけは運⽤にのしかかる • TiDB Cloudが提供する無停⽌で実現される無限のスケーラビリティと安 定稼働によりもたらされる運⽤負荷の削減に期待 • はやくAzureでもTiDB Cloud使えるようにしてクレメンス まとめ Developers Summit 2024

Slide 59

Slide 59 text

幅広いポジションで積極的に採⽤中です︕︕ We are hiring

Slide 60

Slide 60 text

☆TiDB Cloud 特別キャンペーン! TiDB Cloudに無料サインアップいただくと抽選で20名様に 以下いずれかのノベルティをプレゼント。 ※申込期限は2024年2月22日(木) 午後15:00まで。 ②TiDBロゴ 刺繍のシャツ ①TiDB認定資格試験 「PCTA」無料パス ※2万円相当 申込フォーム ※Yシャツのデザインはイメージで 実物とは異なる可能性があります。