5

实践 DevOps 时,可能面临的六大挑战

 2 years ago
source link: https://blog.51cto.com/u_15327851/5398712
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

实践 DevOps 时,可能面临的六大挑战

原创

SoFlu软件机器人 2022-06-21 09:41:47 ©著作权

文章标签 基础设施 软件开发 软技能 DevOps 文章分类 敏捷开发 软件研发 阅读数170

DevOps 是将人员和部门聚集在一起,专注于创建一个统一的系统,将开发和运营的任务和目标结合起来。随着越来越多公司采用 DevOps 流程,实践过程中遇到的各种问题也逐渐浮出水面。因此,任何一家要实践 DevOps 的公司,都应该关注这六个领域,以此来减少各种不利因素对软件开发和部署周期的影响。

1. 没有正确的文化理念

DevOps 文化是关于开发人员和运营人员之间的共同理解,以及对他们构建的软件的共同责任。因此, DevOps 要发挥作用,拥有正确的文化是关键。这意味着,可以提高开发、IT / 运营和 “业务” 之间的透明度、沟通和协作效率。

DevOps Institute 公司的 CEO Jayne Groll 曾表示,虽然部署和优化基础设施会减慢开发和运营速度,但团队如果没有正确的文化理念,可能会导致项目崩溃。

持续交付服务提供商 CloudBees 的 DevOps 传播者 Brian Dawson 也认为,一家拥有正确文化的公司,可以克服任何基础设施和技能问题。

2. 重技术忽视软技能

成功的 DevOps 工程师不仅是出色的问题解决者,还是出色的沟通者和领导者。随着 DevOps 逐渐由人工智能统治,软技能将变得更加关键。因此,很多公司在招聘 DevOps 人才时,会优先考虑软技能 —— 例如协作能力、解决问题能力和人际交往能力。

对公司而言,员工是否拥有协作、学习和解决任何问题的意愿是很重要的,但是除此之外,同时还应该具备自动化技能,比如基础设施知识、对流程的软件开发、源代码控制和分析。当然,要找到完全符合要求的人才并不容易。因此,如果要在一个拥有强大的文化和人际关系能力的人,和一个拥有某项专业技术的人之间做出选择,选择前者带来的效益往往会更高。

3. 自动化工具过多成为累赘

DevOps 的关键是自动化。由于 DevOps 跨越 Dev、Ops、IT、安全和产品团队,以及软件开发的不同阶段,因此有大量工具可供选择。比如,版本控制 & 协作开发工具 GitHub、GitLab、BitBucket ,自动化构建和测试工具 Apache Ant、Maven 、Selenium,持续集成 & 交付工具 Jenkins、Capistrano、BuildBot,以及部署工具、维护工具、监控,警告 & 分析工具等等,琳琅满目不下百种。

但这对于亟须进行数字化转型的传统企业来说,并非是件好事。过多工具本身导致了新的管理问题,如确认工具版本是否符合项目要求,甚至出现了管理这些工具的工具。因此,在寻求自动化,选择自动化工具或平台时,更应该从多个方面衡量该平台是否适合,是否能真正地实现降本增效。

4. 变更决策进展缓慢

DevOps Institute 的 Groll 表示,软件变更的流程和基础设施也已成为影响公司效率的主要因素。“我们谈论的是持续部署和持续交付,但大多数组织都希望提前两周发布变更公告。因此,我们所说的、我们想要的与现实之间存在脱节。”

通常,公司将更新分为三类:标准变更、正常变更和紧急修复。正常变更是进行软件更新的典型过程,而标准变更是无需预先批准或至少可以加急进行的更改。然而,Atlassian 的 Buchanan 表示,借助 DevOps 中的自动化,应该能够更快地进行更多变更。

“标准是新常态。随着所有这些自动化的进行,可以进行标准变更 —— 预先批准、易于理解、低风险、明确规定 —— 因为我们知道这些流程是如何工作的。”

—— Ian Buchanan

5. 方向错误

对于大多数践行 DevOps 的公司来说,从低水平的自动化,扩展到难度更高的基础设施项目时,往往会迷失方向。比如,有的公司会创建一个专门的功能团队来支持 DevOps 的实施,然而这会带来更多的潜在风险。事实上,公司要做的不是扩张职能团队,而是应该选择允许他们快速扩展业务的基础设施。

大型国有企业中国石油,为了开发一个大型电商平台,聘请了外部团队进行开发,同时选择了一个开源电商软件进行二次开发。但商城上线之后,问题频出。之后,中国石油选择使用 SoFlu 软件机器人对商城进行系统重构,SoFlu 是一款通过人机协同,自动完成软件后端开发、前端开发、测试、运维,帮助开发者实现 “一人一项目,十人抵百人” 的软件机器人。在 5 个 SoFlu 软件机器人的协助下,中石油信息化团队仅投入 9 位研发人员在 45 天内就完成了商城的系统重构。而且,测试过程表明,平台的稳定性过关,且该电商平台可以根据企业的需求,独立部署到任何平台。所有数据企业均可自行存储,同时平台本身的安全规范,保证了数据的安全性。

可以看到,选择一个优质的基础设施平台来提高自动化水平,要比开设专门的职能部门更加有效。

6、技术债务正在累积

技术债务是一个不得不重视的话题。根据 DevOps 工具和服务提供商 Atlassian 发布的一项研究显示,近四分之三的开发团队花费大量时间更新和升级软件,有的甚至要浪费每周工作时间的 50% 。

同时,技术债务还给公司带来了很多不利因素。OutSystems 的一份报告表明,“大多数 (69%) 的 IT 领导者表示,技术债务对他们的创新能力构成了根本性的限制,61% 的人表示这拖累了公司的业绩,64% 的人同意它将继续对未来造成影响。”

如果企业拥有适当的 DevOps 流程和自动化能力,至少会在一定程度上减少技术债务的堆积。CI/CD 流程中体现的自动化,例如自动化测试和自动化构建,有助于及早识别技术债务,进而有助于持续偿还债务。同时,自动化执行的质量标准也有助于减少技术债务。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK