DevOps工程师在现代IT中扮演着至关重要的角色。随着应用程序开发和部署方式的变化,组织将寻求具有实践经验以及展示技能的专家。
DevOps工程师正迅速成为领先企业的关键和多面性角色。在没有明确晋升职位的道路上,IT部门必须确定经验丰富的DevOps工程师技能的正确组合。
企业需要高层领导才能成功整合开发,测试,部署和正在进行的操作,并将其作为持续集成,持续部署或DevOps计划的一部分。在DevOps环境中,需要具有特定技能(包括对协作和业务实践的全面了解)的人员来消除传统的孤岛,维护和推进快速发展的软件项目中的最佳实践,并为组织的工作取得最佳业务成果,这导致了DevOps工程师的出现。
DevOps工程师必须具备的基本技能清单很长,要掌握该角色,甚至还需要更多技能。尽管各组织的具体要求各不相同,DevOps工程师需要10种技能-从高科技到软技能。
1.平台熟悉度
IT组织通常围绕堆栈的概念构建-结合主流OS,服务和相关工具集来开发,部署和支持应用程序。堆栈之间经常会有一些重叠或交叉训练。但是,最成功,最有效的DevOps工程师在管理企业当前使用或计划使用的堆栈方面拥有深厚的专业知识。三个主要堆栈是Microsoft Windows Server,Linux服务器发行版和云架构。
Microsoft堆栈通常包括Windows Server 2016和Windows Server 2019等操作系统;管理平台,例如System Center及其各种迭代,包括用于系统级和服务级监视和通知的Operations Manager;支持应用程序,例如MySQL,PostgreSQL或Mongo用于数据库,SharePoint用于协作等。
Linux堆栈基于开源OS内核,并且可能涉及几种常见的Linux发行版,例如Ubuntu,Debian和Fedora。它还包括许多其他开源工具(例如Ansible,Chef和Puppet)以及支持私有云的开源框架(例如OpenStack)。对VM平台(如VMware的vSphere或Linux KVM)以及容器平台(如Docker)的丰富知识也至关重要。近年来,随着虚拟机和容器数量的激增,开源堆栈已引起人们的关注,这使得许可和软件维护协议的成本很高。
公有云选项包括可以补充Microsoft堆栈的Microsoft Azure,以及可以补充Linux堆栈的Google Compute Platform和Amazon Web Services(AWS)。要使用公有或混合云基础架构,DevOps工程师需要对所选云提供商的服务,管理选项和成本结构有扎实的知识。
2.编码能力
不同组织之间的DevOps实践有所不同,但最终,它们涉及通过开发使代码快速进入生产环境。DevOps工程师可能不会编写初级代码,因为这通常留给开发团队,但他们需要了解代码,开发脚本并解决集成问题,例如使代码版本与MySQL数据库对话,在操作端运行部署。 DevOps工程师的技能应包括PHP,Python,Perl,Ruby和其他计算机语言的知识。 DevOps工程师还受益于持续集成管理工具(例如Jenkins,Apache Maven或Apache Ant)的背景。
3.配置和版本管理
速度和流畅性是DevOps文化的标志,代码始终在变化,它需要良好的协作和版本管理技能来评估不断变化的用户需求