>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン セキュリティ
HTML

Redisインスタンスの海から脱出:CacheCloudでキャッシュ管理を自動化する方法

巨大なプロジェクトでRedisが単なる数セッションのキャッシュではなく、重要なインフラストラクチャノードとして使用されている状況を想像してみてください。数百ものインスタンスが異なるサーバーに散らばり、クラスター構成のものもあれば、Sentinel構成のもの、さらにはスタンドアロンのノードもあります。ある時点で、監視は悪夢に変わり、バージョン更新は悪夢となり、スケーリングには手動のデータ移行と可用性之神への祈りを必要とします。

身に覚えがありますか?これはSohu TVのチームがまさに直面した問題です。彼らは狂わずに済むようにCacheCloudを構築しました—Redis管理を予測可能で自動化されたプロセスに変えるプラットフォームです。

そもそもCacheCloudとは何か

CacheCloudは、Redisのライフサイクルを管理するためのオープンソースプラットフォームです。本質的には、プライベートな「クラウド」コントロールパネルであり、数クリックで新しいクラスターをデプロイしたり、コマンド統計を確認したり、メモリをオンデマンドで拡張したりできます。

このプロジェクトは新しいものではなく、中国の動画ホスティングサービスの過酷な環境で実際に使われてきた実績があります。彼らの社内使用数は印象的です:40,000以上のRedisインスタンス、管理下にある18テラバイトのRAM、そして毎日800億コマンドの処理です。この規模を処理できるツールであれば、あなたのプロジェクトにもきっと対応できます。

開発者と管理者が必要な理由

通常、Redisは設定ファイル、CLI、自動化スクリプトで設定されます。CacheCloudは異なるアプローチを取ります—集中化管理です。標準で以下のことができます:

  1. 自動化されたデプロイメント。ホストの手動初期化やSentinelの設定は不要です。プラットフォームがStandalone、Sentinel、Clusterモードのインストールと設定を行います。
  2. スマートな監視。これは単なるCPU負荷グラフではありません。システムはアプリケーションごとの統計を収集し、遅いコマンドのトップを表示し、メモリ使用量を分析します。
  3. エラスティシティ(拡張性)。キャッシュがいっぱいになったら、インターフェースから直接クラスターを拡張できます。システムは自動的にスロットとデータを再分散します。
  4. 監査とセキュリティ。誰がいつ変更を加えたか、どのアプリケーションが特定のノードにアクセスできるかを確認できます。

内部構造

プロジェクトのアーキテクチャは複数の層で構成されています。中央にはWeb管理インターフェース(Java/Springで記述)があり、ターゲットマシン上のエージェントと通信します。

アーキテクチャ図

興味深いことに、作者たちはクライアント側に多くの注意を払っています。独自のSDK(JedisとLettuceベース)を提供しており、プラットフォームと統合されます。これにより、サーバー側だけでなく、アプリケーション側からも統計を確認できます:レイテンシー、接続エラーなど。

誰が試すべきか

Redisインスタンスがたった2つしかないプロジェクトにCacheCloudを持ち込むのはおすすめしません—プラットフォーム自体の維持オーバーヘッドが利益を吹き飛ばしてしまいます。しかし、以下のような状況があれば:

  • Redisインスタンスが10〜20個以上。
  • 混合アーキテクチャ(クラスターとスタンドアロンノードの両方)。
  • サーバーに直接ログインせずにメトリクスに便利にアクセスする必要があるチーム。
  • ダウンタイムなしの高速なスケーリングの必要性。

このプロジェクトは多くの頭痛の種を節約してくれるでしょう。

注意点

このプロジェクトは中国出身であり、それが痕跡を残しています。Wikiのメインドキュメントは多くの場合中国語ですが、リポジトリには英語のREADMEもあります。インターフェースは場所によってやや独特に見えるかもしれませんが、機能は十分です。

もう一つのポイント:CacheCloudはエコシステムとかなり密接に結合しています。最大のパフォーマンスを得るには(クライアント側の詳細な統計など)、標準のRedisライブラリのラッパーを使用する必要があります。

始め方

システムに詳しくなる最も簡単な方法は демоインスタンスを確認するか(リンクはREADMEにあります)、プロジェクトをローカルにデプロイすることです。Java 8以上、メタデータ保存用のMySQL、ビルド用のMavenが必要です。

クイックスタートの手順は достаточно詳細です:

  1. scriptフォルダ内のスクリプトでデータベースを初期化します。
  2. データベース接続設定を行います。
  3. mvn clean packageでプロジェクトをビルドします。

CacheCloudは、手動のキャッシュ管理から卒業した人向けの強力なオールインワンソリューションです。「単なるRedis」と「クラウドRedis as a Service」(DBaaS)の間のギャップを埋め、信頼性の高いストレージを構築できます。ルーティンなキャッシュメンテナンスタスクに厌倦しているなら、このプロジェクトを詳しく調べるために一晩を費やす価値は十分あります。

このプロジェクトはGitHubで9,000以上のスターを獲得しており、 specialized管理ツールとしては非常に真剣な数字です。コミュニティがこのツールを積極的に使っていることは明らかで、プロジェクトがかなり古いにもかかわらず、作者たちはメンテナンスを続けています。

関連プロジェクト