Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CNDT2022_YugabyteDB_Overview.pdf

 CNDT2022_YugabyteDB_Overview.pdf

クラウドのスケールメリットと地理的特性をデータベースにも活かしましょう
Tomohiro Ichimura, Yugabyte Japan

クラウドのスケールメリットと地理的特性をデータベースにも活かしましょう "データベースのスケールには課題が多く、今日のマネージドサービスでは個別最適や互換性がトレードオフとなります。読めないワークロード、増減するデータサイズ、複数拠点/複数クラウド、データの一貫性と地理的なレイテンシーも考慮が必要です。 オープンソースの分散SQLデータベースYugabyteDBが、このようなマルチクウラドやKubernetesにおけるデータ処理の課題をどう解決するのかご紹介いたします。

CloudNative Days Tokyo 2022 プレイベント
https://cloudnativedays.connpass.com/event/263410/

YugabyteDB Japan

November 12, 2022
Tweet

More Decks by YugabyteDB Japan

Other Decks in Technology

Transcript

  1. © 2020 - All Rights Reserved 1 YugabyteDB – Distributed

    SQL Database on Any Cloud Tomohiro Ichimura Yugabyte Japan
  2. © 2020 - All Rights Reserved About Me 2 Tomohiro

    Ichimura Yugabyte Japan Tomohiro Ichimura ( @tomoichimura ) Head of Solutions Engineering, Yugabyte Japan Mapbox, Pivotal, VMware,... Cloud Foundry(Tanzu), Spring, GemFire(Apache Geode), vPostgres,...
  3. © 2020 - All Rights Reserved 制限なく永遠に データが存続 / yoogǝ

    ᐧ bīt / ミッション・クリティカルな トランザ クション処理をサポートする分散SQLデー タベース 100%オープンソース ハイブリッド環境で実行可能
  4. © 2020 - All Rights Reserved YugabyteDB 開発に至る軌跡 4 Kannan

    Mikhail Karthik クラウドネイティブアプリケーションに向け たモダンなデータベース オープンソースでの提供 商用利用でも十分な実績のある スケールデータベース RDBMS分野での実績 • 10 years as Core Oracle DB engineer スケーラビリティを考慮した アーキテクチャとオペレーションの実践 • Core DB Team at Facebook 2007 - 2013 • Scaled data platforms from 30m to 1.4 Bn users • Ran DBaaS: +1 Trillion ops/day, +100 PB イノベーションによる裏付け • Co- Creators of Cassandra and Hbase エンタープライズに向けた実装 • Built distributed storage layer at Nutanix Founders
  5. © 2020 - All Rights Reserved YCQL API Cassandra 互換

    YSQL API Postgres 互換 Other APIs (future) クエリとドキュメントストアから構成されるYugabyteDB DocDB Distributed Document Store(ストレージレイヤ) シャーディング ロード バランス トランザクション Raft コンセンサス On-Premises Datacenters 自由な展開先 5 Yugabyte Pluggable Query Layer(クエリレイヤ)
  6. © 2020 - All Rights Reserved 裏付けのされたテクノロジースタックによるユニークな実装 Feature Google Spanner

    YugabyteDB Open Source ❌ ✓ API Compatibility Proprietary PostgreSQL (YSQL) & Cassandra (YCQL) Replication Protocol Paxos Raft Storage Engine Colossus Custom RocksDB (DocDB) Distributed Transaction Mgr At Every Node At Every Node Clock Skew Tracking (for Distributed Transactions) TrueTime Atomic Clock Hybrid Logical Clock Tunable Read Latency ✓ ✓ Official Jepsen Tests Unknown ✓ シャーディング レプリケーション トランザクション ドキュメント・ストレージ Custom RocksDB Storage Engine YSQL API Postgres 互換 API YCQL API Cassandra 互換 API DocDB Distributed Document Store(ドキュメントストア) Yugabyte Pluggable Query Layer(クエリレイヤ)
  7. © 2022 - All Rights Reserved PostgreSQL はシングルノードの RDBMSにおいて 最もプッシュダウンに優れたデータベース

    Yugabyte はPostgreSQLのQuery Layerを活用しつつ、 分散化を実現するために新たな Storage Layerを採用 クエリレイヤ: 分散SQLとしての拡張
  8. © 2022 - All Rights Reserved クエリレイヤ: YSQL 8 SQL

    APP Postmaster (Authentication, authorization) Rewriter Planner Optimizer Executor YugaByte DB Node YugaByte DB Node … … YugaByte DB Node Planner, Optimizer, Executor を拡張し、 分散ストアに対応
  9. © 2022 - All Rights Reserved ドキュメントストア: DocDB follower follower

    leader leader follower follower leader follower follower read or update(from Query Layer) update read or update(from Query Layer) read or update(from Query Layer) update update update Node#1 Node#2 Node#3 • tabletと呼ばれるシャーディングの単位でレプリケーションを実施 • 同じRAFT コンセンサスが行われるグループをtablet peerと呼ぶ • 設定されたコピー数(RF:Replication Factor, 3がデフォルト)分、各ノードにコピーされる 各peerの中でleaderが一つ選ばれる leaderはnodeやzoneなどを意識して分散 tablet peer follower read* ( from Query Layer) follower read* ( from Query Layer)
  10. © 2022 - All Rights Reserved DocDB: シャーディングとロードバランス • 大きいテーブルをシャード

    (tablet)と呼ばれる細かい単位に分けること • シャードはデータベースノードに配布され、ロードを分散する • テーブル内の行は一つのシャードのみに割り当てられる • YugabyteDBにおいてはシャーディングは自動的に行われる • HashあるいはRangeでのシャーディングがある(デフォルトは Hash)
  11. © 2022 - All Rights Reserved DocDB: RAFTコンセンサス 11 tablet

    1’ B: Tablet Peer Raftアルゴリズムにより行レベルの 整合性をノード間で確保することが 可能 障害時には、即時に Leaderが 選択されるためにHAが実現可能 C: Tablet Peer A: Tablet Peer B: Tablet Peer C: Tablet Peer A: Tablet Leader 1. Leaderの選定 2. Leader がクエリを処理 User queries Tablet
  12. © 2022 - All Rights Reserved YugabyteDB クラスタ node1 node2

    node3 node4 必要なだけスケール (tserverとmasterサーバは 別ノードも可能) Raft グループのリーダ (serves writes & strong reads) Raft グループのフォローワー (serves timeline-consistent reads & ready for leader election) syscatalog yb-master1 YB-Master Service メタデータと構成管理Manage shard metadata & coordinate config changes syscatalog yb-master2 syscatalog yb-master3 Cluster Administration 管理クライアント アプリケーション クライアント Query Layer Query Layer Txn Mgr Query Layer Txn Mgr Query Layer Txn Mgr … yb-tserver1 tablet3 tablet2 tablet1 YB-TServer Service 実際のデータ処理を実現 クエリ+ドキュメントストア Store & serve app data in/from tablets (aka shards) yb-tserver2 yb-tserver3 yb-tserver4 … tablet4 tablet2 tablet1 … tablet4 tablet3 tablet1 … tablet4 tablet3 tablet2 Distributed SQL API Txn Mgr
  13. © 2022 - All Rights Reserved AZレベルからマルチクラウドまで対応するクラスタトポロジー 複数クラウド、複数リージョン ゾーン間での一貫性 WANのレイテンシーなし

    リージョンレベルの耐障害性なし リージョン間での一貫性 リージョン間WANのレイテンシー リージョンレベルの耐障害性 クラウド間での一貫性 クロスクラウドのWANレイテンシー クラウドレベルの耐障害性 1 1 単一リージョン、複数ゾーン 1 2 単一クラウド、複数リージョン 1 3 複数クラウド、複数リージョン 16
  14. © 2022 - All Rights Reserved さまざまなデプロイメントのトポロジーパターン • 読み取りメインのレプリカをデプロイし 低レイテンシーを実現

    • 更新系処理はマスタにアクセス • プライマリのデータをそのまま複製 • Placementと呼ばれる物理的な地域の グループを作成 • Placementグループでデータ共有 • クラスタは一つ • クラスタ間でテーブルを共有 • レプリケーションは非同期 • 単方向もしくは双方向 • リージョンやクラウドを 跨いだクラスタ構成 • 強い一貫性を保つ • 地域間レイテンシーが発生 リードレプリカ (レプリカへは非同期) xCluster レプリケーション (レプリカへは非同期) 地理的(Geo) パーティション (同期) ストレッチクラスター (同期)
  15. © 2022 - All Rights Reserved Cloud Provider YugabyteDBはあらゆるクラウドにデプロイが可能です レプリケーションオプション

    Universe (Cluster) Read Replica xCluster Async Replication Multi-zone Cluster Sync Replication Stretch Cluster (Multi-region) Sync Replication
  16. © 2020 - All Rights Reserved k8s上でのデプロイメントイメージ 22 node2 node1

    node4 node3 yb-master StatefulSet yugabytedb yb-master-1 pod yugabytedb yb-master-0 pod yugabytedb yb-master-2 pod yb-tserver StatefulSet tablet 1’ yugabytedb yb-tserver-1 pod tablet 1’ yugabytedb yb-tserver-0 pod tablet 1’ yugabytedb yb-tserver-3 pod tablet 1’ yugabytedb yb-tserver-2 pod … Local/Remote Persistent Volume Local/Remote Persistent Volume Local/Remote Persistent Volume Local/Remote Persistent Volume yb-masters Headless Service yb-tservers Headless Service App Clients Admin Clients https://charts.yugabyte.com/
  17. © 2020 - All Rights Reserved Under the Hood –

    3 Node Cluster 23 DocDB Storage Engine Purpose-built for ever-growing data, extended from RocksDB yb-master1 yb-master3 yb-master2 YB-Master Manage shard metadata & coordinate cluster-wide ops Worker node1 Worker node3 Worker node2 Global Transaction Manager Tracks ACID txns across multi-row ops, incl. clock skew mgmt. Raft Consensus Replication Highly resilient, used for both data replication & leader election tablet 1’ tablet 1’ yb-tserver1 yb-tserver2 yb-tserver3 tablet 1’ tablet2-leader tablet3-leader tablet1-leader YB-TServer Stores/serves data in/from tablets (shards) tablet1-follower tablet1-follower tablet3-follower tablet2-follower tablet3-follower tablet2-follower … … … YB Helm Charts Repository https://charts.yugabyte.com/
  18. © 2020 - All Rights Reserved k8s上でのデプロイメントにおける課題 24 分散データベースで対応可能 アプリが別クラスタに

    あるとLBが必要 サービスディスカバリが必 要 (DNS, Service Mesh, Multi-cluster discovery service, 等 ) pod障害 Storage障害 (local/persistent) 負荷分散 マルチk8sクラスタ デプロイ
  19. © 2022 - All Rights Reserved スケールと地理分散を実現するさまざまなユースケース 26 バックエンドサービス •

    複数のHasura GraphQLインスタンスの バックエンドでサービス • Geoパーティショニングでローカリティも確 保 • メタデータの管理 • アプリのスケールにも柔軟に対応 US-East US-West- Seattle US-South-Texas マルチリージョンデプロイ • 3 リージョン に27ノードでデプロイ • 強い一貫性を保持、単一リージョンのダ ウン時にデータロースなし • RPO = 0 , RTO ~ 3 secs • 1億を超える製品と、10億以上の関連内 容を扱う製品カタログ向けのSoR CQRS • Command(CRUD)とQuery(検索)の役割 とデータストアを分離 • YugabyteDBで、両ストアに対応 • ストア間連携は、レプリケーションか外部 テーブル参照が可能 • Kafkaなどの3rd Party連携も活用
  20. © 2022 - All Rights Reserved Yugabyte DB エコシステム •

    YugabyteDB Smart Driver ◦ クラスタを考慮した JDBC Driverでのデータベースアクセス • Spring Data Yugabyte ◦ YSQL, YCQL に対して Spring Boot auto reconfiguration が可能 • クラウドネイティブフレームワークへの対応 ◦ ORMs: DJango, Elixir, Sequelize, Laravel ◦ スキーマ移行: Flyway, Liquibase • KafkaやSparkとのデータ連携 ( Source / Sink , CDC, Spark Streaming) • GraphQL(Hasura), Vault(HashiCorp),...
  21. © 2022 - All Rights Reserved Spring Data Yugabyte DB

    >= Smart Driver + Spring DATA JPA 29 • Yugabyteに最適なドライバ ◦ クラスタを理解するJDBC ドライバ • ロードバランサ不要 ◦ Smart Driverにてアクセス先を判定 • Spring Data との連携 ◦ Java アプリケーションに適したボイラー プレートとデータアクセスにより、クラウ ド・ネイティブ・アプリケーションの開発 を加速 https://github.com/yugabyte/spring-data-yugabytedb
  22. © 2022 - All Rights Reserved Kafkaとのデータ連携 イベント駆動型マイクロサービス 3 OLTP処理から分析データへ

    2 IoTやClickstreamからのデータ集約 1 IoTやセンサー、ClickstreamからのRawデー タを直接、または、リアルタイムのストリーム処 理を行ってYugabyteDBに格納。検索や分析 のための可視化を行うデータソースとして活 用。 トランザクション処理を行うアプリケーションか らYugabyteDBを使用。Debezium connector for YugabyteDBを使用してChange Data Capture (CDC) 機能により更新イベントを Kafkaトピックに送信。他のデータベースや分 析のためのデータレイク等に更新イベントを反 映。 顧客接点となる変更スピードの早いマイクロ サービス・アプリケーションから Yugabyte DBを 使用。マイクロサービスのスケールに合わせて データベースをスケールさせたり、地理的に分 散した環境で高パフォーマンスのサービスを提 供したりすることが可能。
  23. © 2022 - All Rights Reserved • データベース移行のライフサイクル全体を管理 • データインポート、スキーマやデータ移行も実施

    • 移行性についての分析レポートも出力可能 • yb-voyager CLIにて操作 • 対象: PostgreSQL, MySQL, Oracle, もしくは PostgreSQL/MySQL互換の各種マネージドサービス YugabyteDB Voyagerによるスムースな移行の推進 31 オープンソース 概要 • 新しいデータベースマイグレーションエンジン • 移行の障壁を軽減、クラウドへの適応を加速化 • レガシーなデータベースにおけるトレードオフからの脱却 利点
  24. © 2022 - All Rights Reserved YugabyteDB Managed: 3つのステップでクラスタをデプロイ 33

    1. クラウドと YugabyteDBの バージョンを指定 2. ノードの構成 3. クレデンシャルの取得 数分でクラスタがデプロイされます Stable versionかPreview(latest)versionが 選べます 複数ノードでの無償検証も可能です。 [email protected]にお問合せください ノードへのアクセスは Cloud shellもしくはCLIか ら可能です https://cloud.yugabyte.com マネージドサービスご利用キャンペーン実施中 yugabyte.com/ybm-quantum-leap
  25. © 2022 - All Rights Reserved YugabyteDB Managed: Cloud Shellによるインタラクティブモード

    34 Stepの通りに進めていくと、一通りの YugabyteDBの機 能を確認いただけます (”▷Run”を押せば入力も不要 )
  26. © 2022 - All Rights Reserved YugabyteDBを使って、課題を解決しましょう API API 異なるクラウド間で

    も一貫性のあるアク セスが可能 アプリのスケールに も柔軟に対応 アクセスパターンに 応じた、シームレス な連携が可能 ノード追加によるリ ニアな性能向上 トランザクションも受 け付ける分散データ ベース 複数APIに対応した 分散クエリ マルチクラウド・マル チリージョン間でも 整合性維持
  27. © 2020 - All Rights Reserved Thank You Slackチャンネル (#yb-japan-users)

    yugabyte.com/slack 製品ダウンロード download.yugabyte.com マネージドサービス yugabyte.com/managed DSS on demand distributedsql.org/on-demand/ マネージドサービスご利用キャンペーン実施中 yugabyte.com/ybm-quantum-leap