SysAdmin和开发人员:职责[关闭]


26

当涉及生产型Web服务器时,系统管理员和开发人员职责的最佳实践是什么?具体来说,我正在考虑更新/安装软件。(据我了解,开发人员不应在生产服务器上具有root用户访问权限。)

因此,生产网络服务器正在运行Wordpress,并且需要将其更新到最新版本。谁负责更新它?

如果开发人员在应用程序上具有自定义的黑客插件或自定义的核心文件(在此示例中为WP),该怎么办?


2
插件上的开发人员文档在哪里,核心文件的备份在哪里?上次在您的开发环境中测试备份和文档是什么时候?
ForgeMan 2009年

基于角色的特权呢?为他们提供安全,经过审核的访问权限,而无需破坏服务器。
allruiz

Answers:


21

我发现,在大多数情况下,如果您是负责物理服务器的人员,则最好不要授予开发人员根访问权限。

这是一场“圣战”辩论,因为我相信您会发现不同意的开发人员。我个人一直在辩论的双方。

我不给开发人员(甚至100%值得信赖的开发人员)根访问权限的主要理由是,通常,他们需要一些软件包才能使XYZ正常工作。他们继续安装它...或重新配置已经存在的东西以便它可以工作...或...很好...您明白了。

几个月过去了...服务器需要重新安装或重新创建...突然之间没人知道为什么“它可以在旧服务器上工作,而不能在新服务器上工作”。

当然,答案是您要查看的文档并不包括开发人员为使系统在首次运行时所做的所有小包装和调整。

双方的a $$可能很痛苦...但是如果sysadmin负责服务器,软件包和文档...而开发人员负责开发和软件...我想您是最终会发现它值得。

如果开发人员需要自定义插件,模块,配置,调整...没问题...为他们做...但是要记录文档,以便您下次可以重现。


那么,如我所描述的情况如何,不需要root访问权限即可更新应用程序(如Wordpress)。谁应该负责更新它?
乔什·布劳

在那种特定情况下,它基本上是政治(即管理决策)。在我的组织中,将由sysadmin负责保持服务器的修补程序最新,并在这种情况下使Wordpress保持更新。系统管理员的工作是确保服务器安全。在我看来(尤其是这些天)让Wordpress保持最新是其中的一部分。
KPWINC

如果您在托管公司拥有托管服务器,则它们不太可能涵盖Wordpress。经验法则是,谁负责安装该软件。Aysadmins将安装OS,Web服务器等。开发人员将安装Wordpress。
ollybee

16

黄金法则:不要让非管理员触摸您不希望破坏的任何东西,否则您将承担责任。

开发人员应有权访问测试环境。一旦将他们的工作准备好投入生产机器,就应该将其移交给系统管理员。如果开发人员完成了他们的工作并正确记录了该程序,那么一切都会顺利进行。如果不是这样,他们需要踢后腿以进行不充分的测试。


5
阿们!让开发人员离开的一种神奇方法...问“它在开发环境中是否有效?” 或“您的构建表在哪里?”
ForgeMan 2009年

12

我也参加过这场战斗。我的回答是,负责服务器正常运行时间的人是负责所有更新,更改等的人。Nobodoy其他人应具有在服务器上执行这些类型的功能的能力。如果您要确保服务器已启动并正在运行,而老板要让您对服务器负责并承担责任,那么维护和保护服务器便是您的责任。

大多数开发人员都会告诉您,他们需要对服务器具有管理员级别的访问权限,而大多数人会与我不同意,但是我是当挂机时必须在凌晨2点重新启动它的人,之后必须对其进行重建如果更新失败,则由我的部门等负责停机。等等。我必须就任何影响我们SLA的事情向CIO做出答复,因此,我是唯一获得管理员级别服务器访问权限的人, m负责所有组件,更新,更改等。


这里!这里!:-D 2-3 am不是一个有趣的时间来应对一些奇怪的变化。(在那儿看到了... visudo解决了它)。
ForgeMan 2009年

1
我真的很喜欢这样的想法:“由家庭来负责服务器的正常运行是应该负责所有更新,更改的人” —这很有意义。
乔什·布劳

1

我100%同意。开发人员大多数时候都不了解syadmin的工作方式。如果他们需要什么,他们会问您,仅此而已。您考虑如何以及何时提供它们可用的软件包。(就像他们需要发送电子邮件一样,您就是那位配置postfix的人)。而且,他们倾向于认为在大多数情况下,如果他们无法通过普通访问来进行访问,则root访问将使事情正常运行。我同意这里的其他人,当您看到问题时,他们不会在凌晨2点与您同在。几周前我收到了这个案例,一个开发人员想更新他的wordpress。我告诉他RTF更改日志,对他来说那没用,更新过程是通过漂亮的界面进行的。好了,更新没有用,我保存了他的应用程序,我做了备份脚本,而不是他。没有我,他将无法还原该站点。


1

有一种趋势模糊了开发人员和运营人员之间的区别。使您的开发人员成为系统管理员,再让您的系统管理员成为开发人员。

从这个意义上讲,WordPress可能会受益于博客自动(和程序化)提供的一些工作。许多wordpress用户维护着不止几个WP / WPMU实例,并且及时更新它们至少很麻烦。

您可以在Agile 2009的Agile Infrastructure幻灯片上找到有关该哲学的很好的(有趣的)概述。


1

开发人员不应扎根于生产;除开发人员外,其他所有人都对此表示同意。但是开发人员可以吃点蛋糕也可以吃。没有人明确提到这一点,我感到有些惊讶:

我的一个非常长时间的小型企业客户中有一个安装了Drupal的网站,几个WordPress网站,一个SMF论坛以及一些其他随机的小型Web应用程序。我是合同系统管理员(出于历史原因,在需要时也会更新/破解WordPress和SMF),并且我的客户有自己的合同Drupal开发人员。该环境是公共云提供商上的多个VMware虚拟机。

开发人员确实希望拥有root访问权限,并且需要它。例如,编写nginx重写规则以使其所有自定义Drupal东西起作用是他们的责任。但是我绝对不能给他们根生产服务器的根访问权限,而我的客户对此表示同意。

因此,我们做出了让步:他们在测试Web服务器上获得root用户访问权限(除了其IP地址且与同一云相同,该访问权限通常与生产服务器相同)。像生产一样,它具有etckeeper,因此我可以看到他们需要进行的任何更改以及安装的任何软件包。然后,我可以将更改投入生产,也可以告诉他们他们想做的事情出了什么问题。如果他们真的搞砸了(他们还没有,谢谢gawd),我可以轻松地恢复他们的更改。

他们根本无法访问生产数据库服务器。他们甚至没有用户登录名。只有我和我的客户。

(Web应用程序本身,他们直接使用git进行部署,如果将其破坏,则可以修复它并向我的客户解释为什么他们应该继续担任他的开发人员。尽管我的客户会在此类电子邮件中抄送我,所以我可以嘲笑他们或脸蛋。)


0

根==系统管理员。

用户==开发人员,DBA或用户。

当服务器关闭时,Root不会休眠,Root保护用户免受自身侵害,Root保护用户的数据免受网络侵害,Root将服务器的运行状况置于所有用户之上。服务器脱机时,根的屁股就挂了。服务器开心,root开心!

计划外停机的常见原因:用户,环境中未记录的更改以及反铲。服务器完全按照告诉他们的做法,即不会随机中断。您问的是黑客,而不是它是不是,它是何时...因此需要“ root”。

00:33 CDT您知道备份和灾难恢复文档在哪里吗?:-p


0

系统管理员应具有管理员访问权限(就像标题中所述)。没有其他人需要访问生产服务器。如果开发人员需要对生产系统中的问题进行故障排除,则该问题应在开发环境中可重现。如果不是,他们可以与sysadmin坐下来浏览系统。

开发人员不喜欢无法接触生产,但这还不可行。要做的工作是编写软件并将其交给生产版本的sysadmins。如果他们正确地记录了所有内容(请记住,在大多数商店中,文档是一个肮脏的词),则发布应该可以正常进行。

在美国的上市公司中,您需要处理SOX,HIPPA等。这些被抛弃的法规中的大多数实际上有助于解决这一问题。SOX规定了职责分离,这要求开发人员在生产系统之外放手。


“开发人员不喜欢接触生产”。那里不应该有一个“ not”吗?;)
John Gardeniers 2009年
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.