企业应用现代化之 ​IT架构师必读的DevOps落地行动指南

想要落地DevOps却不知道如何入手?本篇文章将带你深入学习关于DevOps的关键概念及最佳实践。


DevOps的起源

一般认为,DevOps的出现源于两个因素:敏捷软件方法的广泛采用以及IT基础设施及代码的管理方式。

我们先看敏捷软件开发方法。20世纪末,主流软件开发方法是所谓的瀑布模型,需要花费大量时间,适用于对快速产品交付需求不大的大型信息系统,这个模型能够确保产品的高质量和精细的成本控制。


20世纪90年代,随着互联网和Web技术的发展,瀑布模型的消极作用开始显现:如何满足不断变化的客户需求的同时,还要按时交付同时不降低产品质量,就变得极为困难。    


因此,IT管理方法也需要随之变化,逐渐从聚焦IT系统逐渐转变为聚焦IT服务的管理模式。


从2000年开始,这些涌现出来的管理实践,被先行者工程采纳之后,成为所谓的最佳实践,有些最佳实践进一步被业界广泛接受,甚至成为标准。


我们以IT服务为例,20世纪80年代,这样的想法开始出现:信息技术以服务的形式提供价值,以流程的形式组织IT活动。随后ITIL(IT基础设施库)等被阐述出来,使得这些实践进入最佳实践之列,在2002年成为IT服务管理的首个标准。


如今,新涌现出来的实践,被打上DevOps(开发+运维)的标签。实际上,DevOps的内涵,已经大大超出了原始含义。那么究竟什么是DevOps呢?

何为DevOps?

               
随着与客户交互的新方法的出现,以及敏捷开发技术的充分应用,业界迫切需要一种新的IT管理方法。而以虚拟化和云计算技术为支撑的基础设施即代码的出现,为IT管理新方法的出现提供了机遇,基于敏捷软件开发和精益生产演进的IT管理新方法DevOps应运而生。


DevOps是一种敏捷软件开发和精益制造想法的演变,应用到IT端到端的价值链,归功于文化、组织和技术的变革,使业务能够通过现代信息技术更多地达到预期,更快满足用户的业务需求,提升资源利用率。


首先,DevOps是对敏捷软件开发和精益实践两者的演变,是吸收,而不是取代。


其次,DevOps 被应用到IT端到端的价值链,其本质就是:DevOps所考虑的不仅仅是软件开发,而是整个价值链。整个价值链始于业务干系人的新想法,经过需求分析,设计,开发,测试和部署,到运维,最后到交付给客户。端到端价值链的方法有助于从宏观上整体地分析,识别和消除瓶颈。

为什么要采用DevOps?

首先,企业落地DevOps是提升产能和效率的必然选择,可以大幅提升新产品或新应用的上市时间。


传统企业新产品上市涉及到相当大的时间跨度,对于响应的IT部门,这个时间可能包括以下环节:针对一种或若干种业务想法构建和起草方案,以及业务论证;评估和选择一个业务想法进行实施;规划实施所需的行动,获得资金;员工和业务流程准备;同时进行需求规范化,原型开发,初始测试,全功能IT系统开发,全面测试,发布和部署;同时进行营销活动,市场准备,销售渠道和工具的准备;新产品或服务的推出。


上述流程需要花费几年时间,然而业务部门希望缩短到数月。拥抱DevOps的理由是显而易见的。


创造数字化产品的充满活力的公司,习惯于快速行动。相对于严谨,详细计划,他们更推崇可安全失败的实验。这时,流程可能是这样的:建立一个假设,开发验证方法;假设的实际实现;结果评估,A / B测试,与目标的比较;根据分析进行调整,返回第一步或第二步。


很容易看到这是一个循环,预期时长是几周。这就是小步快跑的策略。这样快速的步骤是必须的,因为DevOps的本质就是持续的探寻。最终状态是不可知的,指定长期的计划没有意义。


为了尽可能缩短上市时间,DevOps提供了多种技术:减少批量大小;减少交接次数;持续识别和消除损失;自给自足的团队,传统IT部门为成本优化,DevOps为速度而优化;自动化。


其次,减少技术债务也是企业拥抱DevOps的一大原因。技术债务是在团队成员选择一个非最优的方式解决问题以缩短开发时间时产生的。这是一个自然的过程,问题是累积的非最优方案导致了开发产出逐步恶化,必然导致产品质量下滑。


DevOps持续重构程序代码,重视在操作中取得的经验,鼓励持续识别并消除瓶颈,认为这些工作和技术创新同开发新产品功能同等重要。


同时,DevOps强烈建议使用“尽可能频繁面对问题”的实践,以便防止问题的“停滞”,即所有人都知道,但没有人能够处理的情况。

除此之外,采用DevOps可以帮助企业排除脆弱性。通常组织中最重要的和业务收益最相关的系统是最脆弱的。

DevOps能够以最激进的方式改变脆弱性,做到完全排除;

在DevOps中,代码和系统作为一个整体,在某个时刻是全功能的,如果接下来的变更破坏了性能,就要马上回滚并且让系统持续正确地工作;

DevOps的实践,有意地引入混乱和不稳定性到生产环境,目标IT系统必须以独立和快速的方式做出反应,探测到故障并恢复它们的正常运作,理想情况下最终用户是无感知的,当然数据也不会丢失。

DevOps常见误区

常见误区1:“DevOps不过是延续敏捷的想法”

企业在落地DevOps前,首先要明确一点,DevOps并不仅是敏捷的一部分。

· 尽管DevOps在很大程度上基于敏捷,然而扩展了敏捷开发到通用的敏捷IT交付,覆盖整个组织、整个流程以及完整的价值链;

· 获得DevOps的回报需要在公司中进行比以往敏捷所做的更为显著的文化变革;

· DevOps的目标集合不仅限于加速交付:也需要减少技术债和排除脆弱性。


常见误区2:“工具能够给你极致的DevOps”

其次,我们需要意识到DevOps是一系列的组织文化和工作方式变革,而不仅仅是工具和自动化。

· 虽然个别的软件解决方案被广泛接受,但没有也不可能有一个完整的DevOps必备软件列表;

· DevOps依赖确定的自动化工具的可用性和有效性。但是严格来讲,这些工具的最小集可以缩减到用于存储所有源代码的版本控制系统、IT基础设施配置数据、软件交付流水线自动化系统;

· 任何特定的DevOps实施都需要从企业自身组织情况出发,专业的商业化厂商可以帮助企业快速理清流程、加速实现组织变革。


常见误区3:“DevOps是一个全能士兵,能写代码,做测试,部署环境,并管理基础设施”

最后,我们需要了解DevOps并不是一个新职业。

· DevOps是一种对IT部门的基本面有深远意义的变革,并不是通过招聘一些DevOps工程师或邀请DevOps专家就能达成的;

· 具有实施软件交付流水线的能力也不能保证成功;

· 短期来看,不大可能通过应用DevOps的实践就立即节省成本,但长远来看是在为更大的降本增效做准备,因而选择一个具有过硬技术实力和丰富实践经验的厂商十分重要。

如您有更多关于DevOps落地实践相关问题,欢迎联系我们,共同探索DevOps最佳实践。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340