プロジェクトの背景紹介Tarsマイクロサービスエコシステム Tars はマイクロサービス テクノロジーのエコシステム構築に注力しており、基盤となるインフラストラクチャ、サービス フレームワーク、上位層アプリケーション、DevOps などの分野で徹底的な研究開発を行っています。
ターズ財団2020年3月10日、Linux Foundationは、TARSオープンソースプロジェクト内にTARSサブファウンデーションを設立したことを正式に発表しました。これはマイクロサービスに特化したオープンソースファウンデーションであり、企業がマイクロサービスアーキテクチャを導入し、マイクロサービス利用における潜在的な課題に対処できるよう支援することに専念しています。中国のオープンソースプロジェクトから生まれた初の国際的なオープンソースファウンデーションであり、Linux Foundationの中でマイクロサービス技術エコシステムに特化した唯一のサブファウンデーションです。 Tars Foundation には現在、ツールセット (Tars Lab)、サービス ガバナンス、マイクロサービス開発フレームワーク、ストレージ (DCache)、インフラストラクチャの 5 つの部分に分かれた 9 つのプロジェクトが含まれています。 1. ターズラボターズラボ Tars Labプロジェクトは、TarsJMeterストレステスター、TarsBenchmarkベンチマークスイート、そして複数の開発ツールキットを提供しています。TarsJavaStartは、サーバーアプリケーションとクライアントアプリケーションの両方にTarsJavaスキャフォールディングを生成し、Tarsサービスの迅速な開発を可能にします。TarsToolsは、複数のIDE(IntelliJ IDEA、Android Studio、PhpStorm、WebStorm、GoLand、CLionなど)をサポートするJetBrainsプラグインで、ユーザーはJCE/Tarsファイルの編集が可能です。 2. サービスガバナンスサービスガバナンスプロジェクト サービス ガバナンスは 2 つのプロジェクトで構成されています。TSeer はサービスの登録と検出に重点を置いています。TarsGateway は、Tars フレームワークに基づいて開発されたマイクロサービス ゲートウェイで、ゲートウェイの基本機能に加えて、HTTP を Tars-RPC プロトコルに自動的に変換できます。 3. マイクロサービス開発フレームワーク開発フレームワーク このセクションにはTarsプロジェクトのみが含まれます。TarsプロジェクトのコアモジュールはC++で開発されており、多言語開発フレームワークを提供し、デフォルトでRPC呼び出しを使用しています。TarsプロジェクトはTars Foundationの中核プロジェクトです。他のすべてのプロジェクトは、このプロジェクトを中心に開発されています。 4. マイクロサービスストレージマイクロサービスストレージ このセクションには、Tarsフレームワークに基づいて開発された分散共有メモリストレージシステムであるDCacheというプロジェクトが1つだけ含まれています。DCacheは、一般的に使用されるキーバリューデータ構造、セカンダリインデックス、オンラインスケーリング、バックエンドデータベースへの自動永続化をサポートしています。DCacheは運用にTarsフレームワークに依存していますが、Tarsの恩恵も受けているため、ストレージサービスの運用・保守コストはほぼゼロです。 5. マイクロサービスインフラストラクチャマイクロサービスインフラストラクチャ これは、Tars を Kubernetes と統合し、Tars を Kubernetes エコシステムに組み込むことを目指すプロジェクトです。 この点では、Tars と K8S の緊密な統合に特化した K8SFramework というさらに優れたプロジェクトがあり、将来的には基盤に組み込まれると考えられています。 タールの過去と現在Tars の前身は Tencent の社内 TAF フレームワークであり、10 年間にわたって検証され、16,000 台以上のサーバーと 100 を超えるビジネス ラインで安定して動作しています。 競合他社のレビュー 統計によると、 Tars は120社以上の261,200台のサーバーで安定して稼働しています。 ユーザーエクスペリエンス分散環境では、すべてのマイクロサービス(DCacheサービスを含む)をフレームワークの組み込みコンソールであるTarsWebを介して管理できます。これにより、すべてのサービスのステータスを監視し、コンソール上で起動、停止、構成の変更、メンテナンスコマンドの実行などの操作が可能になります。 ホワイトスクリーンの操作とメンテナンス 分散展開では、Web コンソールを通じてワンクリックのアップグレードとロールバックを実現できます。 大規模ノードのワンクリックアップグレード/ロールバック Tars には、階層的な構成と構成の統一された変更を可能にする構成センターが組み込まれており、「1 点の変更、グローバルな効果」を実現します。 小さな設定変更 サービスをデプロイする際には、公開するノードをインターフェースに入力し、ワンクリックでデプロイおよび拡張できます。 ワンクリックで拡張 このフレームワークは、トラフィック、平均待ち時間、タイムアウト率、エラー率などのサービス呼び出しの品質などのステータスを監視する機能を提供します。 ステータス監視 コンソールを 1 回クリックするだけでフレームワークのステータスを確認できます。 フレームステータス Tarsは、Tars Foundationのサブプロジェクトであるパフォーマンステストツールも提供しています。これにより、パフォーマンステストはもはやプロのテスターに頼る必要がなくなりました。 統合パフォーマンステストツール Spring Cloudとの比較タールの利点1. ネイティブRPC呼び出しTars は通信に独自に開発された RPC プロトコルを使用し、サービス間の長期接続を確立します。これにより、頻繁に通信が行われるシナリオでパフォーマンス上の大きな利点が得られます。 2. 多言語サポートTarsはC++とJavaに加え、Node.js、PHP、Goなどの言語もサポートし、対応するSDKを提供しています。チームが多様なテクノロジースタックを持つ場合でも、シームレスな統合により多言語共同開発が可能になります。開発者は開発に好みの言語を選択できるため、チーム全体の効率が向上します。 この点において、Spring Cloudは、異種言語をサポートするサービスメッシュを構築するためにSideCarを活用する必要があります。業界にはいくつかの一般的なサービスメッシュソリューションが存在しますが、統一された標準がないため、移植性が低くなっています。よくある例としてIstioが挙げられますが、プロキシモデルと非永続的な接続のため、レイテンシが高くなっています。さらに、Istioの導入と保守は非常に複雑で、多大な学習コストと運用コストがかかります。 3. 組み込みのサービスガバナンス機能Tarsフレームワークには、サーキットブレーキング、レート制限、負荷分散、認証、暗号化など、豊富なサービスガバナンス機能が組み込まれています。また、サービス監視、データ収集、カナリアデプロイメント、データセンター間デプロイメントをネイティブにサポートしており、高度な統合性を実現しています。 これらの機能をサポートするには、Spring Cloud で他のコンポーネントを統合するか、設計と開発を通じて実装する必要があります。どちらの場合も、追加の学習コストと開発コストがかかります。 4. 運用・保守監視Tars は、ユーザーに統合された運用および保守管理コンソールを提供し、ワンクリックで展開、拡張、アップグレード、ロールバックなどの運用および保守操作を Web 上で実行できるようにします。 Spring Cloudには付属ツールがありません。Web管理を実現するにはKubernetesとコンテナを使用する必要があり、これにも追加コストがかかります。 5. 国内生産Tars は中国企業が主導するオープンソース プロジェクトなので、詳細については説明しません。 6. 「セット」のメリットTarsフレームワークはマイクロサービス向けの統合ソリューションを提供しており、通常は他のコンポーネントを統合する必要がないため、互換性の問題を回避できます。これはMacBookと互換性のあるPCの違いに似ています。互換性のあるPCでは、望ましい結果を得るために、より多くの試行錯誤が必要になる場合があります。 デメリット1. プロジェクトの人気Tarsはオープンソース化されてからまだ5年ちょっとしか経っていないため、比較的新しいプロジェクトです。Spring Cloudほど人気はなく、その応用範囲もそれほど広くありません。 2. TarsのクラウドネイティブパスTarsとKubernetesの緊密な統合はつい最近(2020年7月、K8SFramework)オープンソース化されたばかりで、実世界のアプリケーションでの検証がまだ必要です。このプロジェクトは現在頻繁にアップデートされているため、本番環境での使用は推奨されません。しかし、これはコミュニティがTarsとKubernetesの統合に非常に熱心であることを示すものでもあり、このプロジェクトが将来大きく発展していくと確信しています。 結論はTarsは、マイクロサービスの開発、運用、監視のための統合ソリューションを提供し、エンタープライズグレードのマイクロサービスを低コストで構築するのに役立ちます。あらゆる規模のチームやシステムに適しています。 テクノロジーの選択において、チームにC++開発者が含まれている場合、または多言語開発能力があり、チームの規模とリソースが限られている場合は、Tarsの選択をお勧めします。運用、監視、テストなどの分野で大幅なコスト削減につながります。 将来、K8SFramework プロジェクトが成熟するにつれて、Tars エコシステムはより広く知られるようになり、より多くのチームに使用されるようになるでしょう。 |