开发人员在企业环境中运行自己的 VM 服务器需要什么

Sco*_*Bai 10 security virtualization

这个场景也发布在 SO 上,针对不同的观众提出了不同的问题 - 我很高兴我这样做了,因为我收到了一些非常好的回应。

我们正在尝试为企业组织内的 4 名开发人员小团队使用虚拟化实现开发环境。这将使我们能够设置单独的开发、测试和暂存环境,并允许访问我们正在评估的系统或工具所需的新操作系统。

我们重新设计了一台现有的工作站级机器,加入了 24GB RAM 和 RAID-10,在我们尝试将机器添加到域之前,一切都很好。

现在,我们开始了所有企业开发人员从一开始就不得不打的战争——为开发和测试环境的本地控制而战。网络和 IT 管理员提出了许多担忧,从“ESX Server 是企业标准”到“客户端 VLAN 上不允许使用服务器”,再到“[填空] 不是当前拥有的技能集。本地或企业 IT 组织”。

我们可能可以证明生产级硬件和正式 IT 支持的合理性(阅读:如果必须,我们可以证明这种需求是合理的,但这需要时间并涉及很多头痛)-但正式获得 IT 资源可能需要数月时间通过将其视为生产系统来分配 - 即使我们这样做了,我们也可能会失去我们想要的本地控制。

我想你们中的许多人都曾与企业内的开发人员在非生产环境的开发人员控制方面有过类似的斗争,所以我的问题如下:

  1. 您的开发人员提出了哪些论点让您相信这些类型的孤岛存在于拥有标准网络和安全策略的企业中,这些策略通常(并且可以理解)排除这种类型的非(集中)管理的基础设施?
  2. 这只是开发人员提出技术或业务理由并确保补丁管理和 AV 会发生的问题 - 还是更多的控制权和所有权的政治斗争?
  3. 如果有选择,您是愿意在授予开发人员本地管理员权限的同时获得硬件/操作系统的所有权和支持,还是让他们完全管理它,同时确保他们建立补丁管理/反病毒软件并在出现问题时向他们收取责任?
  4. 如果您成功阻止开发人员在您的基础设施上对“流氓服务器”进行本地控制,那么开发人员是刚刚到期还是他们(或您)将开发环境移动到断开连接的 VLAN/完全独立的网络?

限制此问题范围的几个假设:

  1. 重申一遍,这是针对开发环境的——不需要生产负载或可支持性。外部无法访问任何内容。
  2. 这不是 Hyper-V 与 ESX 的圣战(我们都可以接受 - 但选择了 Hyper-V,因为它在 MSDN 中“免费”用于这些目的[是的,VMWare 也有免费工具 - 但良好的管理工具通常不是],并且由本地开发人员在“微软商店”中更容易管理) - 因此支持或反对任何一个的论点都超出了这个问题的范围。
  3. 开发团队已经保证要么管理补丁管理和防病毒,要么在 IT 支持的情况下与现有的企业系统集成 - 但无论您是否愿意接受,这肯定在范围内。

Joe*_*oel 15

首先,我确实看到了一些为什么您的管理员应该回击的原因:

  • IT 还负责报告补丁管理、防病毒软件、pci 合规性、年度(或更频繁的)安全审计等内容。这不仅是让您保证这件事得到处理的问题,而且还需要能够要证明这一点给外人。

    例如,我在一所小型大学运行网络,我们有一个物理实验室,里面有一些数据收集机器供学生实验。他们唯一要做的就是从科学仪器中收集数据并将结果打印出来(到直接连接的打印机)供学生分析并交给教师。它们永远不会在互联网上——甚至 AV 和 Windows 更新也是通过本地网络应用的。它们连接到网络并运行 AV 软件的唯一原因是明确的目的是向我的监控软件报告它们仍然存在并且是最新的。这很愚蠢,因为它们实际上删除网络连接会安全,但它们首先是通过教育补助金支付的,所以这些是我的报告要求。

  • 不管喜欢与否,从开发人员的角度来看,您的开发服务器是一个生产系统。给它一个月的时间,如果由于您将设置的流程假设服务器可用,开发人员将很难完成工作。避免/限制员工因技术故障而闲置的情况是企业仍然使用集中 IT 部门的一个重要原因。
  • 如果“ESX Server 是企业标准”,则需要遵循该标准。目前,hyper-v、vmware、xen 和其他人的工作方式存在显着差异,并且不能假设为一个机器构建的机器在另一个上运行良好。如果您打算这样做,IT 将需要在某个时候帮助管理它,并且他们不想在机器上有一堆可能导致问题的杂物后将其转换为 vmware。
  • 总有一天这台机器会变旧,要么需要更多的定期维护,要么建立一个标准的更换周期。即使是新服务器有时也会有一些不正常的部分。这种情况几乎总是在出现阻止人们完成工作的事情发生才会落入 IT 的怀抱。通过尽早对服务器负责,IT 可以做得更好,确保您避免计划外停机。
  • 这其中的个人,但我可以告诉你,非常最后我想在我的网络就是另一个桌面伪装成一台服务器。在过去的几年里,我已经处理了足够多的事情,足以让我度过一生。

也就是说,IT 需要能够支持该计划。他们仅仅说“不”是不够的。挑战他们提出满足您(非常真实)需求的替代方案。这里唯一的政治情况应该是他们的替代方案可能有更高的标价(因为他们正在计划你还看不到的成本),所以问题是谁必须为此买单。IT 不会因为他们没有预算而不愿意这样做,但您会犹豫不决,因为这是您为您满意的解决方案(目前)花费的费用的 6 倍。

此外,听起来您可能会在走路之前尝试跑步。您想改进您的开发过程。作为前开发人员,我认为这很棒。但不要只是扔掉一堆虚拟机和“环境”(即:dev、stage、qa 等)。规划新流程的外观——开发人员将如何完成工作。你会使用持续集成吗?自动构建?使用什么软件来支持它们?是否允许开发人员将代码移至生产或暂存阶段,还是只有 QA 具有这种能力?您需要单独的分期吗?两个开发分支怎么样(一个用于 vNext,一个用于 vCurrent 的错误)?

您可能需要一台服务器,以便开发主管或经理可以解决所有这些问题,但如果是这样,那么这需要是第一步,并且需要开发人员实际动手之前完成设置和初始流程设计用。


小智 9

1) 您的开发人员提出的哪些论点赢得了您的支持,允许这些类型的孤岛存在于具有标准网络和安全策略的企业中,这些策略通常(并且可以理解)排除这种类型的非(集中)管理的基础设施?

没有——主要是因为我不在我的组织中扮演管理角色,所以这些“政治事物”中的任何一个都与我无关。唯一能真正说服我的论点是允许明确违反网络政策并免于系统运营团队控制和可见性的事情是我老板的老板的一个气隙和一封 CYA 信。

并不是我真的想成为一个说“不”的生意,只是从运营团队的角度来看,没有什么好方法可以结束。

  1. 我们最终得到的服务器管理人员的主要技能不是管理网络上的服务器,他们不了解整个网络及其相关问题空间。这不仅仅是“保护”草皮的政治问题;作为一个老生常谈的例子,想象一下当开发人员出于某种原因打开 DHCP 时会发生什么。
  2. 我们最终为他们管理开发团队的服务器。由于相反的原因,这很混乱。开发人员经常因为我们正在修补这个问题(破坏他们知道但我们不知道的东西)而感到恼火,或者他们为了我们不希望启用的各种充分理由而争取我们启用功能。这很快就会变成一个僵局,运营团队感到负担和骚扰,而开发团队感到沮丧和被忽视。
  3. 有政治后果 - 因为然后你必须向另一个部门解释为什么开发人员是“特殊的”以及为什么他们不受网络政策的约束。

2) 这只是开发人员提出技术或业务理由并确保补丁管理和 AV 将发生的问题 - 还是更多的控制权和所有权的政治斗争?

我不认为开发人员需要制定商业案例——很明显,开发人员必须进行开发,为了做到这一点,他们需要某种开发环境。至于补丁管理和 AV - 这是运营团队的工作,我们将确保完成。并不是我们认为开发人员做不到。只是我们不相信你做对了 - 系统管理员仍然是系统管理员,因为他们不相信任何事情可以做正确的事情,所以这与个人无关。当然,感觉其他人在“做你的工作”是一个明显的政治问题,但这并不是真正的技术问题,因此超出了 SF 的范围。

3) 如果有选择,您是愿意在授予开发人员本地管理员权限的同时获得硬件/操作系统的所有权和支持,还是让他们完全管理它,同时确保他们建立补丁管理/反病毒软件并在他们造成的情况下向他们收取责任问题?

也不是出于上述原因。

4) 如果您成功阻止开发人员在您的基础设施上对“流氓服务器”进行本地控制,那么开发人员是刚刚到期还是他们(或您)将开发环境移动到断开连接的 VLAN/完全独立的网络?

气隙。处理这种情况的最佳方法是为开发人员提供他们的环境(并对其进行控制),然后隔离或使用其他一些健壮的方法将其与网络分开。这基本上就是我们处理公共 wifi 的方式。你想要无线上网服务吗?当然。您为网络连接付费,我们将管理 WAP,但它永远不会触及我们的网络。对不起。您的需求只是数百种需求中的一种。我们还需要考虑其他问题。

你不想说不,因为开发人员(在技术上特别聪明)无论如何都会找到方法来获得他们想要的东西。因此,为他们提供一个适合他们需求的环境,让他们开心,然后找到一些方法来防止他们在开发环境中所做的任何事情接触到您业务网络的其余部分。

TL;DR:我会在单独的物理网络或 VLAN 上为您提供具有您想要的任何虚拟化平台的服务器。可以通过运营团队控制和监视的单个堡垒主机访问您的开发环境。你用它做什么你的业务 - 它不会得到支持,但我们会在时间允许的情况下为服务器管理方面的事情提供建议和帮助。


Mar*_*son 6

如果你带着一台工作站级机器来找我,这台机器配备了消费级 RAM、消费级 HDD、消费级 PSU 和消费级 RAID,我也会拒绝将它放在服务器网络上。

关于将类似的东西放在服务器 VLAN 上,您需要了解很多。

  1. 服务器 VLAN 很可能是 DMZ。在 DMZ 中,您不能放置任何未经加固和保护的东西。这只是你交给他们的一台机器,他们不知道你用它做了什么。它还意味着定期修补和更新,这意味着集中管理。我敢肯定不会登录到每个非托管服务器并手动应用补丁。

  2. 那台机器中的组件将会出现故障。我承诺。在 6 或 12、24 个月内,它会变得非常糟糕。那么,备份在哪里呢?哦,你没有设置它们?但是,我以为是服务器?哦,它是别人提供的服务器?......然后责备游戏又开始了

  3. 当它坠毁和狗屎击中风扇时,谁来承担责任?在大多数组织中,“我把它交给开发人员照顾”是行不通的

  4. 他们要把它放在哪里?现在服务器都是机架式的,在机架中放置一个塔会浪费空间,而且它们的机架可能不是为此而设计的。

因此,IT 部门不将这台随机计算机放在他们的服务器网络上是非常合理的。

但是,IT 部门的工作是确保您能够正确地完成您的工作。他们需要确保您在需要时拥有所需的东西。如果您有一个业务需要继续运行的软件,他们必须提供一个平台来运行它。那是他们的工作描述。但是您需要确保他们拥有完成工作所需的信息。

如果你来找我,在我的组织中,告诉我你正在开始一个新项目,我会给你三个 VM:开发、实时和暂存。您将拥有 Dev 的完全管理员权限,我们将讨论您为其他两个人完成工作所需的条件。如果您需要对它们的完全管理员权限,并且可以证明它是合理的,那么您会得到它。我们有我们的 VM 部署。VMWare 使这变得非常简单 - 每个 VM 只需大约 5 分钟即可完成部署。

听起来您的 IT 部门正遭受着大公司中几乎每个 IT 部门都遭受的痛苦。建造小城堡,用生命捍卫它们,不让别人进来,专横等等。作为一个每天都在与别人的IT部门打交道的人,我经常看到。这令人沮丧。

基本的事实是,变革需要在 IT 部门内部进行,而且必须从他们上面发起。如果您能让 IT 意识到他们本身并不是一股力量(因为他们中的大多数人不会为他们的业务创造收入,这可能是一记耳光),并且他们会在那里支持现有员工并提升业务,然后您会发现您的问题变得无关紧要,因为每个人都将扮演幸福的家庭。