开发人员在企业环境中运行自己的VM服务器所需的条件[关闭]


10

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

我们正在尝试为企业组织中的一个由4名开发人员组成的小型团队使用虚拟化实现开发环境。这将使我们能够设置单独的开发,测试和登台环境-并允许访问作为我们正在评估的系统或工具的要求的新操作系统。

我们重新调整了现有工作站级计算机的用途,并添加了24GB RAM和RAID-10,并且在尝试将计算机添加到域之前一直运行良好。

现在,我们开始了一场战争,所有企业开发人员自开始以来就必须进行斗争-争夺对开发和测试环境的本地控制权。网络和IT管理员提出了许多问题,范围从“ ESX Server是企业标准”到“不允许在客户端VLAN上使用服务器”再到“ [空白填充]不是当前的技能”。本地或企业的IT组织”。

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

我想你们中的许多人都在企业内部与开发人员争夺非生产环境的开发人员控制权,所以我的问题如下:

  1. 您的开发人员提出了哪些论点来赢得您的支持,以允许这些类型的孤岛存在于已建立标准网络和安全策略的企业中,而这些策略通常(并且可以理解)会排除这种非(中央)管理的基础架构?
  2. 这仅仅是开发人员提出技术或业务理由,并确保补丁管理和AV即将发生的问题,还是更多的争取控制权和所有权的政治斗争?
  3. 如果有选择,您是否愿意在授予开发人员本地管理员权限的同时获得硬件/操作系统的所有权和支持,或者让他们完全管理它,同时确保他们实施补丁程序管理/ AV并在出现问题时承担责任?
  4. 如果您成功地阻止了开发人员对基础结构上的“恶意服务器”进行本地控制,那么开发人员是否只是做出应有的选择,还是他们(或您)将开发环境移至了断开的VLAN /完全独立的网络?

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

  1. 重申一下,这是针对开发环境-不需要生产负荷或可支持性。没有外部可访问的东西。
  2. 这不是Hyper-V与ESX的圣战(两者都可以-但选择Hyper-V是因为MSDN为此目的是“免费的” [是的,VMWare也有免费的工具-但良好的管理工具通常不是],并且由本地开发人员在“ Microsoft Shop”中更易于管理)-因此,支持或反对的论点不在此问题的范围内。
  3. 开发团队已经保证可以管理补丁程序管理和防病毒,或者在IT支持的情况下与现有的企业系统集成-但无论您是否愿意接受,这肯定在范围之内。

4
我认为,这并不是一个真正的话题性问题。就是说,这是一个业务问题-您需要一个适合您需求的开发环境,而又不会浪费大量时间来解决障碍,并且IT人员负责确保基础结构的安全性和完整性。妥协!您有最好的意图,但是在不告知负责基础架构的人员的情况下构建系统并不会使您成为任何朋友。
Shane Madden

@ShaneMadden-如果明显的政治性质的内容被删除,我认为这是合适的。技术问题本质上是关于如何处理由于某种原因您无法控制但必须拥有的设备或环境。

1
如果服务器对生产没有任何重要性,那么为什么您需要完全添加到域中?
克里斯·索普

我确实没有答案,但是很遗憾您无法获得本地控制。(我自己是开发人员)我们有几个不同的网络,并且在其中一个网络上,我们可以插入自己的路由器以从中创建测试网络。
HTDutchy

我认为最大的收获是,IT旨在为组织的其余部分提供支持和提供-试图通过控制服务器和管理自己来规避自己的流程,这仅意味着他们无法正常工作:(在开发公司的基础设施领域中,我们曾经也有这种看法,但这只是因为我们资源不足。现在我们有了更多的人和适当的管理,团队对我们更加快乐,并且我们的响应速度更快。
阿什利

Answers:


15

首先,我确实看到了一些让您的管理员正确撤退的原因:

  • IT还负责报告补丁管理,防病毒软件,pci遵从性,年度(或更频繁)的安全审核等内容。这不仅是确保您已得到保证的保证,还在于要证明这一点给外人。

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

  • 不管您喜欢与否,从开发人员的角度来看,您的开发服务器都是生产系统。给它大概一个月的时间,如果由于您将要建立的过程(假定服务器可用)而出现故障,开发人员将很难完成工作。避免/限制因技术故障而使工作人员闲置的情况是企业仍在使用集中IT部门的重要原因。
  • 如果“ ESX Server是企业标准”,则需要遵循。目前,hyper-v,vmware,xen和其他工具的运行方式之间存在显着差异,并且不能仅假设为一个机器构建的机器在另一个机器上运行良好。如果您要执行此操作,则IT部门将需要在某个时候进行管理,并且在计算机上出现大量问题之后,他们也不想将其转换为vmware。
  • 有一天,这台机器会变旧,并且需要更多的定期维护或设置标准的更换周期。即使是新服务器,有时也会有烧伤的部分。这种情况几乎总是在IT 崩溃之后出现,从而导致人们无法正常工作。通过尽早对服务器负责,IT可以做得更好,确保您避免将来的计划外停机。
  • 这个人是个人的,但是我可以告诉您,我想通过网络进行的最后一件事是伪装成服务器的另一个桌面。在过去的几年中,我已经处理了足够多的工作,使我终身难忘。

也就是说,IT需要能够支持该计划。他们仅仅说“不”是不够的。挑战他们,提出满足您(非常真实)需求的替代方案。这里唯一的政治情况应该是他们的选择可能会有更高的标价(因为他们正在计划您尚无法看到的成本),因此问题将是谁必须为此付出代价。IT部门不会因为他们没有预算而花钱,但是您会为此感到沮丧,因为这是您目前满意的解决方案花费的6倍。

另外,听起来您可能想先跑步再走路。您想改进您的开发过程。作为前开发人员,我认为那太好了。但是,不要仅仅丢掉一堆VM和“环境”(即:dev,stage,qa等)。规划新流程的外观,即开发人员如何完成工作。您会使用持续集成吗?自动化构建?使用什么软件来支持它们?开发人员将被允许将代码移至生产或暂存阶段,还是仅QA才具有该能力?您需要单独的分期吗?两个开发分支(一个用于vNext,一个用于vCurrent的错误)呢?

您可能只需要一台服务器,以便开发负责人或经理可以解决所有问题,但是如果是这样,则这是第一步,并且需要开发人员实际使用它之前进行设置和初始流程设计。使用。


奇怪的。我编辑帖子并创建了一个欺骗对象:(
Joel Coel11

重复==编辑对我来说也一样,但不是一整天的时间
Mark Henderson

1
这是一个很好的答案-不一定是我想听到的答案,但这恰恰是我来这里提出相反观点的原因。我现在意识到这是对以下观点的一种反应,即人们认为IT无响应,从而无法与他们合作来满足我们的需求。您的想法是:“ IT需要能够支持该计划。仅仅说“否”是不够的。向他们提出挑战,提出满足您(非常真实)需求的替代方案。”
ScottBai 2011年

9

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

没有-主要是因为我没有在组织中扮演管理角色,所以这些“政治事情”中的任何一个都与我无关。唯一能说服我的论点是,允许某些明显违反网络政策并且不受系统运营团队控制和可见度约束的事情是我老板的空白和CYA的来信。

我并不是真的想说“不”,只是从操作团队的角度来看,没有什么好方法可以很好地解决这一问题。

  1. 我们最终得到的服务器是由主要技能集的人管理的,这些人不是在网络上管理整个网络及其相关问题空间不可见的服务器。这不仅仅是“保护”草皮的政治考虑;举例来说,想象一下开发人员出于某种原因打开DHCP时会发生什么。
  2. 我们最终要为他们管理开发团队的服务器。由于相反的原因,这很混乱。开发人员不断感到烦恼,因为我们正在修补此问题(破坏了他们所知道的但我们不了解的东西),或者他们为我们启用功能而出于各种原因而不愿意启用它们。这很快就变成了一个僵局,使运营团队感到负担重,被骚扰,而开发团队却感到沮丧和被忽视。
  3. 这会带来政治后果-因为那时您必须向另一个部门解释为什么开发人员是“特殊的”,以及为什么他们不受网络政策的约束。

2)这仅是开发人员证明技术或业务合理性并确保补丁管理和AV即将发生的问题,还是更多的争取控制权和所有权的政治斗争?

我认为开发人员无需提出业务案例-很明显,开发人员必须进行开发,并且为了做到这一点,他们需要某种开发环境。至于补丁程序管理和AV-这是运营团队的工作,我们将确保已完成。并不是说我们认为开发人员无法做到这一点。只是我们不信任您做正确的事-系统管理员留在系统管理员中,因为他们不信任任何事情可以做正确的事情,所以这不是私人的。当然,有一个明显的政治问题,就是觉得有人在“做你的工作”,但这并不是真正的技术问题,因此不在SF的范围之内。

3)如果有选择,您是希望获得硬件/操作系统的所有权和支持,同时又赋予开发人员本地管理员权限,还是让他们完全对其进行管理,同时确保他们实施补丁程序管理/ AV并在他们引起的情况下承担责任问题?

都不是出于上述原因。

4)如果您成功阻止开发人员对您的基础结构上的“恶意服务器”进行本地控制,那么开发人员是否已做出应有的决定,或者他们(或您)将开发环境移至了断开的VLAN /完全独立的网络?

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

您不想说不,因为开发人员(特别是技术上精明的开发人员)会找到方法来获得他们想要的东西。因此,为他们提供适合他们需求的环境,使他们感到高兴,然后找到某种方法来防止他们在开发环境中所做的任何事情都影响您的业务网络的其余部分。

TL; DR:我将为您提供一台服务器,该服务器具有您希望在单独的物理网络或VLAN上使用的任何虚拟化平台。通过开发团队将控制和监视的单个堡垒主机访问您的开发环境。您如何处理您的业务-不会得到支持,但是如果时间允许,我们会在服务器管理方面为您提供建议和帮助。


这是一个绝妙的答案-我希望我可以接受两个!
ScottBai 2011年

6

如果您来到一台工作站级计算机上,而该计算机装载了消费者级RAM,消费者级HDD,消费者级PSU和消费者级RAID,那么我也拒绝将其放置在服务器网络上。

关于在服务器VLAN上放置类似内容,您需要了解很多内容。

  1. 服务器VLAN很可能是DMZ。在DMZ中,请勿放置任何未经加固和固定的物品。这只是您交给他们的一台机器,他们不知道您对它做了什么。这也意味着定期打补丁和更新,这意味着要进行集中管理。我敢肯定,您将不会登录到每个非托管服务器并手动应用补丁。

  2. 该计算机中的组件将出现故障。我承诺。在6或12、24个月内,这种情况会逐渐恶化。那么,备份在哪里?哦,您没有设置它们?但是,我以为是服务器?哦,这是其他人提供的服务器吗?...然后责备游戏再次开始

  3. 飞机坠毁并撞到风扇时,谁来负责?在大多数组织中,“我把它交给了开发人员来照顾”是不会实现的。

  4. 他们要放在哪里?如今,服务器全都安装在机架上,并且将塔架放置在机架中会浪费空间,并且它们的机架可能不适用于该机架。

因此,IT部门有理由不将这台随机计算机放置在其服务器网络上。

但是,确保您可以正确完成工作是IT部门的工作。他们需要确保您在需要时拥有所需的东西。如果您拥有企业需要保持运行的软件,则他们必须提供一个可以运行的平台。那是他们的工作描述。但是您需要确保他们拥有完成工作所需的信息。

如果您来找我,在我的组织中,告诉我您正在开始一个新项目,我会给您三个VM:Dev,Live和Staging。您将拥有对Dev的完全管理员权限,并且我们将讨论为其他两个工作要做的需求。如果您需要他们的完整管理员权限,并且可以证明其合理性,那么您将获得它。我们的VM部署已被淘汰。VMWare使这一操作变得异常简单-每个VM只需约5分钟即可部署它。

听起来您的IT部门正遭受大公司中每个IT部门所遭受的痛苦。建造小城堡并捍卫他们的生命,不让其他人进入,变得专横等。作为每天与他人IT部门打交道的人,我无时无刻不在看到它。而且令人沮丧。

基本事实是,变更需要在IT部门内部进行,并且必须从其上级发起。而且,如果您使IT部门意识到他们并不是自己的力量(因为他们中的大多数人没有为自己的业务创造收入,那可真是耳光),并且他们在那里可以支持现有员工和增强的业务,那么你会发现,你的问题变得无关紧要,因为每个人都会被打幸福的家庭。


听起来好像在客户端VLAN上,开发人员已经有足够的空间了,但是我同意这种观点。
乔尔·科尔

正确-我们绝不建议在服务器VLAN中甚至在数据中心中使用类似的方法。
ScottBai 2011年

话虽这么说,否则您的答案就如期而至。我现在意识到,这至少是一个问题,至少是认为IT没有响应或没有能力履行其应有的职责。最终,如果IT部门要为管理环境提供Dev(完整权限),测试(仅部署权限),登台(无权限)和现场/生产(无权限),那么对世界来说一切都会好起来的,我们不会不必承担环境管理的额外负担。听起来对我来说是一种更好的方法-现在看看是否可以在未来6个月内发生……
ScottBai 2011年

嗯,那我一定是对问题的第一部分有误解。抱歉!
马克·亨德森

3

为什么要将它添加到域中?换句话说,可以更好地回答这个问题:只要实验室没有连接到公司LAN,您就可以设置一个实验室来完成您想做的所有事情。(如果您需要互联网访问,也许可以得到一个DMZ版本的VLAN;这应该不成问题,尤其是如果仅使用它来进行外出访问,例如下载)。

那是对该问题的许多不同答案中的一个。


通常,在大型公司中,即使它不在LAN上,也无法“建立实验室以完成所需的任何工作”。
ceejayoz

@ceejayoz-对于我来说,如果开发团队在其多维数据集中的现有工作站上建立VM实验室,在我看来,这算是“无论如何”。如果他们想要一个大的Sun盒子,磁带加载器,光纤通道SAN,他们将不得不再经历一些麻烦。
mfinni 2011年

DMZed VLAN最初是计划B,但无论是否喜欢,都有大量的软件和基础架构要求甚至要安装域甚至是有用的域。我想我们可以创建和维护我们自己的域-但这显然属于计划C或D领域-甚至对于靠近真实网络的网线,我当然也不会考虑!
ScottBai 2011年

3

在这里,您将获得很多答案,无论对开发人员具有对环境任何部分的管理员访问权限(可能主要是反对)的支持还是反对,但这都是最重要的:

sysadmin小组的任务是保持生产系统的运行,稳定和安全,并负责确保这些系统提供公司正在付款的服务(因为他们正在为它们付费)所期望的水平。

同样,开发团队的任务是为公司提供服务(Web,应用程序等),尽管位于不同的领域。争夺对开发环境的控制只会适得其反,对任何一方都没有任何用处。

我在小型ISV / ASP上工作。我们有一名开发人员和一名系统管理员(我)。我们建立在相互尊重和信任基础上的关系。我们需要作为一个团队合作,以帮助实现公司的总体目标。我为开发人员提供了对他的开发环境(包括工作站和服务器)的完全不受限制的访问权限。我负责管理开发系统的安全性,更新,视听和硬件,其余部分由开发人员完成。当他的代码准备好用于生产时,他将其交给我,协助我进行所需的任何配置,然后退后一步。我们互相提供互助。

开发人员应该是开发环境的主人,而Sysadmins应该是生产环境的主人,并且要在合理的范围内并进行合理的检查,平衡和控制。当任何一方需要“跨越”时,都应与“当权”政党在其职权范围和指导下进行合作与协调。


1

首先,我的经验严格来说是在较小的组织中,但是这个问题确实在各种规模的公司中都存在,因此...

1.  What arguments have your developers made that won you over to
allow these types of silos to exist within enterprises which have
standard network and security policies in

以我的观点,开发人员唯一需要提出的论据是“我们需要这个”。如果他们首先来找我,我会尽力了解他们的需求,看看我们能解决什么。但是,最终,如果他们说“我们需要这个”,我会给他们带来怀疑和信任的好处,即他们知道自己在做什么。

但这仅仅是开始-这是等式的“专业”方面。“骗局”是我们陷入困境的地方...

2. Is this just a matter of the developers making a technical or
business justification

是的,除了“只是”是一种令人难以置信的轻描淡写,是的,如果开发人员可以提出技术和业务理由,那将不会有问题。SE和其他一些程序员。SE(您的SO问题已移植到那里)指出了您设置的很多陷阱,因此,我不再赘述。如果您想出一个计划来解决所有这些问题以及IT部门考虑的任何其他问题,并证明所有费用合理,那么继续这样做是有意义的。

3.  Given the choice, would you prefer to take ownership and support
of the hardware/OS while giving devs local admin rights,

这是一个初学者,您不能有两个目标和职责不同的小组来尝试管理相同的系统。它不仅会结局很差,而且会开始结局并以流血告终。

(more of 3.) ... or let them manage it entirely, while ensuring that
they institute patch management/AV and charging them with
responsibility should they cause problems?

我认为这已包含在我对2的回答中:这些是技术细节,必须针对这些细节提出解决方案。

4.  If you successfully blocked developers from having local control
of "rogue servers" on your infrastructure, did the developers just
make due or did they (or you) move the development environment to a
disconnected VLAN/entirely separate network?

我同意kce:“气隙”

如果他们能够证明自己承担的额外开销(通过成为其环境的管理员)是合理的,则开发人员可以拥有自己的小型网络,他们可以自由控制,完全可以隔离:没有任何东西可以触及网络的其余部分。因此,他们必须提出更多的技术和业务理由,例如“我们将如何备份关键数据?”。

同样,我必须同意kce:“系统管理员留在系统管理员中,是因为他们不相信任何事情做对了。”我们的工作是使用不可靠的组件构建最可靠的系统,因此,任何包含一半建议的提议经验丰富的系统管理员知道的十几件事简直令人难以置信,这会引起强烈的负面反应。

从这里以及对developer.se的回答和评论中,我认为很明显,您尚未考虑到某些方面。尽管这将花费更长的时间,但我认为您确实需要与您的IT专家交谈并以不同的方式介绍事情:“这是我们需要做的事情,有没有办法将其集成到现有的基础架构和运营中?”


0

在您以及数百万个类似案例中,普遍的问题是:

1)模糊责任-公司员工的行为与其利润之间没有直接联系。他是按月而不是按效果发薪的,效果越难衡量,组织越大。它适用于安全性,管理人员等。如果他们对您的工作进行称职,则不在乎。

2)政策制定者和安全人员通常很少或根本没有编程知识。即使他们愿意,他们也无法理解他们正在使您的工作瘫痪(通常不适用)。

3)在安全部门工作的首选心理特征是偏执型人格或强迫症。这些人到处都可以看到阴谋。如果开发人员想要某种东西(例如新服务器),他们肯定希望使用它来窃取公司数据并将其发布到WikiLeaks中,或出售给朝鲜。


+1对于偏执的性格要求,大声笑这是公司的纯净生活
Stepan Vihor 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.