当软件开发人员与运维工程师一起工作时,他们双方都并不清楚对方的工作性质与感觉,但是这两种职位有一定的相似性。软件开发人员负责构建和维护软件,而运维人员则负责保证软件的正常运行。开发人员构建的软件主要面向客户或最终用户,而运维工程师构建的软件则通常面向本部门或本公司的其他工程师。然而、在源代码方面、软件工程师与运维工程师之间已经不存在绝对的界线。现今的系统操作员不能只知道如何修改配置和维护文件系统、他们已经被新型工程师所取代:既要能开发新应用、又要能胜任运维工作并保证软件的高效运行关于运维人员与软件开发人员之间的关系,20年前与现在相比有什么不同(在发布、故障修复和协作方面)?
一开始、我在一家小公司担任顾问职务、主要负责编写代码、安装操作系统与软件及管理数据库服务器。我以前从未写过代码,但是我有运行Uuix工作站的经验,所以一开始运维工作对于我来说比较轻松。后来,我们增加了一个职责更清晰的运维团队;然而,他们似乎更关注于网络、操作系统和数据库管理员方面的工作。
这两个团队的关系总是很微妙。我记得,有一位高级开发人员总是在一个窗口上运行Unix的w命令,一旦看到有管理员登录他的设备并准备安装补丁时,他就会马上关闭网络服务!他真的不希望有人搞乱他现有的环境。我认为,这个分界线在20年前和现在的变化并不大,但是我们所在环境的规模与复杂性,以及所处的公司文化都发生了很大变化。我曾经在一些拥有大规模服务器群的站点工作,其中运维团队只负责管理操作系统,而开发人员则负责所有其他事务。在其他一些环境中,开发人员与运维人员也有严格的职责划分。
作为开发人员,您对开发运维(Devops)有什么看法?
在很多方面,我认为它实际上是“开发开发”(Devdev)。似乎很多以前属于运维人员职责范围的工作都转移给了开发人员。我认为这是个正确的转变。如果一位开发人员能够编写软件,那么他一定也要能管理软件在生产环境的运行,而如果将这项工作转交给运维团队,其代价会更高,也更容易出现错误。避免了工作转移,也就避免了问题,而且开发人员也能够继续负责管理自己编写的软件。如果他们会在半夜因为软件出现意外问题而被人叫醒,那么他们一定会去努力修复这个软件问题,因为他们肯定不愿意总是在私人时间里被人打扰。如果不经历这样的痛苦,他们就不会有动力,就体会不到好好对待同事的好处,也就不会认真地开发出好的软件。此外,举例来说,任何只懂编写Java代码的人肯定不会认真提高自己的工作质量,而我是肯定不会招聘这种人的。
开发运维是否与敏捷相似?
它们在很多方面有相似性。敏捷提倡团队合作,推崇分担责任。通常,人们认为这种方法要求开发人员不断地切换角色,然而敏捷方法则通常将QA视为敏捷团队的内在特性。可以这样说,开发运维将运维带到敏捷中。
系统管理员能够给开发人员的最大帮助是什么?
访问、数据和稳定统一的环境。例如,来自不同主机的Hadoop用户应该拥有一个稳定不变的用户D。系统管理员要像开发人员对待代码样处理基础架构和配置,并且要使用一种测试框架去测试软件的修改如Cucumber测试框架。
在与运维人员协作时,开发人员最应该注意的是什么?
网站建设开发人员一定要记住,如果出现了问题,那么有90%的可能性是开发人员自己的错误。
>>> 查看《网站建设软件工程师眼里的开发运维》更多相关资讯 <<<
本文地址:http://www.phpweb.com.cn/news/html/4480.html