グラフベースのデータベースサービスの開発:プロトタイプからクラウドの信頼性の高いスケーラブルなソリューションまで

databoomサービスは、Webおよびモバイルアプリケーション向けのクラウドベースのバックエンドです。 データアクセスを簡素化することで、プロトタイピングとアプリケーション開発の時間とコストを削減します。 以下のビデオは、databoomを使用してプロトタイプWebアプリケーションを簡単に作成できることを示しています。







Microsoft Azureを使用すると、信頼性の高いスケーラブルなアプリケーションを驚くほど簡単に作成できます。 数年前、AzureはWindowsを意味していましたが、今日ではMicrosoft AzureはLinux開発者にとって素晴らしい環境です。



databoomのサーバー部分はLinux上で実行され、Node.jsとC ++で記述されたネイティブモジュールを使用します。 Azureに仮想マシン、バランサー、その他のサービスを簡単にデプロイできるため、クラウドソリューションを簡単にデプロイできました。



プロトタイプから始めて、お客様の多くが引き続き協力して、信頼性、セキュリティ、およびスケーラビリティが重要となるより複雑なアプリケーションを作成しています。 そのため、Microsoft Azureを選択しました。







Azureの最も重要な利点は次のとおりです。





Azureにデータブームソリューションを展開するために、単純なスキームを選択しました(図1)。









1.-Databoomクラウドインフラストラクチャアーキテクチャ図



ここで、数字はシステムのさまざまなレベルを示しています。



  1. スケーラブルなロードバランサー
  2. HTTP要求の受け入れ、応答受信バッファーの処理、単純なログの維持、データの部分的なJSON処理、OData要求の解析などを行うNode.jsアプリケーションを備えたシングルコア仮想マシン
  3. 大きなメッセージフロー専用のキュー。
  4. データベース管理マシン。
  5. 信頼できるディスクストレージ。


ロードバランサーは、仮想マシン間で負荷を分散し、負荷が増加した場合、新しい仮想マシンを起動して自動スケーリングを提供します。



Node.jsアプリケーションを備えたシングルコア仮想マシンは、HTTP要求の処理に使用されます。 Node.jsはデフォルトでシングルコアを使用します。 それぞれに複数のNode.jsインスタンスを持つマルチコアコンピューターを使用できますが、この場合、各マシンでクラスターモジュールを接続する必要があります。 同時に、クラスターモジュールの機能はバランサーの機能によって複製されます。これは、リクエストを渡すプロセスのもう1つの追加レイヤーを意味します。 一方、4つのシングルコアマシンが1つのクアッドコアよりも悪くないことを考えてみましょう(テストでは、1秒あたりのリクエスト数がさらに優れていることが判明しました)。



多くのNode.jsアプリケーションとデータベースの相互作用のために、大きなメッセージフロー用に特別なキューが実装されました。 各コンピューターには複数の永続的なTCP接続があり、非同期でメッセージストリームを送受信します。 各コンピューターの各TCP接続は、毎秒数十万件の要求を送信できます。 これにより、1秒あたりの必要なクエリ数に合わせてソリューションを拡張できます。



データベースの管理には、マルチコアコンピューターと専用のロードバランサーが使用されます。 負荷が増加すると、追加のコンピューターが増加します。 いずれかのコンピューターに障害が発生した場合、データベースは、負荷が最小のコンピューターまたは新しく起動したコンピューターですぐに立ち上がります。



負荷分散、オンザフライでコンピューターを持ち上げる機能、ストレージ内のデータの複数の複製、障害を検出し、他のコンピューターへの負荷転送機能およびMS Azureのその他の多くの機能により、信頼性の高いスケーラブルなソリューションを作成できました。



著者について







アンドレイ ・ポルトノフ ビクター・チェルノフ、 ヴラディスラフ・ゴロフコフ



モスクワの一流大学の卒業生(MIPTおよびMEPhI)。



20世紀の90年代の初めから、3人全員が原子力研究所のコンピューターセンターの従業員であったため、データ処理の問題に取り組んできました。 I.V. Kurchatova(トロイツク市の支店)。 独自のNitrosBaseデータ処理技術を開発し、国内および国際的な展示会やフォーラムでいくつかの賞を受賞しました。 このテクノロジーに基づいて、InMemoryの「NitrosBase InMemory DB」クラスDBMSと「NitrosBase RDF Storage」グラフィカルDBMSが開発されました。 NitrosBase RDFストレージに基づいて、Webおよびモバイルアプリケーションの開発を大幅に促進するBaaSソリューションであるdataboomサービスを構築しました。



All Articles