当前位置: 首页 > 科技观察

开启DevOps之旅的关键点是什么?

时间:2023-03-16 10:44:06 科技观察

想要实施DevOps却不知如何下手?本文将带您深入研究DevOps的关键概念和最佳实践。DevOps的起源一般认为,DevOps的出现源于两个因素:敏捷软件方法的广泛采用以及IT基础设施和代码的管理方式。我们先来看看敏捷软件开发方法论。20世纪末,主流的软件开发方式是所谓的瀑布模型,耗时长,适用于不需要快速产品交付的大型信息系统。这种模式可以确保高质量的产品和细粒度的成本控制。20世纪90年代,随着互联网和Web技术的发展,瀑布模型的负面影响开始显现:如何在不降低产品质量的情况下按时交付满足不断变化的客户需求,变得异常困难。因此,IT管理方式也需要相应转变,逐步从以IT系统为中心转向以IT服务为中心的管理模式。2000年以来,这些新兴的管理实践在被先驱项目采用后成为所谓的最佳实践,一些最佳实践进一步被业界广泛接受甚至成为标准。我们以IT服务为例。20世纪80年代开始出现这样的想法:信息技术以服务的形式提供价值,以流程的形式组织IT活动。随后,ITIL(ITInfrastructureLibrary)被阐述,使这些实践成为最佳实践的清单,并在2002年成为IT服务管理的第一个标准。今天,新兴的实践被贴上了DevOps(开发+运维)的标签。事实上,DevOps的内涵已经大大超出了原意。那么DevOps到底是什么?什么是DevOps?随着新的客户交互方式的出现,以及敏捷开发技术的全面应用,业界迫切需要一种新的IT管理方式。以虚拟化和云计算技术为支撑的基础设施即代码的出现,为新的IT管理方式的出现提供了契机,DevOps这种基于敏捷软件开发和精益生产演进的IT管理新方式应运而生。DevOps是敏捷软件开发和精益制造思想的演变,应用于IT端到端价值链,得益于文化、组织和技术变革,使企业能够通过现代信息技术业务需求实现更多期望并更快地满足用户并提高资源利用率。首先,DevOps是敏捷软件开发和精益实践的演变,是吸收而不是替代。其次,DevOps应用于IT端到端的价值链,其本质是:DevOps考虑的不仅仅是软件开发,而是整个价值链。整个价值链从业务利益相关者的新想法开始,经过需求分析、设计、开发、测试和部署,到运维,最后交付给客户。端到端的价值链方法有助于从整体上分析、识别和消除瓶颈。为什么采用DevOps?首先,实施DevOps是企业提高产能和效率的必然选择,可以大大提高新产品或新应用的上市时间。传统企业推出新产品需要相当长的时间跨度。对于响应的IT部门,这一次可能包括以下环节:为一个或多个商业想法构建和起草提案,以及商业论据;评估和选择实施的商业理念;规划实施所需的行动,获得资金;人员和业务流程准备;同时进行需求规格说明、原型开发、初始测试、全功能IT系统开发、全面测试、发布和部署;同步营销活动、市场准备、销售渠道和工具的准备;推出新产品或服务。上述过程需要数年时间,但企业希望将其缩短至数月。拥抱DevOps的原因很明显。创造数字产品的充满活力的公司习惯于快速行动。他们更喜欢可以安全失败的实验,而不是严格、详细的计划。在这一点上,过程可能是这样的:建立假设,开发验证方法;假设的实际实现;结果评估、A/B测试、与目标比较;根据分析进行调整,返回步骤1或2。很容易将此视为一个周期,预计持续数周。这就是小跑快跑的策略。如此快速的步骤是必要的,因为DevOps的本质是持续发现。最终状态是不可知的,指定长期计划没有意义。为了最大限度地缩短上市时间,DevOps提供了多种技术:减少批量大小;减少切换次数;持续识别和消除损失;自给自足的团队,针对成本优化的传统IT部门,针对速度优化的DevOps;自动化。其次,减少技术债务也是企业拥抱DevOps的一大原因。当团队成员选择非最佳方式解决问题以减少开发时间时,就会产生技术债务。这是一个自然过程。问题在于,积累的非最优解导致开发产出逐渐变差,必然导致产品质量下降。DevOps不断重构程序代码,重视在运行中获得的经验,鼓励不断识别和消除瓶颈,并认为这些任务和技术创新与开发新的产品功能一样重要。同时,DevOps强烈推荐“尽可能多地面对问题”的做法,以防止问题“停滞”,即每个人都知道但没有人能处理的情况。除此之外,采用DevOps可以帮助企业排除脆弱性。通常,组织中最关键和与业务相关的系统最容易受到攻击。DevOps可以用最激进的方式改变脆弱性,彻底消除它;在DevOps中,代码和系统作为一个整体在某一点上是功能完备的,如果下一次更改破坏了性能,则必须立即回滚并让系统继续正常工作;DevOps的实践,故意将混乱和不稳定引入生产环境,目标IT系统必须以独立和快速的方式响应,检测故障并恢复正常运行,理想情况下最终用户不会意识到这一点,并且当然数据不会丢失。DevOps的常见误解常见误解一:“DevOps只是敏捷思想的延续”。在实施DevOps之前,企业首先要明确DevOps不仅仅是敏捷的一部分。虽然DevOps主要基于敏捷,但它将敏捷开发扩展到通用的敏捷IT交付,跨越整个组织、整个流程和完整的价值链;要获得DevOps的回报,公司需要做的工作比敏捷过去所做的要多得多。进行重大的文化变革;DevOps目标集不仅限于加速交付:还需要减少技术债务和消除脆弱性。常见误解二:“工具可以给你终极的DevOps”。其次,我们需要认识到DevOps是一系列组织文化和工作方式的改变,而不仅仅是工具和自动化。虽然个别软件解决方案已被广泛接受,但没有也不可能有完整的DevOps必备软件列表;DevOps依赖于已建立的自动化工具的可用性和有效性。但严格来说,这些工具的最小集合可以简化为一个版本控制系统,用于存储所有源代码、IT基础设施配置数据、软件交付管道自动化系统;任何具体的DevOps实施都需要从企业自身的组织情况出发,专业的商业厂商可以帮助企业快速理清流程,加速组织变革。常见误区三:“DevOps是全能战士,会写代码、会测试、会部署环境、会管理基础设施”最后,我们需要明白DevOps并不是一个新职业。DevOps是一种对IT部门的基础具有深远影响的变化。它不是通过招募一些DevOps工程师或邀请DevOps专家来实现的;实施软件交付管道的能力并不能保证成功;应用DevOps的实践,可以立即节省成本,但从长远来看,是在为更大的降本增效做准备。因此,选择一家技术实力雄厚、实践经验丰富的厂家非常重要。