私たちは、書き込みの重いSAASアプリケーションを搭載した小さなスタートアップであり、私たちの使用がスケーリングの問題を提示しているところまで(ついに!私たちは小さなチームを持っているので、sysadminをHerokuとRDSにオフロードすることができて本当に感謝しています。NewSQLと従来の最適化/シャーディングとの比較
- スケーリング:Herokuのですが
(主に)罰金、私たちは、RDSとのカップルの問題を抱えています。これが最大の関心事です。現在、XL RDSインスタンスを実行しています。わかりやすい最適化でもう少し時間をとることができますが、アプリに大きな構造的変更を加えなければ、ある時点でボトルネックになるでしょう。
また、インスタンスサイズを変更するための停止時間はかかりません。
私たちは複数のAZインスタンスを実行するので、1つのAZの停止から生き残る必要があります。しかし、RDSはEBS上に構築されているため、EBSの歴史とデザインを考えるとかなり心配しています。
価格。私たちのRDS法案は、私たちがHerokuに支払うものの4倍です。私は、システム管理者を雇うことから私を救うためにAmazonを支払っても構いませんが、私はより安価なものを探していたいと思います。私の見解では
、我々は前進2つのオプションがあります。伝統的なアプローチ(などシャーディング、読み取り専用にするために、当社のデータベースの一部を移動するために毎晩ジョブを実行し、);またはNewSQLのソリューション(Xeround、VoltDB、NimbusDBなど)。
伝統的なプロ:以前は何度も行われてきました。それを行うためのかなり標準的な方法があります。
伝統的な短所:これは多くの作業を必要とし、アプリケーションに重大な複雑性を導入します。また、RDSの二次的な問題(可用性と価格)も解決しません。
NewSQLの恩人:これらのソリューションは、アプリケーションコードを変更せずにデータベースを水平方向に拡張します(悲観的なロックを使用しないなどのSQL機能にはいくつかの制約があります)。これにより、私たちは膨大な労力を節約できます。また、信頼性を高め(単一障害点なし)、コストを削減することができます(ピーク時の使用に備えて、オフ時間にXLインスタンスを実行する必要はありません)。
NewSQLの欠点:これらのソリューションは比較的若く、プロダクションアプリでのユーザーのレビューや評価を見つけることができませんでした。私はホストされたソリューション(Xeround)として利用可能なものしか見つけられていないので、私たちがそれを行っていなければ、sysadminにリソースを投入する必要があります。
私の最高の選択肢はどういう意見があるのでしょうか。
Xeroundは非常に魅力的です(NewSQLをホストしています)。しかし、私は実稼働環境でその情報を使用することができませんでした。私が見たいくつかのつぶやきは、少し遅いという不満を抱いている人々でした。私はとてもテストされていないようなものに移動するのはかなり緊張しています。
私の控えめな側面は、RDSに固執し、従来のアプローチを使用すると言います。しかし、それは開発者の時間の面で本当に高価になるでしょう。
私の一部は、別の方法があるかどうか疑問に思っています。多分、私が聞いたことのない、より戦闘的にテストされたホスト型のNewSQLソリューションです。あるいは、私たち自身をホストしなければならないNewSQLソリューションかもしれませんが、それは本当に堅実な歴史を持っています。
あなたの考えを前もっておねがいします。