【51CTO精选译文】本文是High Scalability作者Todd Hoff的一篇分享文章,对37signals最近分享的两篇文章进行了摘要说明。37signals应该很多人都知道了,它是Ruby on Rails的发源地,Campfire等产品背后的公司。全文如下:
这年头,IT业界出现了形形色色的架构概念,其中的两大争论是云计算与裸机之争,以及内存、磁盘与SSD之争。37signals发表了两篇颇有见地的文章,逆炒作周期(hype cycle)而行之,中心思想分别如下:
- 那些在每MB内存卖1000美元的年代长大的技术人员很难适应将内存几乎视作免费的时代;
- 技术的进步正在促使人们将大量的优化扔进被标注为“过早XX”的垃圾桶。
37signals在Basecamp的缓存层上仅仅花了1.2万美元就买到了864GB内存,这引起了一阵轰动。花的钱不多,但内存容量很大,这是不是使基于内存的架构更吸引人了?
随后,37signals紧接着发表了另一篇发人深省的文章:《三年后,摩尔先生仍在让我们寄希望于数据库分片》。简单来讲就是说,向上扩展对他们是适用的。内存变得越来越便宜,FusionIO变得越来越快,所以他们得以避免数据库分片这样的复杂架构问题。这是不是使基于SSD的架构更吸引人了?
StackExchange的情况也一样,虽然使用不同的堆栈,但是核心概念和结果是大同小异的。你要明白,在面向事务的功能中,如果你的要求不像Google那么高,那么使用裸机、内存和SSD实现向上扩展不失为一条出路。你觉得云计算和横向扩展很牛,但这可能不过是一种思维反射而已。
几点心得:
•SSD正在加快发展,也就是说Basecamp未来可能一直都不会需要进行分片。
•内存在云端和VPS上仍然很贵。所以若想改用内存架构,就要走裸机道路。一位好心的读者留言分享了几个数据:弹性缓存差不多是每月2万美元购买800GB内存(12 X Quadruple Extra Large节点/68GB)。
•37signals将FusionIO用于其数据库,但由于要将内存安装到三台服务器上,所以使用内存是成本更低的出路。
•BaseCamp的容量规划问题相对容易预测,所以裸机的成本效率要比云计算高得多。如果你的服务跟Netflix一样不好预测,那么相对应的取舍可能会不一样。
•SSD的密度比内存高,成本比内存低,但是速度比内存慢得多。内存加快了读写速度,而SSD加快读操作的效果胜过加快写操作的效果。
•37signals通过在所有系统中添加冗余机制来处理故障。所有数据库都有复制的副本。与备用服务器一样,额外容量也得到了保留。到目前为止还没有做跨地域冗余。
•数据结构更改是大多数关系数据库存在的一个臭名昭著的瓶颈,它在SSD上倒是问题不大。用户仍可以将大量的表缓存到内存中。
相关链接:
- Google Groups讨论帖:运行在内存上的数据库
- 三年后,摩尔先生仍让我们寄希望于数据库分片
原文: 37signals Still Happily Scaling on Moore RAM and SSDs
【编辑推荐】