Help us understand the problem. What is going on with this article?

YugaByteDB(1) Rookv1.1で対応!YugaByteDBとは

この記事は「RookだらけのAdvent Calender」10日目の記事です。

昨日、Japan Rook Meetupが行われましたが、そちらでも紹介したYugaByteDBについて、何回かに分けて解説をしていきます。

RookにおけるYugaByteDB対応とは

アドベントカレンダー1日目の「Rookの概要とRook-Ceph」にもあったように、Rook自体はマルチなストレージプロバイダをオーケストレーションできるツールです。

その中でCephなどのSDSと異なり、データベースに近いプロバイダとして、以下3つがあります。

これらは分散KVSまたはRDBですが、Rookによりオーケストレーションが可能となっています。

YugaByteDBにRookはどの程度本気なのか?

本日以降のアドベントカレンダーで各ストレージプロバイダを検証していく上で、これは重要な視点になるでしょう。

既にStableであるCephとEdgeFSと比較して、YugaByteDBやその他のプロバイダは明らかに違いが見られます。具体的にRookの公式ドキュメントを見てみましょう。

公式ドキュメントにあるYugaByteDBのCRDの箇所を見てみましょう。ここにはRookのCRDの仕様が書かれていますが、

  • kind: YBCluster

が一つあるだけです。

一方、Cephはどうか。ここにあるRookにおけるCeph Storageの概要に始まり、以下のCRDの仕様を確認することが出来ます。

  • kind: CephCluster
  • kind: CephBlockPool
  • kind: CephNFS
  • kind: CephFilesystem
  • kind: CephObjectStore
  • Kind: ObjectBucketClaim
  • kind: CephObjectStoreUser

もちろんCephの多機能さに起因する部分はありますが、データベースのOperatorは良くあるSnapshotやリカバリの機能などがRook-YugaByteDBでは提供されていません。

この辺りの開発が進むかどうかが、RookにおけるYugaByteDB利用が拡がるかの鍵になってくることは間違いありません。

Rookの競合は?

これは完全に私見ですが、Rookのストレージプロバイダ対応状況はAWS(に限らずクラウドプロバイダ)のサービスと比較すると少し見通しが立ってきます。

image.png

ストレージとしてはEBS/EFS/S3などをサポートし、Cassandraや分散型のデータベースサービスを提供しているAWSはクラウド上ではRookの上位互換です。

オンプレKubernetes上でのストレージプロバイダ管理でRookが優るようにも見えますが、これも今後次第かなという状況です。

YugaByteDBとは

特徴は先日の発表資料から以下をご覧下さい。

image.png

Google Cloud Spannerは非常に高性能なSQLサポートのデータベースですが、GCPでしか使えず、ロックインが発生します。

それに対し、オンプレミスや他のクラウドでSpannerと同等の機能と性能を実現しようとしているデータベースとして以下のようなものがあります。

  • YugaByteDB
  • CockroachDB
  • TiDB

いずれのデータベースも膨大なノード数(100台から数百台規模)までスケールし、各種のコンポーネントをその上に展開することから、Kubernetesの力を借りてデプロイ・管理可能なことをうたっています。

DBMSとしての特徴

Kuberntetesで展開可能な大規模スケールのデータベースとしては、CNCFでGraduationとなったVitessがあります。

このVitessとYugaByteDBは構造として大きく異なります。

【Vitess】

  • 1つ以上のコーディネータを持ち、その下にシャーディング・インスタンスがぶら下がる形。
  • シャーディング・インスタンスは(ほぼ)シンプルなMySQL。
  • 各インスタンスが持つデータは分かれており、それぞれへのクエリをコーディネータが振り分ける。

【YugaByteDB】

  • SQLエンジンと分散ストレージの2つのコンポーネントからなる。
  • 分散ストレージはKVSとして実装されている。
  • データはストレージ内で3重に冗長化される

YugaByteDBの構造に関しては明日以降に詳しく解説していきます。

まとめ

さて、YugaByteDBとしての1日目となる本日はRookから見たYugaByteDB、そしてデータベースとしての構造の簡単な解説を行いました。

明日からは実際にRookを使ってYugaByteDBをインストールして、実際に使用感を試していきたいと思います。

よろしくお願いします。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away