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