如何设置开发、准备、生产和 QA 环境

如何设置开发、准备、生产和 QA 环境

我正在为组织设置新服务器。设置具有开发、测试、准备和生产的新环境的标准或最佳实践是什么(或者我对我不熟悉的其他级别持开放态度)?此外,我听说组织将服务器分为 SQL、应用程序、Web 服务器等。在哪里可以找到服务器设置的可能解决方案的良好示例?

在几个物理盒子之间虚拟化这些环境是一种好的做法吗?

我在网上搜索了其他组织如何设置环境的一些想法,但没有找到任何特别有用的东西。我欢迎您向我提供任何讨论为中小型公司构建整个企业解决方案的链接。

我刚刚找到这个链接:http://dltj.org/article/software-development-practice/如果有人知道任何好的文章可以推荐给我的话,我希望能找到更多这样的文章。

在你否决我的问题之前,请发表评论让我尝试解释更多。我可能只是不知道该问什么问题。

答案1

这个问题很有深度。我的一般建议是将注意力集中在管理复杂性上,让系统有机地发展。

虚拟化:

您确实希望避免服务器蔓延,而如今,一切都已虚拟化。选择一个允许您快速添加虚拟服务器并有效管理它们的平台。我看到的一个趋势是拥有两个(例如)AIX 或 VMWare 集群,一个用于生产,一个用于非生产。非生产集群用于所有开发、测试和登台环境。这些环境非常适合 Web 服务器或应用程序服务器,但我会尽量避免将大型、不断增长的生产数据库放在 VM 中(至少在 Windows 上)。

数据库

每当它们需要与其他服务器共享资源时,它们很容易失控。始终让数据库在专用操作系统上运行,除非有充分理由,否则切勿与应用程序或 Web 服务器共享。您使用虚拟机还是硬件是唯一的问题。

您需要一个可扩展的基础架构,如果您需要迁移到集群解决方案,它不会限制您的使用。许多数据库在虚拟机中运行良好,但对于少数最终需要比在虚拟机环境中方便提供的更多功能的数据库,您会发现自己希望将它们放在原始硬件

如果您不谈论 Windows,那么其中一些准则将不相关。例如,将大型增长数据库作为 LPAR 放在 AIX 虚拟机管理程序中是一种普遍接受的做法。

贮存

如果没有共享存储,就无法实现真正​​的虚拟化(具有 VM 移动性和主机群集)。生产、开发、测试和 QA 服务器对于您的存储来说都是一样的,但是您可能需要花一些时间来找到一种方法来优先考虑您的生产。例如,让负担沉重的生产数据库与开发服务器共享磁盘(RAID 集、池等)是一个非常糟糕的主意。有时,开发对磁盘的打击与生产一样严重,您最不需要做的就是弄清楚某种测试是否是导致生产速度变慢的原因。

让了解您的存储的人坐下来分析所有潜在的瓶颈(端口、缓存、控制器、磁盘等),并尽最大努力防止生产和非生产之间对这些瓶颈的争用。

话虽如此,有时应用程序人员需要运行开发基准测试来帮助量化新补丁或其他东西的影响。在这种情况下,您可能需要能够为他们提供类似(或至少可量化不同)的存储能力。

答案2

您需要此环境来做什么?供应商软件还是您的组织自己进行开发?

不知道这是否有帮助,但 HP 和 Dell 都会竭尽全力评估您当前的数据中心,并为您提供改造或从头开始创建的建议。论坛读者可以给出很好的答案,但如果不了解“您拥有什么、您在哪里、您想要什么以及您需要在哪里”,就很难给您一个可靠的答案。出于管理原因,请帮自己一个忙,坚持使用一家硬件供应商。

我们的数据中心已为此做好了准备(我们已配备硬件来实现这一点)

VMWare 环境 C7000 Hp 刀片机箱,带有 EMC SAN 后端和 8 千兆光纤连接。

这使我们能够限制空间、电力使用和空调成本。它将用于测试机器、概念验证服务器、不需要应用程序独有硬件(USB 加密狗、传真板等)的生产服务器

物理刀片服务器环境 C7000 Hp 刀片机箱,配备 16 个刀片 HBA,通过 8 千兆光纤连接到 EMC SAN 后端。

这些适用于需要大量 RAM 和 CPU 但没有独特硬件附加功能的机器。除非需要大量 CPU 或 RAM,否则虚拟机是没问题的。VMWare 允许通过 vmotion 将 vmserver 移动到主机以平衡硬件使用情况。VM 空间只有在最大程度使用时才具有成本效益。这意味着,使用更多小型机器而不是几台大型机器。这也取决于您尝试建立的系统。

物理服务器(1U 至 5U)

HP DL360 - DL 5xx 服务器。特殊硬件,如 4x 8 核 CPU 和 256 GB RAM、用于电信接口的串行卡或连接到多条电话线的高端传真板。此组包括供应商需要大型本地存储的服务器。

这只是一个例子,并不是完整的答案。认真地讲,请与硬件供应商交谈,让他们告诉你目前的情况以及如何使其变得更好/更高效。

答案3

设置具有开发、测试、登台和生产的新环境的标准或最佳实践是什么。

这取决于预算以及其他考虑因素。不确定是否有标准,但您希望在所有机器上保持相同的操作系统和其他软件。使用 Puppet 等自动化工具来自动化和标准化您的构建。

在几个物理盒子之间可视化这些环境是一种好的做法吗?

虚拟化?是的。很好的做法。但需要验证您的配置是否可以作为虚拟机运行。

我听说过有些组织将服务器分为 SQL、应用程序、Web 服务器等。在哪里可以找到有关服务器设置的可能解决方案的良好示例?

也许其他人也会同意,但恕我直言,出于操作系统、应用程序升级和可用性等多种原因,您可能希望在不同的服务器上安装不同的组件。

相关内容