我们是一个小型的启动带有写重SAAS的应用程序,并且(最终!)获取到我们的使用正呈现缩放问题的地步。 我们有一个小团队,所以我们真的很感激能够卸载的系统管理员的Heroku和RDS。
虽然Heroku的是(大部分)的罚款,我们有RDS几个问题:
- 缩放。 这是最大的担忧。 我们目前运行XL RDS实例。 我们就可以一会儿用简单的优化再获得通过,但除非我们对我们的应用中的一些重大的结构性变化,我们会在某个时候遭遇瓶颈。
此外,为改变实例大小的停机时间很烂。
可用性。 我们运行一个多AZ实例,所以我们应该生存的单一AZ停运。 但RDS是建立在EBS,这让我非常担心给EBS的历史和设计。
价钱。 我们的RDS法案4倍,是我们付出的Heroku。 我不介意多付亚马逊救我雇用一个系统管理员,但我很想找到更便宜的东西。
在我看来,我们有两个选择前进:传统的做法(分片运行夜间作业移动我们的数据库的部分,等只读); 或NewSQL溶液(Xeround,VoltDB,NimbusDB等)。
传统的优点:它已经做过很多次,也有非常标准的方式来做到这一点。
传统的缺点:这将需要大量的工作,并介绍显著复杂到应用程序。 它也不会解决RDS次生问题研究(可用性和价格)。
NewSQL优点:据说,这些解决方案将横向扩展我们的数据库,而无需改变应用程序代码(受到一些限制的SQL功能,例如不使用悲观锁)。 这为我们节省了大量的工作。 这也将提高可靠性(无单一故障点)和降低成本(不必在非高峰时间运行XL实例只是为了提供高峰使用)。
NewSQL缺点:这些解决方案都比较年轻,我一直没能找到任何好的评论或写起坐的人与他们在生产中的应用经验。 我只找到了一个可以作为一个托管解决方案(Xeround),因此,除非我们有一个去了,我们不得不在系统管理员投入资源。
我想知道什么意见,什么我的最好的办法是。
Xeround是非常诱人的(托管NewSQL),但我一直没能找到任何生产好的信息使用它。 我见过为数不多的微博已经人抱怨它是一个有点慢。 我很紧张移动的东西,似乎很未经测试。
我保守的一面说,坚持用RDS和使用传统的方法。 但它会在开发者时间上真的很贵。
然后是我的一部分,想知道是否有另一种方式,也许更实战检验托管NewSQL解决方案,我还没有听说过。 或者,也许一个NewSQL解决方案,我们不得不举办自己,而且有一个非常坚实的历史。
在此先感谢您的想法。