Scalar Manager:ScalarDB と ScalarDL の管理と監視を簡素化

Plenty Su
Scalar Engineering (JA)
9 min readSep 9, 2024

この内容はGoogle翻訳により翻訳されております。

Kubernetes クラスターで ScalarDB と ScalarDL を管理および監視するエクスペリエンスを向上させるために設計された便利なグラフィカル ユーザー インターフェイス (GUI) ツールである Scalar Manager をご紹介します。

クラスターの健全性を維持したり、定期的に同じバックアップ操作を手動で実行したりするオペレーターであれば、Scalar Manager がニーズを満たすかもしれません。Scalar Manager は、重要な管理機能と監視機能を 1 つの直感的なインターフェイスに集約することで、複雑なタスクを簡素化し、時間と労力を節約することを目指しています。

なぜ Scalar Manager が必要なのか?

Kubernetes クラスター内での ScalarDB と ScalarDL の管理・監視において、お客様が直面する課題が時間のかかる煩雑な作業であることを認識しています。

これまで、ユーザーは ScalarDB と ScalarDL のデプロイメント確認に kubectl を実行したり、時系列メトリクスの確認に Prometheus スタックを使用したりするなど、コマンドラインツールに頼ってきました。これらのツールは強力ですが、習得に時間がかかり、多くのユーザーが好む直感的なインターフェースに欠けることがあります。その結果、日常的な管理タスクの実行や問題のトラブルシューティングが非効率になる可能性がありました。

Scalar Manager は、これらのツールの重要な機能を1つのユーザーフレンドリーなインターフェースに統合した中央管理ツールとして機能します。Scalar Manager の使用により、お客様は一時停止ジョブのデプロイ、クラスターの健全性監視、パフォーマンスメトリクスの分析などのタスクを、簡単かつ効率的に実行できるようになりました。

ScalarDB と ScalarDL は Scalar Manager がなくても管理・監視可能ですが、Scalar Manager の導入によってユーザー体験が大幅に向上すると考えています。

Scalar Manager の主な特徴

  • 一時停止ジョブの実行、スケジュール、管理: Scalar Manager は、ScalarDB や ScalarDL が使用するデータベースのトランザクション一貫性を維持するため、即時一時停止ジョブの実行や定期的な一時停止ジョブのスケジューリングを簡素化します。お客様はスケジュールされたジョブの確認や削除、一時停止状態の確認を容易に行えます。
  • 包括的なクラスター洞察: Scalar Manager を使用することで、お客様はリアルタイムのクラスター健全性更新、レプリケーション状況、ポッドログ、CPU・メモリ使用率メトリクス、1秒あたりのリクエスト数などのパフォーマンス統計にアクセスできます。さらに、Scalar Manager は Grafana をシームレスに統合し、時系列データのより深い洞察を得るための拡張された可視性を提供します。

ダッシュボード

Scalar Manager は便利なダッシュボードを提供し、お客様はデプロイメント、可用性、メトリクスを一目で簡単に確認できます。これにより、kubectl や Grafana Explore を介した Prometheus との対話が不要となり、監視プロセスが効率化されます。

一時停止の作成

Scalar Manager 導入以前は、お客様は ScalarDB や ScalarDL の一時停止と既存リリースの管理のために、Helm を使用して scalar-admin-for-kubernetes をインストールする必要がありました。

# to get all scheduled pausing jobs
> helm list -o yaml
- app_version: 1.2.0
chart: scalar-admin-for-kubernetes-1.0.0
name: pause1713427638385
namespace: default
revision: "1"
status: deployed
updated: 2024-04-18 08:07:19.846325909 +0000 UTC

# find the Kubernetes CronJobs for the detail (pause target, schedule for when, ... etc)
> kubectl get cronjobs.batch pause1713427638385-scalar-admin-for-kubernetes -o yaml
...

しかし、Scalar Manager の導入により、これらのタスクは使いやすい GUI を通じて簡単に実行できるようになり、Helm の高度な知識が不要になりました。

一時停止の確認

一時停止ジョブが正常に実行されると、トランザクション一貫性が保たれた状態の正確な期間がジョブ自体によって出力されます。これらの出力は Loki で収集・管理されます。お客様は Grafana を通じて Loki に手動でクエリを実行し、一時停止状態を確認する必要がありました。

しかし、Scalar Manager により一時停止状態の確認が大幅に簡素化されました。Scalar Manager がプロセスを効率化したため、お客様はクエリを入力する必要がなくなり、容易に監視を行えるようになりました。

今後の取り組み

最初のバージョンはほんの始まりに過ぎません。Scalar Manager のリリース後、すでに多くの計画がスケジュールに入っています。以下に、私たちのアイデアをいくつかご紹介します。

使用者認証を実装する

Scalar Manager には現在、認証メカニズムがありません。そのため、ユーザーは次のいずれかを行う必要があります。

  1. プライベート ネットワーク環境内でのみ操作する、または
  2. 匿名ユーザーによる不正な操作や情報漏洩を防ぐためにネットワーク アクセスを慎重に構成する。

これらのセキュリティ上の懸念に対処するため、近い将来に認証機能とユーザー管理機能を実装する予定です。

Grafana の権限要件の削減

当初、ログインせずにメトリックやログに簡単にアクセスできるように、Grafana を匿名および編集者権限で構成しました。ただし、これにより、認証の欠如や、定義済みのダッシュボードの削除など、Grafana の状態を変更できる機能など、セキュリティ上のリスクが生じます。

これに対処するために、Scalar Manager にログ レビュー担当者を実装し、組み込みの Grafana Explore ページを置き換える予定です。これにより、Grafana の権限を編集者レベルから閲覧者レベルに削減し、メトリックやログへのアクセス性を維持しながらセキュリティを強化できます。

次に、認証を実装した後、Scalar Manager と Grafana の間でユーザー管理を同期します。ユーザーが Scalar Manager にログインすると、Scalar Manager は Grafana にログインします。この実装により、匿名アクセス用に Grafana を構成する必要がなくなり、セキュリティが強化されます。

ScalarDB データローダーの統合

Scalar には、ScalarDB データローダーと呼ばれる別のツールがあり、ScalarDB からのデータのエクスポートとインポートに役立ちます。アグリゲータとして、Scalar Manager は ScalarDB データローダーを統合して機能セットを充実させ、Scalar ユーザーにタスクを管理するための単一の包括的な UI を提供する予定です。

Grafana の置き換え

理想的には、Scalar Manager 内に Grafana UI コンポーネントを実装できれば、Grafana ページを埋め込む必要がなくなります。これにより、インフラストラクチャの観点から、構成とメンテナンスのコストが大幅に削減されます。Scalar Manager にログ レビューアを実装する予定であるため、Scalar Manager に直接メトリック レビューアを提供して、その展開を効率化することも検討しています。

Kubernetes での Scalar Manager 権限の削減

現在の実装では、Scalar Manager は高レベルの Kubernetes 権限を使用して一時停止機能用の CronJobs を作成します。Scalar Manager をステートフル ツールにする予定なので、スケジュールされた一時停止ジョブなどの状態を維持するために Kubernetes リソースを要求する必要がなくなります。Scalar Manager がステートフルになったら、セキュリティを強化するために権限要件を削減します。

結論

Scalar Manager は、効率的な機能セットを通じて運用管理と監視を合理化する包括的なソリューションを提供します。私たちは、ユーザー体験を向上させるため、Scalar Manager の継続的な改善に取り組んでいます。今後の改善点の一つとして、ScalarDB のデータロード機能を Scalar Manager に統合する予定です。私たちの目標は、お客様が長期的な保守コストを大幅に削減するための強力なツールとして Scalar Manager を活用できるようにすることです。

--

--