9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RookだらけのAdvent Calendar 2019

Day 10

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

Last updated at Posted at 2019-12-10

この記事は「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をインストールして、実際に使用感を試していきたいと思います。

よろしくお願いします。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?