由于这个社区有大量充满热情的开发人员,我想就此事收集您的意见 - 您认为在家购买和操作实际的服务器硬件来为自己的开发和学习增添趣味是过度还是有利?努力?
早在2003/4跳入开发线时,我就觉得服务器只属于数据中心,不相信家用服务器的定价;消费者的计算能力(当时)已经相当强大,并且可以以一小部分成本获得类似规格的个人电脑。我从小就组装了自己的 PC,我认为获得二手组件以构建新 PC 的活动是一件容易的事。为我的开发测试准备一台充当专用 Windows 2003 服务器的 PC 非常简单。但是三年多来,我一直在真正的服务器上运行,尽管是低端模型。由于多种因素,我最终处于这种状态。
- 稳定。构建为可以正常协同工作的服务器硬件。经测试可运行服务器操作系统。由于所有这些有趣的意外不兼容实例,我组装在一起的硬件可能会也可能不会工作。不幸的是,我遇到这些情况的次数比我应该的要多,比如必须弄清楚为什么 PC 无法启动,因为我按特定顺序插入了 RAM 模块,或者简单地使用了特定的 DVD 驱动器。我的服务器没有看到一个 BSOD。
- 耐用性。我让我的服务器 24x7 运行,并且多年来(谢天谢地)没有遇到任何服务器硬件故障。相比之下,我的电脑只是被快速故障率所诅咒。甚至我的供应商购买的笔记本电脑最终也会以一种或另一种方式出现有趣的问题(尤其是电源装置)。
- 保修。我可能对个别 PC 部件有保修,但对整个计算机的保修对我自己不利。如果有什么事情失败了,我自己就是呼救的人。并称自己为我做了几次。但是,对于服务器,我致电技术支持并让他们更换零件。
- 容量。虚拟化确实是一件美妙的事情。使设置单一用途机器变得更容易管理。我直接用 4GB RAM 将我的第一台服务器加载到最大,并愉快地运行各种虚拟机,模拟我需要的多服务器/工作站环境。现在我的新服务器具有 24GB RAM 的容量,可以支持我正在尝试试验的更大场景(例如 AD 域、BizTalk 服务器组、TFS 组等)。
总而言之,对于胡思乱想的 DIY,我花在解决硬件问题上的时间比解决实际开发问题的时间要多。当我花钱购买真正的服务器时,我生活中的硬件问题立即减少了。如果我能找到适合我的开发需求的配置,我可能也会购买供应商构建的工作站。
现在,我的一些对工作充满热情的技术朋友也在家里运行自己的服务器。问题是,大多数其他人/同事对我实际上会为这类机器花钱感到相当惊讶。有些人会把我归类为疯子。我真的过火了吗?
更新 - 澄清服务器使用情况
基本服务器 (Windows Server 2008) 提供基本的 IIS 7/ASP.NET、SQL Server 2008 和 Subversion 服务。但它发挥的最大作用是在 Hyper-V 中托管各种虚拟机。我不是一个只被告知针对单个数据库编写应用程序代码并将其检入某个版本控制存储库然后回家而不用担心应用程序和实现在生产环境中如何工作的开发人员。作为解决方案集成商,我必须了解客户/客户环境,并考虑包括基础设施和部署问题在内的全局解决方案。软件应用程序开发虽然是我的主要角色,但只是解决方案的一部分。
我经常发现自己必须进行试验并发现某些建议或方法是否适用于给定环境,并且必须准备虚拟服务器,例如域(控制器)森林、Web 服务器、数据库服务器、BizTalk 服务器组、Team Foundation 服务器等来进行我的分析并巩固我的建议。这些虚拟机作为我的个人 POC 工作。我面临的场景越来越大,如果没有允许我虚拟化和模拟它们的基础平台,我肯定无法学习如何处理这些情况。