云计算的发展让我们认识到,看似功能不够强大的小型服务器处理大多数开发任务其实绰绰有余。购买这样一台低成本低功耗的服务器清楚地表明了这点:与数据中心的服务器相比,这种服务器对开发人员来说要合理得多。
就在几年前,开发人员还在使用台式机和笔记本电脑作为他们主要的工作平台。配备双DVI显示器端口和多个USB端口(用于连接鼠标、键盘及其他外设)的坞站提供了人机接口。因而,一切工作得以顺利地开展下去。尽管这是默认的编程环境,但是对两类计算用户来说存在例外情况。一类是处在高端的开发人员,他们有着的独特要求,通常需要内存中有大量的数据,通过高级图形功能迅速呈现到屏幕上。这些用户一边倒地来自石油天然气勘探、金融服务和安全等行业领域。他们使用工作站作为主要设备,运行时的内部内存容量超过96GB,因而推动了多块GB级视频卡的发展。
另一类是处理的问题可以在小型低功耗服务器上运行的开发人员。我清楚地认识到,最先采用这种服务器的是拥有小规模开发团队的新兴公司,这些开发人员发布代码后,在大量的苹果Mac Mini台式机上测试代码。Mini台式机有时配置成成本低廉的集群。而另外一些时候,它们作为软件构建周期的单个部件来运行。一台托管运行源码管理(SCM)软件,另一台负责构建,第三台运行测试和生成报告。扩增容量或提升性能的费用是每个实例750美元;由于每个系统运行Mac OS X操作系统,所以安装和配置都是即插即用的。
除了成本低廉外,Mac Mini还有这些优点:它们的能耗非常小,运行起来完全悄无声息,而且从来没有出过故障。这些优点实在太诱人了。
而如今,Mac Mini正在与功能非常强的竞争对手争夺市场的低端部分。在本周的特写文章中,你可以找到Mike Riley对于他用作开发后端系统的低成本低功耗服务器所作的描述和评论(http://drdobbs.com/tools/232400398)。他的系统搭配来自英伟达的双核1GHz ARM图睿芯片,配备了强大的英伟达图形芯片(HDMI)、1GB内存、32GB固态硬盘或容量更大的标准硬盘,以及你可能需要的所有USB端口及其他端口。它的成本总共不到200美元,还运行Ubuntu Linux。不赖吧?
Mike用它作为后端系统,用来在后PC时代尝试编写代码;也就是说,这个后端系统存放着他编写的代码,并且用来构建代码、测试代码和报告代码,然后保存代码。因此,这是一台理想的单人项目服务器。
我一直在使用宏碁Aspire Revo开展类似的试验工作,我从亚马逊网站掏300美元买来了这台机器。这台机器的功能要强大一点,配备了1.8GHz双核英特尔凌动芯片、2GB内存、250 GB SATA硬盘、HDMI、6个USB端口、无线连接和千兆以太网端口。它运行未经改动的Windows 7操作系统。这种低功耗设备原本是用作家庭媒体服务器的,但是它们用作代码构建服务器同样很出色,对中小型项目而言更是如此。将代码登记入库,它们就能没有任何困难地构建、测试和运行报告——实际上这是你完整的持续集成(CI)周期。如果升级到可用的4GB内存,甚至还能进一步提升性能:你只要将相关工具和代码库放到内存磁盘上。
你无法得到的是立即给予的持续集成反馈。尽管敏捷开放方法的拥护者建议尽可能缩短缺陷报告方面的反馈回路,但是我发现,在构建和测试5分钟而不是2分钟之后发现错误对于我回过头去分析问题并解决问题的能力没有重大的影响,或者说根本就没有影响。
而如果设备的功能不够强大,添加第二个设备不用花多少钱,肯定能提供我所需要的功能。
这种使用低成本低功耗设备的模式恰恰是未来的出路。我在这里描述的与你使用成本低廉的机器搭建自己的个人云并非大不相同。如果你决定费用不得超过300美元,那么使用云服务提供商Rackspace的云服务器基本上就能满足你的要求:512MB内存和运行Linux的20GB标准硬盘。其功能不如我的机器所提供的功能来得强大。不过,它为你提供了两个优点:你不用另外支付日常费用(电费和更换零部件的费用);又因为该云服务器在异地,你立马就能实现代码库的异地备份。IntoVPS.com等其他公司以同样的费用为你提供两倍于Rackspace的资源。我估计,最终,云服务器的价格会跌到接近现场低功耗设备的水平。
我认为,低功耗低成本的小机器会开始流行起来。许多站点会发觉它们运行起来成本更低,功能对非数据库活动来说绰绰有余,又易于管理。英特尔的集成众核(MIC)架构在今年交付后(由众多精简版的核心组成),这些机器甚至更有能力处理更高的吞吐率,所以会备受瞩目,成为比萨盒服务器(pizza box server)的主要替代者——那归功于它们的价格更合理,功耗更低。要不要购买这样一台小型系统、实际试用一下,就看你自己了。正如Mike和我的感受那样,我预计你会喜欢的。