Parseサーバーのスケーリング
FacebookがParseのオープンソース版のリリースを決定してから、2020年で4年以上が経過した。この間に多くの新機能がリリースされ、サポーターのコミュニティもこれまで以上に大きくなっています。その後、Back4AppのParse Server Platformに信頼を寄せてくださるParse.comユーザーの数が増えたことを誇りに思います。この旅が始まって以来、私たちが学んだことをコミュニティの皆様と共有したいと思います。
Parseのスケーリングは何人かのParseユーザーにとって問題であり、私たちはParseのスケーリング方法の秘密を解き明かします。
Parse ServerはParse.comのオープンソース版として立ち上げられましたが、それ以外にも多くの点で貴重なリソースであることが証明されています。Parse Serverは、アプリの構築とスケーリングのための優れたNodeJSフレームワークを提供します。Back4Appでは、10,000 Req/s(同時ユーザー数約80,000人)までスケールアップしたアプリもあります。バックエンドを完全にコントロールし、ブラックボックスソリューションのようなロックや制限を回避しながら、このようなことが可能です。
この経験は、Parse Serverが、Parse.comが価格ページ(下記参照)で公表している600req/sをはるかに超え、他のいくつかのブラックボックスバックエンドが課す制限をはるかに超える規模に拡張できることを証明しています。Parse Serverがアプリのスケーリングオプションとして最適であることを保証する貴重な機能が数多くあります。これらの要素の中で最も重要なものをいくつか強調したいと思います。
Contents
1-大規模なリエンジニアリングなしで拡張可能
新しいモジュールを柔軟に追加できます:アプリが成長するにつれ、ユーザーを維持するため、あるいは獲得率を向上させるために新しい機能が必要になりますが、完全なバックエンドプラットフォームが利用できない場合もあります。Parse Serverはオープンソースのソリューションなので、多くのnpm(NodeJS)モジュールをインストールし、より高度な機能にアクセスする新しいAPIを統合することができます。
垂直方向と水平方向のスケーリング: Parse Serverは、インスタンス間で状態を共有するなど、問題のない水平スケーリングをサポートするように設計されています。例えば、インスタンス間で状態を共有するような場合にも、同じ Parse Server インスタンスを新たに作成するだけで、アプリのリクエスト処理を共有できます。これにより、マシン構成を増やすだけの垂直スケーリングと、パフォーマンスとコストを最適化する水平スケーリングの最適なバランスを見つけることができます。例えば、1台のマシンにParse Serverを1インスタンスからスタートし、コストとパフォーマンスを常に監視しながらクラウドプラットフォーム上に垂直スケーリングすることができます。アプリが成長したら、すぐにこれらのサーバーのコピーを作成し、ロードバランサーを追加してリクエストをよりよく分散させることができます。
フェイルプルーフなインフラでアプリを実行
アプリのスケーリングを開始する際、冗長性は重要です。大量のユーザーでサーバーがダウンするのは最も避けたいことです。アプリのスケーリングを開始したら、すぐに以下の構造を使用するようにしてください。
- ロードバランサー
- アプリケーションサーバーのオートスケーリング(最低2台)
- データベースサーバーのレプリカセット(2台+アービター1台)
クエリパフォーマンスの最適化Parse Serverカスタムアプリリクエストを使用して、アプリの種類ごとに最高のパフォーマンスを得ることができます。
2-Parseサーバーのスタックは強固
一見難しそうに見えるかもしれませんが、実はスケーラビリティは非常に優れています。Javascriptがシングルスレッドであっても、Nodeはクラスタ・モジュールを使ってマルチコアを利用することができる。複数のマシンでスケールアウトするために、開発者はnginxを使用して、複数のParse Serverインスタンス間で受信したリクエストをロードバランスすることができます。さらに、Node のサイト認証はconnect-authライブラリを使用して効率的に実行できます。このプロセスは、よくある開発ミスを回避し、スピードも大きな利点です。
3-どこにでも Parse Server をデプロイ
Parse Server はお好きなサーバーにインストールできます。これにより、遅延などの問題を回避し、ニーズに合った最適なインフラを使用することができます。スキルがあれば、アプリに最適化したインフラを独自に構築し、Parse Serverをホストすることも可能です。また、クラウドソリューションの方がパフォーマンスが高いとお考えであれば、クラウドソリューションを選択することもできます。
市場で利用可能な主要クラウドであれば、Parseをデプロイすることが可能です。例えば、AWS、Google Cloud、Digital Ocean、Azureなどです。もしマネージドで専門的なサービスをお望みであれば、Back4appをご利用ください。
我々は、オープンソースモデルがParse Serverの成功の鍵であると結論付けている。このモデルにより、アプリをスケールさせれば、フレームワークで好きなことができるようになります。これは、Parse Serverがアプリのバックエンドを構築するための最も人気のあるオープンソースフレームワークになった理由を説明するのに大いに役立ちます。現在、gitリポジトリには26,000人以上の スターゲイザーがおり、コミュニティには100,000人以上の開発者がいます。
この記事が気に入りましたか?Back4Appに無料でサインアップ。
Parse Server を拡張するにはどうすればよいでしょうか?
大規模なParseアプリで最高のパフォーマンスを実現するには、次の点に留意してください。
クエリを最適化してパフォーマンスを向上させる。
フェイルセーフかつ冗長性のある構造でアプリを実行する。
NPMモジュールを広範囲に追加する。
Parse アプリはどのくらいの大きさまで可能ですか?
Back4appでは、既に1秒あたり10,000リクエストを超えるアプリのスケールを実現しています。適切なインフラストラクチャがあれば、アプリはかなりの規模に成長する可能性があります。
Parse はどこにデプロイできますか?
Parse は、Back4app などの専用の Parse ホスティング サービス、または AWS、Azure、Alibaba、Google Cloud、Digital Ocean などの任意のクラウドにデプロイできます。