【问题标题】:Best hardware to buy for a small startup web php/mysql web development team?为小型初创 Web php/mysql Web 开发团队购买的最佳硬件?
【发布时间】:2011-02-13 11:58:19
【问题描述】:

我们获得了一些资金来更新我们的 IT 基础设施(大约 20000 美元)。我们是一个由 5 名程序员组成的小型团队,主要使用 Ubuntu / PHP-Drupal / MySQL。

我们想要购买的第一件事情是一个全新的服务器,它有很多 gigs 或 ram(至少 64 个)来分配所有本地数据库、svn repos、共享目录等。我们的主要瓶颈之一是 MySQL性能,希望能用这台服务器解决。

我们对这些大型机器的经验非常少。你觉得物有所值吗?

【问题讨论】:

  • 这可能会在 SuperUser 上得到最好的回答,因为它更适合硬件和基础设施,而且这个网站更多的是用于开发问题。

标签: php mysql hardware


【解决方案1】:

在不知道您的工作规模的情况下,很难回答这个问题。听起来有很多事情需要考虑,至少你的软件成本会非常低。

需要考虑的事项:

  • 一台机器(网络 + 应用程序 + 数据库)与多台机器。
  • 数据备份(必须有恕我直言),可以是外部服务、外部硬件或专用机器。同样相关:定期维护非现场副本。
  • 冗余 - 多个网卡/服务器、多个电源/服务器、服务器的熄灯功能(如果不容易访问)、网络中的多个连接(如果这是您的应用程序的关键)
  • 电源 - 您需要为服务器提供干净的电源 - UPS 不仅可以在断电或停电期间让系统保持运行几分钟,而且更高级别的电源也会调节电源输出。
  • 冷却和噪音 - 服务器硬件会产生一些严重的热量,而某些系统会产生一些严重的噪音 - 您需要将这些东西放在通风良好的地方,并且不会让任何人发疯。
  • 网络 - 如果您正在构建多台计算机设置(例如,1 个数据库服务器、2 个应用服务器、1 个负载平衡器),您还需要在它们之间建立良好的网络 - 最好是在单独的网络上(为了安全和性能)。
  • 这适用于生产系统、测试系统、开发系统,全部三个吗?

解决方案:

  1. 一台大机器:大内存、大/快驱动器、大处理器。 优点: 简单。 缺点:昂贵,不同的服务需要不同的组件,但你必须得到最好的,不能扩展 - 如果你以后需要更多,必须切换到另一种格式。
  2. 为每项服务提供合理大小的机器:db 机器 - 大内存,尽可能快的驱动器/负担得起的,应用程序机器 - 良好的处理器,合理的内存,一些高清。您可能还希望将文件存储拆分为 SAN(应用程序和数据库机器都可以使用)优点:为任务购买最好的,保存在不需要的地方。 缺点:要支持多台机器,只需购买两台大型机器就很容易 - 所以 2 倍 #1 成本
  3. 机器集群 - 前面有一个负载平衡器,后面有几个应用服务器,后面有几个数据库机器。 优点: 可以很好地扩展,可以使用相当便宜的商品硬件(例如 500 美元的台式机)缺点: 每个部件都必须在构建时考虑到失败的可能性或预期(而不是坏主意),管理可能很高,网络可能成为关键

有很多选择和选项,网上有很多配置示例。云服务(例如亚马逊的 AWS)有一些关于公司需求和他们用来提供解决方案的云服务的优秀案例研究——这些设置有一个真实的硬件模拟。

您拥有的金额(取决于货币 ;))现在似乎绰绰有余 - 您甚至可以根据所选硬件进入集群设置。您正在尝试解决瓶颈,但您没有说它现在在哪里 - 如果它是在台式机上运行的数据库服务器,则可能有其他进程(包括病毒扫描程序、碎片整理进程、索引)正在干扰,它甚至可以像配置非常严格(低线程数,内存使用)一样简单。您的工作规模在这里确实很关键,但过去几代服务器硬件可能已经足够强大,足以满足您的需求。

【讨论】:

    【解决方案2】:

    您确实需要告诉我们更多关于您当前的工作环境和项目的信息。

    因为你有钱而花钱很少是一个好政策,但如果你需要升级,请具体弄清楚是什么阻碍了你的团队并首先升级。

    鉴于您的问题,我假设您正在谈论升级也用于开发的生产基础架构。除非您正在处理一个非常繁忙的站点,否则您可能不需要在新服务器上花费那么多钱。

    是什么让你觉得你需要这么多内存?

    您是否考虑过其他提高 MySQL 性能的方法?

    这种预算规模的系统通常不是您从目录中选择的。在订购大量硬件之前,您需要准确地弄清楚您需要什么以及为什么需要它。

    【讨论】:

    • 感谢您的回答保罗。基础设施仅适用于我们的内部开发团队。我们所有的生产站点都在 EC2 上。我们的想法是提供最好的机器,以便开发团队在最好的条件下工作(即管理命令)。
    【解决方案3】:

    取决于您的应用需要什么 - 我们不知道您的项目有多大。我认为对于中型项目来说,现金就足够公平了,毕竟你的口袋里应该还有很多钱。 ;]

    【讨论】:

    • 真的吗?你觉得那台服务器有多便宜?
    【解决方案4】:

    我在一家类似的公司工作。

    我们都有强大的笔记本电脑(主要是 MacBook Pro 和 ThinkPad [Linux]),我们有一个开发环境。我们更喜欢笔记本电脑而不是台式机,因为如果我们必须在家工作或者由于某种原因不能在办公室,这没问题。

    我们在 Linode 有一个测试服务器,我们还在那里存储我们的共享存储库(一些旧的 SVN 东西,但现在主要是 Git)。

    我们的开发站点在 Hot Drupal(如果是较小的站点)或 EC2 上运行。

    我们的发展计划:

    • 在 localhost 上开发模块/主题
    • 在测试服务器上集成它
    • 向客户显示测试服务器上的页面
    • 部署到现场

    【讨论】:

      【解决方案5】:

      我知道你有很多答案。但是,没有人提到虚拟化。我不只是在这里抛出一个流行语。这就是我设置开发环境的方式,我不会这样做。所有服务都在虚拟机上。

      主要好处:灵活性

      您可以添加更多硬件,以便能够在几乎没有任何软件更改的情况下承担新项目。 您可以轻松备份系统。 您可以轻松升级系统。

      我无法列出所有内容,但您会发现它更加灵活、便宜且可靠。

      免责声明:如果您不以智能方式设置虚拟机/网络等,您将无法获得所有这些好处。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多