DataStaxは先月、Apache Cassandra データベース上に構築されたクラウドネイティブの Database-as-a-Service (DBaaS) である Astra のリリースを発表した。
Kubernetes、Prometheus、Envoy などのテクノロジーに基づいて構築された Astra は、Google Kubernetes Engine (GKE) および Amazon Elastic Kubernetes Service (EKS) 管理プレーンのクラウドネイティブサポートを提供する。
Astra は、Apache Cassandra でクラウドネイティブサービスを実行するために次のコンポーネントを提供する:
- Gateway: Astra クラスタに着信するトラフィックはゲートウェイを使用して管理され、Envoy プロキシを使用してリクエストをルーティングする。これにより、公開のためオープンポートの数が減り、Astra の弾力性 (elastic) と安全性 (secure) が高まる。ゲートウェイは、データ資産と対話するための REST および GraphQL API を公開するためにも使用される。
- Operations: Astra は、クラスタ操作を自動化するために2つのコンポーネントを使用する。これらの2つのコンポーネントは、Cass Operator と呼ばれる Kubernetes オペレーターと、Apache Cassandra (MAAC) の管理APIと呼ばれる Kubernetes サイドカーだ。
- Deployment: Astra は、Kubernetes オペレーターを使用して継続的デプロイを実現する。cass-config-builder を使用して構成を駆動し、クラウド環境の継続的テストに NoSQLBench を使用する。
-
Metrics Collector: Astra は、Apache Cassandra (MCAC) の Metrics Collector を使用して、データベースへの遅延とスループットに関する情報を含むリアルタイムのシステムヘルスメトリックを提供する。
Astra の一部のコンポーネントは、将来的に CNCF Foundation の下でオープンソース化され、他のいくつかのコンポーネントは Apache の下でオープンソース化される予定だ。Astra は、学習目的の無料利用枠も提供する。
InfoQは、DataStaxのクラウドソリューションのシニアディレクターであるMatt Kennedy氏と、DataStaxの製品マネージャであるChris Bradford氏に、Astra 製品の機能とそれが開発者コミュニティにどのように役立つかについて話した。
InfoQ: DataStax Astra プラットフォームにはどのようなツールが含まれていますか?
Matt Kennedy氏とChris Bradford氏: Astra の使用を開始してすぐに表示される最も明白なツールは、組み込みの CQLsh コンソールとDeveloper Studio です。これらは、同じ概念の2つの異なるフレーバー、インタラクティブ CQL エグゼキューターです。Developer Studio は Jupyter と同様のノートブックアプローチを採用しており、CQLsh コンソールは Cassandra のダウンロードで取得するのと同じシェルですが、ブラウザウィンドウから便利に実行できます。
InfoQ: Apache Cassandra 用の新しい DataStax Kubernetes オペレーターがどのように機能するかについて説明いただけますか?
Kennedy氏とBradford氏: Apache Cassandra 用の DataStax Kubernetes Operator の cass-operator は、Cassandra クラスタの作成と管理のまわりにある運用タスクを削減する上で重要な役割を果たします。従来、Cassandra で成功するには、ユーザは、依存関係はあるものの、オペレーティングシステムから適切なバイナリを呼び出し、操作のための厳密なランブックに従うまで、ソフトウェアスタック全体を理解する必要でした。
cass-operator を使用すると、ユーザは代わりに論理データプレーントポロジに集中できます。これらは、障害ドメインとサイズでデータセンタを定義します。そこから、オペレーターはポッド、サービス、StatefulSets などの基盤となる Kubernetes (k8s) リソースの作成を処理します。これらのコンポーネントが配置されると、オペレーターは管理APIを介して各ポッドと通信し、ポッドの状態とクエリを処理する機能に関する重要な情報を取得します。そこから、クラスタ内の包括的な操作を取り巻くインテリジェントな決定を行うことができます。これには、ワーカの障害の修正や、構成の変更を無停止で段階的に展開することが含まれる場合があります。
InfoQ: Kubernetes プラットフォームで Datastax Control Plane はどのような役割を果たしますか? これは、従来の Cassandra インストールと比較してどのようになりますか?
Kennedy氏とBradford氏: Cassandra は伝統的に、Kubernetes の外部で高性能でスケーラブルなデータベースの役割を果たしてきました。現在、このデータレイヤを k8s の世界に導入し、同時に実行するのは簡単です。以前の Cassandra のインストールでは、全体がクラスタの管理に専念するチームがありました。自動化の監視と開発によるものであれ、インフラストラクチャ間のデータ移動の調整によるものであれ、すべてをスムーズに実行し続けるために関与する多くのプレーヤーがいます。DataStax オペレーターは、これらの人的資源を解放し、すべての構成ファイルがすべてのノードで同じであることを確認するという面倒な作業ではなく、関連する高レベルのタスクに集中できるように努めています。
従来の Cassandra デプロイメントには、線形スケーラビリティ、フォールトトレランス、および Wicked パフォーマンスなど、依然としてすべての利点があります。これで、スタックの管理に関連する作業が少なくなりました。たとえば、ノードがダウンした場合、人間のオペレーターが関与する必要があることを通知するためにページングやアラートが発生することはありません。代わりに、オペレーターはプロセスを再開しようとします。プロセスが失敗した場合、または根本的な問題がある場合、ノードは別の k8s ワーカに移動されます。人間の運用チームを邪魔することはありません。
InfoQ: 開発者は GuardRails をどのように使用して、作成するコードの安全性を確保できますか?
Kennedy氏とBradford氏: GuardRails は、開発者がベストプラクティスに違反したときに、より迅速にフィードバックを得るのに役立ちます。GuardRails は、実行時の問題で動作が現れるまで待つのではなく、開発およびテスト中にエラーとして現れます。すべての Cassandra 開発者がオープンソースに貢献する機会が得られる前であっても、それらから利益を得ることができる本当に実用的な方法の1つは、開発プラットフォームとして Astra を使用することです。そうすれば、Astra に対して開発したコードは、最終的にそのコードを Cassandra の別のバリアントで実行した場合でも、アンチパターンを回避することがわかります。
Astra 製品の詳細については、ドキュメントと Getting Started Webページを確認してください。
Datastax は最近、Apache Cassandra クラスタの状態をプロアクティブに監視する Vector と呼ばれるAIOps製品も発表した。Vector は、Cassandra クラスタの動作を継続的に評価して、開発者とオペレーターに自動診断とアドバイスを提供し、Cassandra および DataStax Enterprise (DSE) クラスタで一貫して成功するのを支援する。