我们了解该方法的本质是什么,它可以使谁受益。
我们还将讨论DevOps专家:他们的任务,薪水和技能。
Matt Moor / Flickr / CC BY-SA摄什么是DevOps
DevOps是一种软件开发方法,其任务是建立公司中程序员与系统管理员的互动。 如果来自不同部门的IT专业人员不了解彼此任务的本质,那么将延迟为他们发布新应用程序和更新。
DevOps形成了一个“无缝”的开发周期,从而有助于加速软件产品的发布。 通过引入自动化系统可以实现加速。 另外,程序员开始参与设置服务器并查找错误,例如,他们可以编写自动化测试。
因此,建立了部门之间的交互。 员工在落入用户手中之前开始更好地了解软件产品经历了什么阶段。
当开发人员了解管理员在设置服务器时面临的问题时,他将尝试消除代码中可能出现的“尖角”。 这减少了部署应用程序时的错误数量-根据统计数据,它
减少了大约五倍。
谁需要和不需要方法
许多
IT专家认为 ,DevOps将使任何开发软件的组织受益。 即使该公司只是IT服务的简单使用者并且不开发自己的应用程序,这也是正确的。 在这种情况下,DevOps文化的实施将有助于专注于创新。
启动
是一个例外,但是这里的一切都取决于项目的规模。 如果您的目标是发布最低可行产品(MVP)来测试新想法,那么无需DevOps就可以做到。 例如,Groupon的创始人在服务工作之初就亲自
将所有要约发布到网站上并收集了订单。 他没有使用任何自动化工具。
仅当应用程序开始流行时,实施方法论和自动化工具才有意义。 这将有助于建立业务流程并加快更新的发布。
如何实现DevOps
此外,一些向新方法过渡的建议。
识别业务流程中的问题。 在实施方法之前,请突出组织的目标和问题。 切换到DevOps的策略将取决于它们。 为此,请列出问题列表,例如:
- 更新软件最多需要什么时间?
- 是否可以自动化此过程?
- 组织的结构会对其产生影响吗?
有关确定组织中问题的详细信息,
可从该方法的作者的“
Project Phoenix”和“
DevOps Guide ”
一书中找到 。
改变公司的文化。 重要的是说服所有员工改变其通常的工作方式并扩大其能力范围。 例如,在Facebook上,所有程序员
都负责应用程序的整个生命周期:从代码编写到实现。 同样在Facebook上,没有单独的测试部门-测试由开发人员自己编写。
从小开始。 选择发布更新时花费最多时间和精力的过程,并将其自动化。 这
可以是测试或应用程序部署过程。 专家
建议,首先要实现分布式版本控制工具。 使用它们,可以更轻松地管理源。 在这些解决方案中,最著名的是Git,Mercurial,Subversion(SVN)和CVS。
还需要注意负责最终产品组装和测试的持续集成系统。 此类工具的示例包括Jenkins,TeamCity和Bamboo。
衡量改进。 制定嵌入式解决方案有效性的指标并创建清单。 指标可以是发布的频率,在软件功能上花费的时间以及代码中的错误数量。 不仅与管理人员讨论结果,还与项目中其他团队讨论结果。 询问缺少哪些工具。 在进一步优化流程时,请牢记这些要求。
对DevOps的批评
尽管这种方法
可以帮助组织更快地做出有关应用程序开发的决策,
减少软件错误
的数量并鼓励员工学习新知识,但它也有批评者。
相信程序员不应该了解系统管理员的工作细节。 据称,DevOps导致这样一个事实,即公司中出现的人不是对开发或管理的专家,而是对表面的一切都了解的人。
人们还认为,DevOps
不适用于管理不善的公司。 如果开发人员和管理员团队没有共同的目标,这就是没有组织团队之间交互的经理的过错。 为了解决这个问题,我们不需要新的方法,而是需要一个基于下级反馈来评估经理的系统。 在这里,您可以阅读
员工调查表中应包含哪些问题 。
图片Ed Ivanushkin / Flickr / CC BY-SA谁是DevOps工程师
DevOps工程师正在实施DevOps方法。 它同步了创建软件产品的所有阶段:从编写代码到测试和发布应用程序。 这样的专家控制着开发和管理部门,并通过引入各种软件工具来自动执行任务。
DevOps工程师的功能是它结合了许多专业:管理员,开发人员,测试人员和经理。
虚拟化软件公司VMware的DevOps传播者Joe Sanchez
概述了DevOps工程师必须具备
的许多技能。 除了对DevOps方法学有明显的了解外,该人员还应该具有管理Windows和Linux的经验,以及使用
Chef ,
Puppet和
Ansible等自动化工具的经验。 他还应该能够用几种语言编写脚本和代码,并了解网络技术。
DevOps工程师负责与应用程序的配置和部署有关的所有任务自动化。 软件监视也落在他的肩膀上。 为了解决这些问题,他使用各种配置管理系统,虚拟化解决方案和云工具来平衡资源。
谁雇用
DevOps工程师可以使业务涉及开发应用程序或管理大量服务器的任何组织受益。 亚马逊,Adobe和Facebook等IT巨头正在
招聘 DevOps工程师。 他们还为Netflix,沃尔玛和Etsy工作。
仅初创公司
不雇用 DevOps工程师。 他们的任务是发布最小可行的产品来测试新想法。 在大多数情况下,初创企业可以不用DevOps。
他们付多少钱
DevOps工程师在业内
收入最高。 这类专家在世界范围内的平均年薪为100至12.5万美元。
在美国,他们每年
可获得 9万美元(每月50万卢布)的
收入 。 在加拿大,他们
的年薪
是 122,000美元(每月67万卢布),在英国,他们
的年薪是67,500英镑(每月49万卢布)。
至于俄罗斯,莫斯科公司
准备向DevOps专家每月支付100至20万卢布。 在圣彼得堡,雇主要慷慨一些-他们每月提供160-36万卢布。 在该地区,月薪为100至12万卢布。
如何成为DevOps专家
DevOps是IT领域中一个相对较新的方向,因此没有针对DevOps工程师的既定要求列表。 在空缺中,此职位的要求包括Debian和CentOS的管理技能以及使用磁盘
RAID阵列的能力。
基于此,我们可以得出结论,首先,DevOps工程师必须具有良好的技术前景。 对于这样的人来说,不断学习新的工具和技术很重要。
成为DevOps工程师的最简单方法是对系统管理员或开发人员。 他们已经具有许多仅需要开发的技能。 主要任务是加强对DevOps的最少了解,了解如何使用自动化工具并填补管理,编程和虚拟化技能的空白。
要了解仍然缺少知识的地方,可以使用
GitHub上的
迷你维基百科或
思维导图 。 Hacker News的居民还
建议阅读《
Phoenix Project》和《
DevOps Guide》 (我们在上文中提到)和《
DevOps Philosophy》。 “ IT管理的艺术 ”由O'Reilly Media签名。
您还可以订阅
Devops Weekly通讯 ,从DZone主题
门户网站阅读文章,并开始在
Slack聊天中与DevOps工程师
聊天 。 还值得探索有关
Udacity或
edX的免费课程。
来自我们博客的帖子: