37signals经验谈:堆内存和SSD做向上扩展也很不错

译文
运维 系统运维
37signals应该很多人都知道了,它是Ruby on Rails的发源地,Campfire等产品背后的公司。这年头,IT业界出现了形形色色的架构概念,其中的两大争论是云计算与裸机之争,以及内存、磁盘与SSD之争。对此,37signals根据自己在Basecamp上的经验进行了分析分享,本文是相关的精简版解读。

【51CTO精选译文】本文是High Scalability作者Todd Hoff的一篇分享文章,对37signals最近分享的两篇文章进行了摘要说明。37signals应该很多人都知道了,它是Ruby on Rails的发源地,Campfire等产品背后的公司。全文如下:

这年头,IT业界出现了形形色色的架构概念,其中的两大争论是云计算与裸机之争,以及内存、磁盘与SSD之争。37signals发表了两篇颇有见地的文章,逆炒作周期(hype cycle)而行之,中心思想分别如下:

  1. 那些在每MB内存卖1000美元的年代长大的技术人员很难适应将内存几乎视作免费的时代;
  2. 技术的进步正在促使人们将大量的优化扔进被标注为“过早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上倒是问题不大。用户仍可以将大量的表缓存到内存中。

相关链接:

  1. Google Groups讨论帖:运行在内存上的数据库
  2. 三年后,摩尔先生仍让我们寄希望于数据库分片

原文: 37signals Still Happily Scaling on Moore RAM and SSDs

【编辑推荐】

  1. 51CTO专访章文嵩博士:做系统要先了解业务的需求
  2. 基于SSD固态硬盘的数据库性能优化
责任编辑:yangsai 来源: 51CTO.com
相关推荐

2012-05-22 14:16:26

Linux运维

2012-09-04 10:11:46

创业管理公司理念

2018-10-15 16:23:24

Android 源码开源

2011-09-09 09:50:40

Oracle

2013-09-04 10:08:12

移动团队经验谈

2009-06-29 15:39:53

Servlet和JSPServlet引擎

2017-01-20 09:43:12

日志告警挖掘

2013-12-15 11:03:59

Windows 9概念图

2018-09-29 08:44:24

开源分布式系统

2009-08-03 10:13:13

开发框架

2009-09-14 15:04:44

2012-02-14 14:15:10

傲发传真机

2010-08-17 13:23:49

2015-09-16 10:13:16

游戏性能

2012-07-13 14:25:59

2011-08-15 10:27:48

2011-06-21 16:26:19

SEO内部优化

2014-03-13 09:20:38

jQueryAngularJs

2013-08-02 11:23:45

2009-06-30 08:42:45

微软操作系统Windows 7
点赞
收藏

51CTO技术栈公众号