Slide 1

Slide 1 text

2021年 4月 2日 レッドハット株式会社 須江 信洋 (@nobusue) 今だからこそ考える Cassandra on Rook 1 Japan Rook Meetup #5

Slide 2

Slide 2 text

自己紹介 2 須江 信洋(すえ のぶひろ) • Twitter: @nobusue 約14年JavaEE関連に携わる(1999〜2013) IoTサービス関連Startupで開発から運用まで (2014〜2017) • ストリーミングデータ処理、マイクロサービス化、 コンテナプラットフォーム構築/運用 Red HatでOpenShift担当Solution Architect(2017〜2019) Red HatでMW SAチームのマネージャ(2019/4〜now)

Slide 3

Slide 3 text

Rook Project Status ......... 3 https://github.com/rook/rook#project-status

Slide 4

Slide 4 text

4ヶ月くらい放置されてる気配・・・(2021/4/2早朝時点) 4 https://github.com/rook/rook/tree/master/pkg/operator/cassandra

Slide 5

Slide 5 text

Apache Cassandraってどんなもの? 5 ● https://cassandra.apache.org/doc/latest/architecture/overview.html ○ "Apache Cassandraは、オープンソースの分散型NoSQLデータベースです。Cassandraは、Eventually Consistent(結果整合性)セマンティクスを持つ、パーティション化されたワイドカラムストレージモデルを提 供します。" ○ "Apache Cassandraは当初、Facebook社でSEDA(Staged Event Driven Architecture)を用いて設計 され、Amazon社のDynamo分散ストレージおよびレプリケーション技術と、Google社のBigtableデータ およびストレージエンジンモデルを組み合わせて実装されました。DynamoとBigtableは、スケーラブルで 信頼性が高く、可用性の高いストレージシステムという新たな要求を満たすために開発されましたが、そ れぞれに改善すべき点がありました。" ● 手っ取り早く理解したい方はこちらをどうぞ ○ 「NoSQLデータベースCassandraの紹介 〜 ヤフーのデータ基盤を支える技術」 ■ https://techblog.yahoo.co.jp/entry/20200129803067/ ● 要点 ○ マスターレス(Peer to Peer)な分散型 =>運用メンドイ ○ ワイドカラムKVS ○ Eventually Consistent ○ Javaで実装

Slide 6

Slide 6 text

Cassandra Operator(s) 6 ● Cass Operator by DataStax ○ https://github.com/datastax/cass-operator ○ https://docs.datastax.com/en/cass-operator/doc/cass-operator/cassOperatorGettingStarted.html ○ 機能的にはまだ弱いがデファクト狙い? ○ OpenShiftでもcertify済み ■ https://catalog.redhat.com/software/operators/datastax/cass-operator/5ec5a88329373868203 3f770 ● CassKop by Orange-OpenSource ○ https://github.com/Orange-OpenSource/casskop ○ 機能的にはかなり充実している様子 ● Instaclustr ○ https://operatorhub.io/operator/cassandra-operator ○ https://github.com/instaclustr/cassandra-operator ○ sunset、今後はcass-opかcasskopを使えとのこと ● Scylla Operator ○ https://github.com/scylladb/scylla-operator ○ Scylla(C実装のCassandra互換DB)専用Operatorを作ってる

Slide 7

Slide 7 text

気を取り直して、、、アーキテクチャを拝見 7 https://github.com/rook/rook/blob/master/design/cassandra/design.md

Slide 8

Slide 8 text

Rook Cassandra Operator 8 ● Quickstart ○ https://rook.io/docs/rook/v1.5/cassandra.html ■ Operatorの導入方法はシンプル ● Rook Cassandra Operatorを動かす前提条件 ○ https://rook.io/docs/rook/v1.5/k8s-pre-reqs.html ■ Cassandraを動かす用途ならflexvolume pluginは必須ではない ● Rook Cassandra Operatorのいいところ ○ クラスタの構築が容易(CRをapplyするだけ) ○ スケールアップ/ダウンが容易(CRをeditするだけ) ○ モニタリングの設定が容易(ConfigMapを作るだけ) ○ CassandraとScyllaを同じ方法で扱える ● 注意点 ○ Dynamic Provisioning可能なストレージが必要 ○ StorageClassはCassandraクラスタ毎に1つしか設定できない ○ (Rookで生き残れるか不透明・・・・)

Slide 9

Slide 9 text

そもそもCassandra OperatorがRookに入ってる理由は? 9 ● (たぶん)Dynamic Provisioning可能で、高速かつ信頼性の高いストレージが必須だから ○ on k8sではなく普通にクラスタ組むときは、インスタンスストアなどの高速なローカルストレージ を使うことが多い ○ on k8sの場合はPod配置の自由度を高めるためにストレージを抽象化したいので、必然的に CephのようなSDSと組み合わせて考える必要が出てくる ○ おそらく、バックアップ/リストアやスナップショット取得など、ストレージ層と連携するOperatorを 作ることを想定していたのではなかろうか? ■ 未実装だがRook Cassandra OperatorのDesign Docにその片鱗が・・・・ ● しかし現実には、、、 ○ Rook Ceph OperatorとRook Cassandra Operatorの間で共有されているコードは皆無で、 まったくの別物と言ってよい ○ Cassandra/Scyllaいずれも独自にOperatorの開発が進められており、そちらがデファクトにな りそうな勢い

Slide 10

Slide 10 text

最後に) Cassandraのベンチマークツール 10 ● 今回はベンチーマーク実行してませんがCassandraとScyllaで比較してみるとたぶん面白いと思い ます(時間取れたら後日やってみようと思います・・) ● YCSB: 汎用NoSQLベンチマークツール ○ https://github.com/brianfrankcooper/YCSB/wiki/Getting-Started ● tlp-stress: Cassandra専用ストレステストツール ○ https://github.com/thelastpickle/tlp-stress

Slide 11

Slide 11 text

linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Red Hat is the world’s leading provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank you Red Hat Tech Night 2019.05