是否应该允许开发人员进入生产环境?(转)

在Web开发公司里,有个问题会被一而再、再而三的提出来,这就是:

“是否应该允许开发人员进入生产环境?如果是,允许到什么程度?”

对于此,我的观点是,整体上,应该限制开发人员访问生产环境。在论证我这个观点之前,我想声明一下,我的立场绝对不是基于对开发人员的品质品行的判断——所以请不要往这方面想。首先我要公布一些常见的程序员们不喜欢或讨厌这个观点的论据:

“系统管理员什么都不让我们干,他又解决不了,我们根本没法完成任务。”

如果真是这种情况,那么他们应该是对的。如果是因为没有足够的管理员或管理员不称职,那么瓶颈就会出现。然而,允许开发人员访问生产环境并不是一种 解决方案,因为即使这一回你把问题解决了,以后还是会出现缺少管理员的情况。有时候一些管理上的规章制度会使事情变的繁琐,耽误时间,但我想这时间也不会 是一种不可接受的漫长。

“我们以前就是这么干的。”

创业公司很少一成立就有一些系统管理员。出于某些原因,系统管理员会被认为是一种奢侈品。尽管这种状况在以前是可以的,但随着公司的成长,管理员应 该慢慢增多。事情会变的越来越复杂,这也是公司为什么需要系统管理员的原因。所以说,“我们以前就这么干”的说法并没有多少说服力。

“我们需要进入生产环境解决问题。”

也许是,也许不是。管理员应该能够给你想要的各种信息。如果这个过程成为瓶颈,那么允许有限范围内的访问是合适的。

还有很多的关于限制开发人员访问的讨论,但来让我们把目标转向我真正想讨论的——为什么这是一个好建议。

限制访问的产生由来:

如果开发人员不能够访问生产环境,一个最大的含义就是他们不能自己去安装程序。也就意味这管理员要去为他们安装程序。这其中会发生两件事情:

1)开发人员和系统管理员必须交流——相互的交流!管理员必须学会如何安装程序(我可不希望是由我去解释),这应该是件好事。

2)开发人员必须制作安装文件和编写简单有效的部署步骤说明。这也是很好的事情。能按步骤来重建系统是应对灾难恢复的重要的一部分。
所以,一旦开发人员被限制访问生产环境,我们就能避免那种因为程序过于复杂以致于只有开发人员出面才能部署安装的情况出现。同样,开发人员也避免了把时间浪费在部署和安装程序的工作上了,节省下的时间开发新程序岂不更好。虽然起初他们会多花一点时间,但以后会越来越方便。

这样管理员也能学到更多的关于安装过程中需要备份哪些东西的知识了。即使在管理员对程序不太了解的情况,他们只需对着开发人员提供的文档来执行他们的备份操作。

开发人员所关心的并不一定是系统管理员所关心的:

通常开发人员所关注的安全领域并不一定会是系统管理员所关注的领域。对于Web网站安全,他们只是擅长他们自己特有的领域。诸如跨站脚本攻 击,SQL注入等安全问题是开发人员擅长的,对于系统管理员则不然。诸如账户权限,文件权限,web服务器配置通常不是开发人员擅长的和感兴趣的,而这些 对于生产环境确十分重要的,它们是系统管理员擅长的领域。我对这个领域的见解是越少人访问越安全。还有,这能有效的避免凌晨两点被电话吵醒——因为系统管 理员怀疑你们15个程序员中的某个人在服务器上做了不当的操作。

变更控制:

我不认为一个稳重的程序员会不把变更控制当作重要的事情。因为在程序中经常会有这样的事情。然而,我发现许多程序员却不会慎重的把在服务器上的每次改动都做上日志。(当然我也看到过一些配置文件是有版本控制的)

如果你没有这样做,这意味这生产环境不可能正确的重建。这也意味着如果某些改动导致了问题,对于来解决问题的人却未必能知道这些曾经发生过的改动。这就好像是一个系统管理员打开产品代码,在未通知任何人的情况下修改了程序或提交到产品里。哇,我估计程序员们会抓狂的。

拥有者对其有控制权:

Joel’s Spolsky有句话放在管理工作上很合适:

“每人都有自己的一块领地。是谁的,就是谁的。如果一个管理者或其他人,想插手一个事情的管理方式,他必须保证自己是事情拥有者。拥有者有最终话语权。”

系统管理员通常被认为是生产环境的拥有者。他们是持续跟踪机器运行状态的人,是凌晨2点会被电话叫醒的人,基本上也是和生产环境问题距离最近的人。如果开发人员直接访问的生产环境,那这种管理控制无形中就给破坏了。

系统管理员的职责:

为了能在这种原则下正常的工作,管理员必须完成一些工作。

1)向开发人员们询问他们想从你这得到什么信息,你要很乐意的给他们想要的。

2)确保开发人员在他们自己的空间里有一个好的开发环境。

3)理论结合实践。每个公司都有自己的特殊情况,有些公司由于自身业务的原因决定了开发人员的无访问权限(比如金融类)。然而,即使你那不是个金融 公司,取消开发人员的访问特权的作业制度也是最好的方案。有可能某些开发人员同时担任这系统管理员的工作,所以每个公司都有自己的情况。

就像我在开始时声明的那样,我认为所讨论的问题跟程序员是否优秀无关——有很多的开发人员的技术跟系统管理员一样出色。
我们所关注的更多的是如何在公司的发展中让两种角色的人都专注于自己擅长的领域。也许事情的改变需要时间。然而,最终的目的是让我们有一个更加可靠和安全的生产环境。

[英文出处]:Should Developers have Access to Production?
[中文翻译]:外刊IT评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Web前端开发照相馆网站是指使用Web前端技术(如HTML、CSS和JavaScript)来开发照相馆网站。这通常包括设计和实现网站的用户界面,构建网站的布局和外观,并通过交互元素(如按钮和表单)与用户进行交互。 目标是创建一个具有吸引力和易于使用的网站,以吸引客户并向他们展示照相馆的服务和作品。这可以通过展示照片和详细信息、允许用户在线预约和支付服务等方式实现。 总的来说,Web前端开发照相馆网站是一个重要的营销工具,可以帮助照相馆更好地向潜在客户展示其服务和作品,并吸引更多客户。 ### 回答2: 照相馆网站是一个在线平台,供用户浏览和预订照相馆的服务。作为一个web前端开发人员,我会通过以下步骤来开发这个网站: 1. 需求分析:先与客户和设计团队沟通,确定照相馆网站的具体需求,包括设计风格、功能模块等。 2. 界面设计:根据需求,使用HTML、CSS和JavaScript等技术实现网站的布局和样式。通过正确的结构化和层叠样式表,确保网站在不同设备上的兼容性和响应式设计。 3. 功能开发:根据需求,使用JavaScript等技术实现网站的交互功能,如用户登录、浏览照相馆、预订照相馆、查看评论等功能。通过AJAX技术,实现数据的异步请求和交互。 4. 图片处理:针对照相馆网站,图片是一个重要的元素。使用图像处理技术,如压缩图片大小、裁剪图片等,以提升网站的加载速度和用户体验。 5. 数据存储:使用后端技术,如数据库,将用户信息、照相馆信息和订单信息等存储到服务器上,并确保数据的安全性和机密性。 6. 网站测试:在网站开发的各个阶段,进行测试,以确保网站的稳定性和功能完整性。测试包括功能测试、性能测试、兼容性测试等。 7. 上线部署:在完成开发和测试后,将网站部署到生产环境中。确保网站的可用性,及时进行备份和更新,以确保网站能够稳定运行。 通过以上步骤,我将可以实现一个功能完善、美观大方的照相馆网站,为用户提供便捷的在线预订服务,提升照相馆业务的效率和用户体验。 ### 回答3: 照相馆作为一种重要的服务业,今天已逐渐进入了互联网时代。开发一个功能完善的照相馆网站对于吸引潜在顾客和提高客户满意度具有重要意义。 首先,一个好的照相馆网站需要具备吸引人的外观设计。通过精美的界面布局和独特的视觉效果,能够吸引用户的眼球,提升用户体验。同时,要保证网站的响应速度和稳定性,确保用户可以流畅地浏览和使用网站。 其次,照相馆网站需要提供多样化的服务和功能。用户可以在线预约拍摄时间、选择拍摄场景和服装等,并可以提前了解照相馆的服务价格和套餐信息。网站还可以提供照片修饰和后期处理等增值服务,让用户可以在网站上完成整个照片的处理和打印。 此外,用户的互动和社交功能也是一个好的照相馆网站中必不可少的部分。用户可以在网站上发布自己的照片作品,与其他用户和摄影师进行交流和分享经验。还可以设置用户评价和评论功能,提供给其他用户参考和选择。 最后,照相馆网站需要具备良好的搜索引擎优化(SEO)能力。通过合理的关键词排名和内容优化,提高网站在搜索引擎上的可见性和排名,吸引更多的流量和潜在客户。 总之,开发一个功能完善的照相馆网站需要考虑外观设计、多样化的服务和功能、用户互动社交和搜索引擎优化等方面。通过精心设计和开发,能够为用户提供便捷、高效和个性化的服务体验,提升照相馆的品牌形象和竞争力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值