软件开发和交付已经成为业务各个方面不可分割的一部分,不再是简单的支持功能。现在多数情况是,在开发过程中,大多数人包括业务线上的人员都要等到在特定的环境发布日期来部署代码或进行修复和更新,这种方式在一定程度上降低了生产力。我们都知道需要有一定的工作模式和流程来确保质量和安全,但如何让公司在DevOps操作方面更完善呢?
构建和交付软件应用程序和数字服务的企业都可以从DevOps中受益。主要的区别在于DevOps文化和实践的成熟度。拥有成熟DevOps实践和文化理念的公司不仅能够比那些拥有传统DevOps实践的公司更快地构建和交付应用程序,而且学习和创新也更快。成熟的DevOps功能、工具和文化理念可以通过自动化和简化开发、测试、部署和基础架构管理流程,实现更快的创新。从交付和学习的角度来看,超越他人的能力是一个巨大的竞争优势。
大多数组织都明白这一点,因此一直在努力完善DevOps能力和实践。但最终效果却不尽相同,主要有以下几方面原因。
一方面是资源限制,包括预算、人力和/或系统等。许多公司都有固定的预算,需要在建立昂贵的基础设施(配备每年升级的设备)和其他业务需求之间进行权衡,以获得短期/长期的利益。
多数尚未拥有成熟DevOps 实践的公司需要进行多方面的工作要做。从建立和记录CI/CD流程到创建业务连续性和灾难恢复计划,再到确保他们有合适的人来执行。这些关键要素需要时间、精力、专业知识和预算来整合。虽然每个人都希望自己的团队能够及时完成所有工作,但现实情况是每个人的预算和能力都是有限的。
另一方面是安全交付的复杂机制和交付截止日期之间的权衡。
很多时候,DevOps 功能和自动化的进展被搁置一旁,转而将精力投入到客户需求和交付工作当中。这就需要建立一种平衡团队容量分配的机制,包括一个适当的工作组合,专注于在交付方面变得更加有效和高效(例如,成熟的DevOps功能,改进架构和设计等),并努力满足客户需求。通过这种方式,团队能力的一部分始终可以用于推进DevOps交付功能,而其余的可用于满足客户请求。
如何做到这一点?
从文化开始。当谈到成熟的DevOps实践时,文化是一个关键因素。团队成员需要履行各自的职责,同时也需要着眼于整理的需求。
注重流程。一个不明确、合理的进程不可能取得进展。例如,拥有记录良好且执行良好的 CI/CD 流程对于 DevOps 成熟度至关重要,它可以解决开发人员的痛点,并确保顺利部署流程。一个文档化的过程来建立团队的工作方式,并解决以下问题:关键的团队成员是否参与?在开发/配置/部署过程中是否存在需要考虑的特殊情况?每个人在每个阶段都对流程理解是否相同?
自动化和工具。自动化流程允许DevOps实践每次都能以相同的方式进行,而无需人工干预。组织否拥有并知道如何使用所有成功的DevOps实践所需要的基本工具,例如,持续构建和测试代码规范及安全、源代码控制(例如,GitLab)、环境配置管理、性能度量(例如,负载平衡)),部署痛点是否得到了充分的识别和解决,以防止编码/发布瓶颈?
业务优先级和权衡决策。这是成为一个成熟的DevOps实践重要的方面,平衡团队的能力,包括推进DevOps交付能力,对于建立和保持竞争优势至关重要。优化组织的DevOps能力可以释放和利用团队成员的时间、才能和表现来学习和创新。
正如通用电气CEO杰克·韦尔奇(Jack Welch)曾经说过的那样,“唯一可持续的竞争优势是比竞争对手学得更快,并且能够根据你所学到的知识采取行动。”当一个软件组织变得过于僵化而没有自适应的DevOps优势时,将很快被时代抛下。
添加【开源中国源创君】微信,邀请您进群和更多该领域从业者一起交流。
文章来源:https://devops.com/how-a-mature-devops-practice-can-strengthen-competitive-advantage/
文章转自:https://jishuin.proginn.com/p/763bfbd7f9ed
如有侵权,将第一时间删除文章内容。