7

由于这个社区有大量充满热情的开发人员,我想就此事收集您的意见 - 您认为在家购买和操作实际的服务器硬件来为自己的开发和学习增添趣味是过度还是有利?努力?

早在2003/4跳入开发线时,我就觉得服务器只属于数据中心,不相信家用服务器的定价;消费者的计算能力(当时)已经相当强大,并且可以以一小部分成本获得类似规格的个人电脑。我从小就组装了自己的 PC,我认为获得二手组件以构建新 PC 的活动是一件容易的事。为我的开发测试准备一台充当专用 Windows 2003 服务器的 PC 非常简单。但是三年多来,我一直在真正的服务器上运行,尽管是低端模型。由于多种因素,我最终处于这种状态。

  1. 稳定。构建为可以正常协同工作的服务器硬件。经测试可运行服务器操作系统。由于所有这些有趣的意外不兼容实例,我组装在一起的硬件可能会也可能不会工作。不幸的是,我遇到这些情况的次数比我应该的要多,比如必须弄清楚为什么 PC 无法启动,因为我按特定顺序插入了 RAM 模块,或者简单地使用了特定的 DVD 驱动器。我的服务器没有看到一个 BSOD。
  2. 耐用性。我让我的服务器 24x7 运行,并且多年来(谢天谢地)没有遇到任何服务器硬件故障。相比之下,我的电脑只是被快速故障率所诅咒。甚至我的供应商购买的笔记本电脑最终也会以一种或另一种方式出现有趣的问题(尤其是电源装置)。
  3. 保修。我可能对个别 PC 部件有保修,但对整个计算机的保修对我自己不利。如果有什么事情失败了,我自己就是呼救的人。并称自己为我做了几次。但是,对于服务器,我致电技术支持并让他们更换零件。
  4. 容量。虚拟化确实是一件美妙的事情。使设置单一用途机器变得更容易管理。我直接用 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 工作。我面临的场景越来越大,如果没有允许我虚拟化和模拟它们的基础平台,我肯定无法学习如何处理这些情况。

4

11 回答 11

7

我认为熟悉服务器硬件会让你成为更全面的技术专家,所以去吧。您通常不会将“适当”服务器的某些元素构建到家庭构建系统中,例如热插拔驱动器和 PSU、远程访问卡(例如Dell DRAC)等。

即使服务器管理员不是您的主要工作职能,随着您的职业发展,您可能会越来越多地参与购买硬件和评估供应商的报价。额外的知识当然可以在那里派上用场。

于 2009-01-07T10:36:44.117 回答
4

如果您只是想学习,而且作为程序员而不是网络或服务器工程师,我同意花在专业服务器设置上的费用是多余的。在最初的几周内,您将完成新奇事物,然后它会像搁浅的鲸鱼一样坐在您的腿上。

您是否有任何安装了服务器软件的普通计算机无法满足的特定需求?

于 2009-01-07T11:13:15.167 回答
3

运行数据中心级别的硬件将是最重要的——你不需要热插拔驱动器之类的东西,它们会浪费钱,但如果你认真对待自己的开发工作,那么肯定会运行低端中小企业级服务器是一个很好的举措,它为您提供了安全性和便利性。

我自己经营自己的咨询/开发(公认的答案)业务,并经营一个小型网络来支持它。我运行具有 250GB RAID、4Gb RAM、Windows 2003 的 HP SME 服务器。它在 24/7 运行,并且可以完成您期望服务器在任何小型企业中执行的所有操作。主网通过优质的中小企业级ADSL账号接入互联网。

此外,我在类似的硬件上运行 Linux 服务器,该服务器通过单独的电话线上的另一个 ADSL 帐户(只是一个基本的廉价商业帐户)连接到 Internet。这为我提供了在 ADSL 问题的情况下的备份(偶尔会发生一个故障而另一个保持正常),但也意味着我可以运行一个低级别的 Internet 服务器,以便在专用和隔离的线路上向客户端显示内容 - 显然不是生产质量但足以进行测试(我有几个专用服务器共同托管在其他地方运行客户端站点,但它们显然不能广泛用于非生产目的,并且拥有内部硬件意味着我可以更多地调整配置容易地)

这实际上是一个调整您对硬件的要求以支持它的问题 - 就像实际上将任何硬件部署到客户端一样。作为开发人员,您需要与任何小型企业一样的安全性和便利性,但同样需要良好的投资回报率——例如,如果您可以购买一台 30 英寸的显示器,那么花 1000 美元购买额外的服务器镀金是没有意义的。假装你有一个关键但理解的商业伙伴(乔尔级别的程序员专注),你必须证明你的支出是合理的,并且对你自己的需要诚实——稍微放纵一下。

编辑以响应阅读其他一些关于不需要服务器硬件用于您自己的个人开发用途的评论:您必须要问的是,当您的替代方案遇到硬件故障时会发生什么?我建议拥有一台单独的服务器使您更有可能更快地从灾难性故障中恢复:无论如何这种情况发生的频率可能会降低,您更有可能进行备份,并且恢复可能会更简单。

即使你只是在搞乱个人发展,失去工作并不得不恢复复杂的配置,这既需要时间,也是令人沮丧的痛苦。你应该以合理的 $/h 费率来评估你自己的时间,即使它只是有趣的东西,并将其与基本服务器和相关备份机制的成本相结合——硬件价格处于它们的水平,这真的是不费吹灰之力。

于 2009-01-07T11:37:36.943 回答
2

我认为如果你是一名程序员,你应该专注于编程。拥有一个实际的实时网络服务器并不容易或便宜。

想想看,你必须有一个良好的网络连接和良好的上传速度,一台好的机器专门用来作为服务器。甚至不打算谈论电力成本或制冷系统,因为您需要将服务器放置在您不使用的房间中(因为当您尝试休息时听到这些通风口工作只是很烦人)。

有数百家公司几乎免费提供这项服务,当我做出这个决定时,我只是选择其中一家而从未三思而后行。

不要误会我的意思,我在家里确实有一个网络服务器,只是为了学习如何设置一个,这很有趣而且很有回报,但我永远无法提供专业的服务器,因为它需要 24/7 全天候关注以防止停机。

于 2009-01-07T10:29:02.510 回答
1

我认为任何 ROI(投资回报率)高于 1.1 的都可以。在您的具体情况下,我认为在短期内您会毫无顾忌地松散资金,但从长远来看,您可能会获得其他附加价值。您可以选择比普通硬件便宜一些的价格来平衡成本。

于 2009-01-07T10:53:00.543 回答
1

我曾经操作自己的 Web 服务器,它建立在 Compaq 服务器级硬件上。但是,这些天来,我不想对这样一个机器野兽负责。该服务器的功率消耗非常大,它产生的噪音和热量也是如此。忽略提供电力和冷却的财务问题,一个简单的事实是(对我而言)不值得付出努力。我不需要任何需要服务器级硬件的事情。事实上,在我的 MacBook 上的虚拟机上,没有什么我需要做的事情是无法在家里完成的。

YMMV,当然。

于 2009-01-07T10:53:31.027 回答
1

这实际上取决于您的特定需求。

一般来说,拥有自己的开发和学习服务器可能被认为是多余的。

事实上,对于典型的开发,我相信您甚至可以在VirtualBox或任何您喜欢的开发桌面工作站上放置一个虚拟服务器。无需单独的物理 PC 或服务器。

但是,如果您确实需要它们,那么完成工作就足够了,对吗?当然,“服务器”-服务器通常更适合这项工作。如果您能负担得起价格差异并且对您有意义,为什么不呢?

于 2009-01-07T11:01:35.487 回答
1

我同意 Gnudiff 的观点,为什么您需要具有坚如磐石的 24x7 可用性的服务器硬件来在家中玩耍?是的,有一些技术性可能对学习有用,但在工作中拿一个旧盒子并摆弄它可能更容易。然后可以将它保存在不碍事的某个地方,并且不会花费您任何费用。

在这个网站、Google Reader 和 Facebook 之间,我没有足够的时间陪伴我的妻子,更不用说在家里管理自己的服务器了!

于 2009-01-07T11:08:23.197 回答
1

除非您需要在该硬件方面有经验,否则我认为这太过分了。在过去的 13 年里,我至少在家里运行了一台服务器。我建立/升级我自己的电脑。我支持我的家人(5 台工作站和 5 台笔记本电脑)的时间更长。我使用的服务器是由升级遗留下来的部件构建的。我目前有 3 个服务器配置。我有用于家庭文件服务器和 IIS Web 服务器的主服务器(AMD 3800 X2 w/4 gig)。它还在虚拟机中运行 Ubuntu。这个盒子处理我们所有的备份。我有一个用于 Windows Media Center 的第二个盒子(AMD 2600 w/4 gig),作为我的主服务器的备份,它将我的主服务器的内容复制到它的本地存储中。我的第三个盒子(AMD 3200 w/4 gig)是我的播放盒,目前运行的是 Windows Server 2008。

在 13 年(24x7 全天候运行)中,我遇到过两次与电源有关的硬件故障(它们发生在断电后)、网卡和主板。我有一个硬盘故障(它刚刚开始出现很多错误/重试,我没有丢失任何数据)。主板故障后,我买了一个便宜的 UPS。然后,当我添加第三台服务器时,我添加了第二台。

我用过的剩余硬件非常可靠。我在硬件兼容性方面遇到的唯一问题是康柏上的 Ubuntu。在那一集之后,我开始只使用通用硬件。我建议每个人至少拥有一台服务器来集中定位需要备份的内容。

我所有的服务器都已经退役了,都转给了亲戚用作第二或第三台 PC。我运行一台服务器大约 5 年,两台服务器大约 6 年,过去 2 年我一直运行三台服务器。我最古老的服务器盒 AMD 2600 作为我妻子的 PC 使用了 3 年,并且已经作为服务器使用了 2 年。

更新

我以前从未真正考虑过,但我突然意识到我拥有如此可靠的硬件的原因是因为我使用的硬件已经过几年的测试。除了少数硬盘驱动器外,我的所有硬件在用作服务器之前都已被证明是可靠的。

于 2009-01-07T11:56:47.670 回答
0

我的工作站是 Core 2 Quad,配备 8GB RAM 和运行 Vista x64 的 RAID 0 和 RAID 1 硬盘。它可以很好地满足我的所有需求。我认为我不需要单独的服务器。投资您的工作站,忘记花费大量时间配置东西!

于 2009-01-07T11:12:00.800 回答
0

我认为在以下两个极端之间有一系列选择:

  • 从头开始构建您自己的 PC(付出很多努力 - 您可能是第一个在特定组件组合上运行操作系统的人)
  • 从主要制造商处购买服务器级硬件

对于您描述的需求,高端联想台式机可能会提供您所需的可靠性和弹性,远低于服务器级硬件。

当然,具有讽刺意味的是,真正的大型服务公司(谷歌、亚马逊等)正在减少在单个服务器上的支出,购买更多服务器,并编写绕过故障节点的软件。

于 2009-01-07T11:13:05.620 回答