歴史的な理由により、多くの企業が独自の RPC フレームワークを持っています。 特に2015年から2017年にかけては、Spring Cloudがリリースされたばかりで、Dubboは長年メンテナンスを停止していました。多くの企業は、独自の RPC フレームワークを設計する際に、Spring Cloud をベースに二次開発を行うことになります。また、Spring Cloud Netflix 関連のモジュールやコードも多数使用されます。 したがって、Spring Cloud の過去と現在、およびクラウド ネイティブの将来の開発動向を整理することで、これらの RPC フレームワークの進化にインスピレーションをもたらすことができます。 1. スプリングクラウドの歴史Spring Cloud は、2015 年 3 月のリリース以来、Java マイクロサービス エコシステムの開発者にとって、急速に好まれるテクノロジー スタックになりました。 Spring Cloud は Spring Boot をベースに、Java 開発の習慣を維持し、分散機能を追加し、開発者が分散システムで一般的なパターンを迅速に構築できるようにする一連の一般的なツールを提供します。現在では、最も広く使用されているマイクロサービス アーキテクチャの 1 つとなっています。 Spring Cloud は、マイクロサービス開発に必要な構成管理、サービス検出、サーキットブレーカー、インテリジェント ルーティング、クラスター状態管理などのコンポーネントを提供します。最も重要なのは、Spring Boot フレームワークと併用することで、マイクロサービス アーキテクチャの開発が非常に便利になることです。 Spring Cloud 自体は新しいフレームワークではありません。これは一連のフレームワークの有機的な組み合わせです。 Spring Boot の開発の利便性を活用して、分散システム インフラストラクチャの開発を巧みに簡素化します。 すべてのコンポーネントが Spring によって提供されるわけではなく、Netflix が重要な役割を果たしていることに注意してください。登録センター Eureka、サーキットブレーカー Hystrix、負荷分散コンポーネント Ribbon、ゲートウェイ Zuul などの重要なコンポーネントはすべて Netflix によって提供されており、主な貢献は Netflix OSS から行われています。 2. 今日の春雲Netflix のオープンソース投資の戦略的調整により、Eureka、Hystrix、Ribbon が相次いでメンテナンスの中止を発表し、当時の開発者のほとんどが Spring Cloud = Spring Cloud Netflix だと信じていたため、コミュニティにパニックを引き起こしました。 しかし実際には、Spring Cloud は一連の仕様です。この仕様セットは Netflix OSS に限定されません。 Spring Cloud Alibaba、Spring Cloud Zookeeper、Spring Cloud Consul、Spring Cloud Kubernetes などの実装もあります。最近、Tencent も Spring Cloud Tencent をオープンソース化しました (まだ Spring Cloud 公式コミュニティには参加していません)。 2.1 スプリングクラウド アリババSpring Cloud Alibaba (略して SCA) は、最も多くのコンポーネントを備えた中国で最もアクティブな Spring Cloud 実装であり、Spring Cloud Netflix を置き換えるのも最も簡単です。 次の図は、関連する機能とコンポーネント間のマッピング関係を明確に表しています。 (出典:https://www.oschina.net/question/4489239_2321891) SCA の Spring Cloud 実装では、現在非常に人気のあるいくつかのプロジェクトが採用されており、基本的に高速アクセスと安定した使用を実現できることがわかります。 ただし、ここで注意すべき点が 1 つあります。 SCA バージョン 2.2.7-RELEASE 以降、dubbo のクイック アクセスはサポートされなくなりました。代わりに、Spring Cloud のネイティブ呼び出しメソッド (OpenFeign および RestTemplate) が直接使用されます。 なぜ?問題を確認したところ、コミュニティのディスカッション https://github.com/alibaba/spring-cloud-alibaba/issues/2398 が見つかりました。 まとめると、いくつかの理由があります。 SCA の Spring Cloud Dubbo モジュールにはいくつか問題があり、それを保守する人員が不足しています。あまり利用されていないため、今後はメンテナンスされなくなります。 SCA の目的は、SpringCloud 関連モジュールを nacos、sentinal、seata、rocketMQ などの Alibaba Cloud 関連コンポーネントに素早く置き換えることです。 Dubbo 独自のエコシステムは非常に成熟しており、通常は Spring Cloud と混在させる必要はありません。通常は、2つのうち1つだけを選択する必要があります。特に Dubbo 3.x 以降では Mesh がサポートされており、REST 呼び出しを通じて自己完結型のシステムを形成できます。 2.2 春のクラウドテンセントSpring Cloud Tencent(以下、SCT)は、Tencent が最近オープンソース化した SC 実装フレームワークです。プロジェクトのアドレスは https://github.com/Tencent/spring-cloud-tencent です。 これは、Tencent Cloud Polaris をコアとして、登録センター、構成センター、サービス ルーティング、電流制限などを実装した、自社開発のコンポーネントの完全なセットです。 現時点では、テンセントグループ内での利用が比較的多く、社外の事例は少ないです。 2.3 まとめSpring Cloud Netflix はメンテナンスされなくなりましたが、Spring Cloud は依然として非常に人気があり、SCA は中国で最適な実装オプションになる可能性があります。 3. Spring Cloudとクラウドネイティブ3.1 機能の違いまず、Spring Cloudはクラウドネイティブに近いと考えています。 https://github.com/spring-cloud/spring-cloud-commons より: クラウド ネイティブは、継続的デリバリーと価値主導型開発の分野でベスト プラクティスを簡単に採用できるようにするアプリケーション開発スタイルです。関連する分野として、12 要素アプリケーションの構築があります。この分野では、宣言型プログラミングや管理、監視などを使用することで、開発手法が配信と運用の目標と整合されます。 Spring Cloud は、さまざまな特定の方法でこれらの開発スタイルを容易にします。出発点は、分散システム内のすべてのコンポーネントが簡単にアクセスする必要がある機能のセットです。 ただし、Spring Cloud と最も人気のあるクラウドネイティブのサービス メッシュ システムの間には依然として大きな違いがあります。 比較は次の4つの側面から行うことができます。 (表の出典: https://medium.com/codex/a-spring-cloud-compatible-service-mesh-6ce58c571012) 前述したように、Spring Cloud システムは実際には、サービス登録と検出、負荷分散、回路遮断と劣化などを含む一連のプログラミング モデル (仕様) を定義します。 しかし、これらの一部はアプリケーションに依存せず、インフラストラクチャ内に埋め込まれるのでしょうか? クラウドネイティブ環境では、そうです。 つまり、Spring Cloud で定義された仕様の一部は、クラウド ネイティブ環境では若干冗長になる可能性があります。サービス メッシュはアプリケーションに依存しません。 もちろん、Spring Cloud は、インターフェース レベルのガバナンス、よりきめ細かいリンク トラッキングなど、Service Mesh ではできないいくつかの機能を実行できます。 さらに、クロスランゲージも Service Mesh の大きな障害となります。 クラウドネイティブ環境では、コンテナ化された操作とマルチクラウド展開により、マイクロサービスは正確なテクノロジースタックを気にする必要がなくなります。 Python、C++、Nodejs はすべてクラウドネイティブ環境で簡単に実行できます。 ただし、Spring Cloud は Java エコシステムにのみ適しており、Java アプリケーション コードに侵入するため、複数の言語に対しては比較的弱いです。 (実は、これはコンテナ化後のJava言語の優位性にも影響を与えています) 3.2 成熟度の違い成熟度という点では、Service Meshのistio + envoyの組み合わせは多くの大規模・中規模企業で実践されていますが、Spring Cloudにはまだ遠く及びません。 2022年9月24日、クラウドネイティブコミュニティが主催する第1回サービスメッシュサミットが上海で開催されました。カンファレンスの内容から、Service Mesh は使いやすさ、汎用性、学習コストの面で依然として比較的高いことがわかります。 市場はサービス メッシュに注目するとより合理的になり、サービス メッシュ自体はより「実用的」になり、迅速かつスムーズな実装を出発点として、パフォーマンス、リソース使用量、クラスター間、マルチプロトコル サポート、機能拡張など、実装プロセスにおけるさまざまな問題を解決します。これらの問題を解決するには、Istio/Envoy システムを最適化し続けるか、他の実装に切り替えて、MOSN、Pipy、APISIX、Linkerd Proxy などのデータ プレーン プロキシを置き換えるか、eBPF、WASM、RDMA、DPDK などの他のテクノロジを導入して問題を解決します。 4. どこへ行く?4.1 k8s をコンテナのオーケストレーションとスケジューリングとしてのみ使用しますか?現時点では、Java ベースのマイクロサービス システムは比較的完成しているため、k8s を使用する場合でも、istio のサービス ガバナンス機能に接続せずに、コンテナ オーケストレーションにのみ k8s を使用できます。 Spring Cloud ファミリーが、Java システム下でのマイクロサービスの設計と実装をワンストップで満たせることは間違いありません。 もちろん、主な問題は、クラウド ネイティブでは多言語ガバナンス機能が欠けていることです。 また、knativeやseldonなどのプラットフォームと接続する場合、トラフィック管理のためにistioに直接接続されるため、トラフィック管理がより面倒になります。 4.2 Spring Cloud の今後の方向性は?Mesh システムでは、HTTP 呼び出しが当然サポートされているため、Spring Cloud 呼び出しアクセスは比較的便利であり、Spring Cloud Kubernetes プロジェクトでも登録センターが開設されています。 主な問題点は、統合コントロール プレーンのサービス ガバナンスへのアクセスにあります。 Spring Cloud の場合、目標はプロキシレス システムを実装することですが、公式コミュニティではこの点に関して特別な検討は行われていません。 ただし、Spring Cloud Alibaba のサービス ガバナンス コンポーネントである Sentinel にはいくつかの変更があります。 センチネルの歴史
さらに、Sentinel コミュニティはトラフィック管理関連の標準を OpenSergo 標準に抽出しており、Sentinel はトラフィック管理標準として実装されています。 Sentinel フロー制御の劣化とフォールト トレランス仕様の最新の開発については、opensergo-specification を参照してください。 ただし、Sentinel はフォールト トレランスに重点を置いており、ルーティング機能がありません。 したがって、OpenSergo がこの機能をどのように実現するかに引き続き注目するしかありません。 4.3 Dubbo 3.0 を学習してクラウドネイティブを完全に採用しますか?ダボ システムは、スプリング クラウド システムと同じくらい有名です。 dubbo 3.x がメッシュからプロキシレスまでクラウドネイティブを完全に採用していることはすでにわかります。 サービス登録および検出モデルに根本的な変更が加えられただけでなく (インターフェース レベルからアプリケーション レベルへ)、ガバナンス機能も xds に接続されました。 Dubbo 3.1.0が重要なマイルストーンとして正式にリリースされました おそらく、Dubbo の足跡をたどることで、クラウド ネイティブに向けてより着実に進むことができるでしょう。 |
<<: 16 年間の革新と反復を経て、クラウド コンピューティングは今後どこへ向かうのでしょうか?
>>: SUSE Edge 2.0 が KubeCon でデビュー、エッジ管理を最適化
かつて業界から否定的に見られていたグルーポンの株価は、過去6か月間で約76%着実に上昇しました。この...
【はじめに】 これまでも固定電話においては実名登録が実施されてきましたが、無線インターネット接続カー...
[[407823]]この記事はWeChatの公開アカウント「Sneak Forward」から転載した...
インターネットの誕生以来、さまざまなウェブサイトが雨後の筍のように出現してきましたが、ウェブサイトの...
エンタープライズ レベルの基本クラウド サービス プロバイダーである QingCloud (qing...
Pacificrack は、VPC ネットワーク、無料のスナップショット バックアップ、無料のフル ...
モバイルインターネット時代の静かな到来は私たちの生活様式を変えつつあり、同時に多くのデザイン勢力がモ...
海外の VPS を購入するときは、適切な海外の VPS ウェブサイトを見つける必要があります。奇妙で...
SEO ビッグブラザー: SEO 技術を学ぶ人が増えるにつれて、競争は激化し、必然的に SEO 技術...
10月12日、易邦電力網は、申通の電子商取引プラットフォームAibuyday(www.ibuyday...
アフィリエイト マーケティングとは何か、またアフィリエイト マーケティングと入札マーケティングの違い...
[[334629]] 1. ソフトリンクとハードリンクの違いファイルにはファイル名とデータが含まれて...
世界市場は最もダイナミックな時代を迎えています。人間の生活のあらゆる側面が急速にデジタル化へと向かっ...
Tencent Cloudは最近、高構成で低価格のクラウドサーバーを数台発売しました。主にゲーム「幻...
今朝、私の店では数人のお客様が雑談をしていました。会話の内容から判断すると、彼らはタオバオでビジネス...