Yandexは、C++でアプリを作成するためのフレームワークであるUserverのソースコードをリリースしました。

Yandex がソースコードを公開しました フレームの ユーザービューこれにより、非同期モードで動作する高負荷の C++ アプリケーションを作成できます。 フレーム Yandex レベルのアップロードでテスト済み Yandex Go、Lavka、Delivery、Market、fintech プロジェクトなどのサービスで使用されています。

ユーザービュー マイクロサービス アーキテクチャを使用したアプリケーションの開発に最適です。. そもそもマークはまたはYandex Taxi用に開発された、彼の助けを借りて、チームはモノリシック アプリケーションから、個別の独立したコンポーネント (マイクロサービス) を開発し、それらをさまざまなアプリケーションで使用できるアーキテクチャに変更しました。

本日、高負荷アプリケーションを構築するためのオープン ソース ユーザー フレームワークのリリースを発表します。 私たちにとって、これは私たちが蓄積してきたマイクロサービス開発の経験を共有するための重要な方法です。 ソース コード、ドキュメント、サンプル、独自のサービスを作成するためのテンプレート (構成された CI、ビルドおよびテスト環境)、および動的構成サービスを含む GitHub リポジトリへのリンクを次に示します。 これらはすべて Apache 2.0 ライセンスの下でリリースされています。

マイクロサービスは自律的で、 そのため、このようなアーキテクチャに基づくアプリケーションは、簡単に更新して新しい機能を追加できます。 したがって、タクシー注文のドライバーを見つけるためのマイクロサービスは、同様のタスクに使用できます。たとえば、Yandex Delivery 注文を満たす宅配業者を見つけることができます。 ドライバーや宅配便の到着時間の計算や、他の多くのタスクでも同じことができます。

フレームワークはもともと信頼性と利便性を重視して作られたもので、 内部には、開発、診断、監視、デバッグ、および実験に必要なすべてが含まれています。 たとえば、ユーザーバーは、ビルド段階でエラーを修正する方法を提案したり、さまざまなデータベースを操作したり、パラメーターをその場で変更したりする方法を知っています。

組成に関しては、 DBMS との非同期作業用のドライバーが含まれています (MongoDB、PostgreSQL、Redis、ClickHouse、MySQL)、さまざまなプロトコル (HTTP、HTTPS、GRPC、TCP、UDP、TLS) で非同期に動作するクライアントとサーバー、同期とシステム機能へのアクセスを管理するための低レベルのプリミティブ、およびキャッシング、タスク、分散ロック、トレース、メトリクス、統計、および JSON/YAML/BSON 形式のデータを操作するための高レベルのコンポーネントに加えて、停止することなくその場でサービス構成を変更することをサポートします。

デメリットに関しては モノリシック アーキテクチャについては、次のことが言及されています。

  • モノリス内のすべてのコードの統合. 大規模なコード ベースでは、ビルドとテストに数時間、展開に丸 XNUMX 日かかる場合があります。
  • コードのさまざまな部分の密接な相互作用. モノリスのさまざまな部分へのインターフェイスがごちゃごちゃにならないように、コード レビューに多大な労力を費やす必要があります。
  • 脆弱性. XNUMX つのモジュールを変更すると、別のモジュールが破損する可能性があります。
  • 責任の領域がぼやけている。 開発プロセス中に、コードの多くの部分が一般化され、さまざまなチームによって使用され始めますが、これは良いことです。 しかし、結果として、結果として得られるモジュールの責任者が誰であるかは明確ではありません。最初の作成者です。 最も多くの編集を行った人; またはコードでモジュールを最も積極的に使用する人。

以前、Yandex は他の主要な技術をオープン プロジェクトの形で譲渡しました。たとえば、XNUMX 秒あたり数百万のリクエストを処理できる YDB 分散データベース管理システムや、Yandex が検索などで使用する CatBoost 機械学習ライブラリなどです。サービス。

最後に それについてもっと知りたい人のためにUserver は現在、Ubuntu、Debian、Fedora、Arch、Gentoo、macOS システム、x86、x86_64、AArch64、Arm アーキテクチャ、GCC 8+ および Clang 9+ コンパイラ、C++17 標準、C+ +20、C でサポートされていることに注意してください。 +23。

ユーザーサーバーのコードは C++ で書かれており、 estáabierto Apache 2.0 ライセンスに基づいており、 次のリンク。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。