iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >DevOps的五大实践及转型具体实施过程
  • 171
分享到

DevOps的五大实践及转型具体实施过程

2023-06-19 10:06:07 171人浏览 泡泡鱼
摘要

devops的五大实践及转型具体实施过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。那么DevOps转型的正确姿势应该是怎样的呢?DevOps转型的五大实践实践一:习惯小批量

devops的五大实践及转型具体实施过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

那么DevOps转型的正确姿势应该是怎样的呢?

DevOps转型的五大实践

实践一:习惯小批量的方式工作(开发架构、组织文化的演进)

持久的变革需要以小批量、持续的方式进行,通过反复实验、根据反馈循环快速学习,找到最正确的实施路径。这样需要把大的问题拆成一系列小的问题逐个、渐进式解决,也许这样没有Big Bang式的变革令人激动,但这才是让我们成功的正确姿势。

1. 找到最重要的工作

最经典的例子就是项目管理,传统上按半年或一年规划并申请预算,这驱使我们工作在大型复杂项目上,大量时间花在特性在待办清单(Backlog)中等待被分析、估算、批准和排优先级等事务性工作上。一份称为"黑天鹅农场"的白皮书显示,他们分析了3000个待办清单中等待开发的不同需求,使用延迟成本(如果不做这个需求,每周损失的成本)的优先级决策方式。

他们发现,在待办清单中有三个特性,如果不交付这些特性,每个特性每周给组织带来200万美金的损失。这几个特性隐藏在庞大的待办清单中,但确实极为关键的。他们意识到应当停掉手头所有工作,以最快的速度交付这三个特性。从统计数据上看,这种情况符合幂律分布,如下图所示。

DevOps的五大实践及转型具体实施过程

所以我们的工作就是要在多个项目中间,找到那些真正重要的,这需要更加透明、更加清晰的优先级,以及组织中每个人的协作。

2. 架构的持续演进

很普遍的情况是,很多组织拥有大量的遗留系统,一些软件或硬件过于老旧,可能厂商已经不再支持了,有些组织的个别系统甚至没有源代码(可能在乙方手中或已丢失)。这类组织通常选择通过长达一两年的架构再造解决问题,而当进行到一年的时候,他们可能会说,系统复杂度实在太高,我们还需要额外的两年!我本人就亲历过这样的超大型项目,最后负责的CTO都换人了,项目还没做完。

以上描述的场景,关键的问题是,大家的关注点常常在架构的技术层面而不是需要达到的结果上。调查数据显示,如果以下问题的回答都是Yes,那么你更有可能做好持续交付和DevOps,成为高效能IT组织:

  • 是否无需团队外的某人或其他团队授权就可以进行自身系统大范围的设计变更?

  • 是否无需与团队外的其他人员进行细粒度的沟通就可以完成自身的工作?

  • 是否可以独立于其他依赖的服务或产品,按需部署和发布自身的产品或服务?

  • 是否无需依赖复杂的集成测试环境,就可以按需进行大多数自身系统的测试?

  • 是否可以在日常业务时段,执行无停机的部署?

你可以在老旧的遗留系统上实现以上全部这些效果,但也可能在充满高科技、新技术的情况下,无法达到以上效果的任意一条。所以我们要关注的是架构演进的结果,而不仅仅是使用炫酷的技术

关于演进式架构的更多内容,以及绞杀者模式的思路,我之前的文章也有介绍,其主要原则如下:

  • 从交付业务所需的新功能开始(至少在初期是这样),新功能使用面向服务的设计

  • 不要重写已有的功能,除非能够使它持续简化

  • 通过不断拆分,更快的进行交付

  • 为可测试性和可部署性进行设计

  • 新的架构运行在PaaS平台上

DevOps的五大实践及转型具体实施过程

实践二:创建反馈循环

在小批量工作的基础上,我们要建立起反馈循环。反馈循环让我们能够持续学习,基于学习进行持续改进,这也是敏捷和学习型组织的关键原则。

持续交付流水线就是反馈循环的具体实现,可以提供多个层次、多个链路的反馈信息,并且可以在反馈效率和反馈完整性之间取得平衡。 
以下是去年我与朋友合作的全开源持续交付流水线的设计图和效果图,充分体现了流水线的递次晋级和反馈循环的原则。 
DevOps的五大实践及转型具体实施过程 
全开源流水线只能满足中小企业的需求,在大型企业中的流水线设计和实现更为复杂,我后面找时间再跟大家单独介绍。

实践三:通过价值流进行跨职能协作

需求、开发、测试、信息安全运维等角色需要在软件交付价值流中协同工作。价值流图是促进跨职能协作的关键工具。我们可以通过开展价值流梳理的Workshop,识别支撑价值流的各种角色以及角色之间的协作关系。我们不需要文档化价值流中每一步的细枝末节,而是理解价值是如何传递的,各角色是如何协同工作的。

DevOps的五大实践及转型具体实施过程

以上模型不仅停留在理论层面,更可以应用在实践领域。

案例一. Google的灾难恢复测试

Google在几年之前进行过一项研究,如何打造一个优秀的团队。他们调研了来自180个Google团队的200位受访者,观察了超过250项不同的因素,比如团队中有人取得博士学位、有性格外向的人,有人着迷于angularjs等等。但他们最终发现打造高效能IT组织,排在第一位的因素是:心理上的安全感,即可以在团队中承担风险而不会感到不安全或者受到伤害。

我们需要构建一个安全的环境,让失败是可以接受的,并且作为组织学习的基础。Google和Amazon都会在线上进行灾难恢复测试,确保在发生严重故障时,故障恢复策略真正有效,系统仍然可以正常运转。 
Google有一整个团队专注于计划和实施灾难恢复测试,甚至有一年模拟外星人侵入硅谷的场景,他们断开山景城与外界的光缆连接、关闭数据中心并对基础设施施加真实的影响,但要求团队必须要维护服务级别目标。他们设计的灾难恢复测试,需要由来自很多不同组、平时不在一起工作的工程师相互协作,那么在大规模灾难真正来临的时候,他们已经建立起了很强的工作关系。

案例二. Etsy的"三只袖毛衣"奖励

Etsy每年举办开发者大会,会发给过去一年中生产环境最大中断的制造者一件"三只袖毛衣"作为奖励。那么为什么奖励是三只袖毛衣呢?因为Etsy的404页面中有一张三只袖毛衣的图片。

DevOps的五大实践及转型具体实施过程

实践五:持续消除浪费,优化价值流

DevOps需要持续改进,移除浪费,让价值流动变得更加顺畅。我近期辅导了一些团队使用价值流图的方式进行流程和问题梳理,发现这的确对组织认知和优化现有软件交付过程非常有帮助。

DevOps的五大实践及转型具体实施过程
DevOps的转型并不简单,想要走上成功之路,这里还有几个Tips:

  • 对可度量的业务目标达成一致。制定"跳一跳可以达到"的目标,比如减少10%严重缺陷数、提升20%服务可用时长、达到2倍的发布频率,或者其他混合的结果指标。

  • 给团队资源进行实验并对学习进行激励。团队无法在日常工作照旧的前提下,"加班"进行改进的探索。改进是要有真实工作量投入的,这应当与开发新功能、修复缺陷以同样的方式进行优先级排序。具体来讲,可以使用看板管理WIP,指派专职的团队全职做改进工作,或者每周给团队一个特定时间用于做改进工作。

  • 与其他团队沟通,鼓励协作。很多人经常提及合规、安全、治理等团队,认为他们是改进的阻碍。但其实如果与这些团队进行友好的沟通,你可能会发现他们非常期望讨论获得双赢的具体措施。

  • 取得速赢。你需要在一到两个月做出改进的效果。具体来讲有三个关键点:首先,通过价值流图或约束理论,找到一个影响最大的、并且可以快速解决和可被度量效果的问题;其次,限制首次进行改进的范围,最小化改进工作;然后,与对改进有兴趣并有充足容量和能力的团队合作,取得速赢。

  • 分享成功经验。为了获得其他人的支持,你需要做好成功经验的宣传工作,吸引更多的人加入到改进工作中来。比如有的企业组织内部的DevOpsDays大会,跨部门进行经验的推广,这非常有效。另外午餐学习会、内部博客、邮件列表、Slack或HipChat频道都是获得参与者最好的渠道。还要对其他尝试的人提供帮助,就像DevOps教练应该做的工作那样。

  • 持续改进。高效能的组织永远追求改进的机会。就像丰田管理系统的缔造者大野耐一所说的:"Kaizen [improvement] opportunities are infinite",改进的机会是无穷无尽的。百度集团总裁兼COO 陆奇在去年的一次演讲中也讲过:"Engineering excellence 是一个永无止境的、个人的、团队的,能力的追求和工具平台的创新,综合在一起可以带给我们带来的长期的、核心的竞争力"。Relentless pursuit of excellence,这是我们应该坚持的态度

  • DevOps转型的五大实践。习惯小批量的工作方式(开发、架构、组织文化的演进)、创建反馈循环(流水线建设)、通过价值流进行跨职能协作、建立实验的组织文化、持续消除浪费并优化价值流;

  • DevOps转型的具体实施建议。关注DevOps转型的关键能力要素,对可度量的业务目标达成一致、给团队资源进行实验并对学习进行激励、与其他团队沟通并鼓励协作、取得速赢、分享成功经验、持续改进。

看完上述内容,你们掌握DevOps的五大实践及转型具体实施过程的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: DevOps的五大实践及转型具体实施过程

本文链接: https://www.lsjlt.com/news/295350.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • DevOps的五大实践及转型具体实施过程
    DevOps的五大实践及转型具体实施过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。那么DevOps转型的正确姿势应该是怎样的呢?DevOps转型的五大实践实践一:习惯小批量...
    99+
    2023-06-19
  • 五大典型场景中的API自动化测试实践
    一、API 测试的基本步骤通常来讲,API 测试的基本步骤主要包括以下三大步骤:准备测试数据;通过通用的或自己开发的API测试工具发起对被测API的request;验证返回结果的response。常用的API测试工具有命令行工具cURL、图...
    99+
    2023-06-04
  • 在linux系统下利用PC机实现路由转发的具体过程
    本篇内容主要讲解“在linux系统下利用PC机实现路由转发的具体过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在linux系统下利用PC机实现路由转发的具体过程”吧!1、网络拓扑  网络拓扑...
    99+
    2023-06-13
  • C#实现热更新服务器程序的具体过程
    目录热更新有没有解决一些开发问题的痛点热更新实现原理具体的实现过程总结热更新有没有解决一些开发问题的痛点 其实首先探讨的一个问题就是,热更服务器程序到底有没有必要出现,或者说有没有...
    99+
    2024-04-02
  • 深入探讨Go语言中的类型转换机制及实践
    本篇文章给大家分享《深入探讨Go语言中的类型转换机制及实践》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识...
    99+
    2024-04-04
  • Python反爬机制-验证码功能的具体实现过程
    目录识别验证码1.字符验证码1.1OCR环境1.2下载验证码图片1.3识别验证码2.第三方验证码识别3.滑动拼图验证码识别验证码 ​ OCR(Optical Character Re...
    99+
    2024-04-02
  • 时间戳获取的最佳实践:Golang编程中的强大工具
    Golang编程利器:时间戳获取的最佳实践引言:在软件开发中,时间戳是一个非常常见的概念。它是一个标识特定事件发生的数字值,通常表示自从某个参考时间点开始的毫秒数或纳秒数。在Golang中,处理时间戳的操作非常简单且高效。本文将介绍Gola...
    99+
    2023-12-29
    Golang 时间戳 最佳实践
  • uni-app和原生小程序混合开发的具体实现过程
    现有一个十分庞大的微信小程序应用,想要把新功能利用uni-app来开发,是否可行?有哪些优缺点? 首先看到官方给出的解决方案 https://uniapp.dcloud.io/hyb...
    99+
    2024-04-02
  • C++ 内联函数在大型程序中的使用最佳实践
    最佳实践:适用于小巧且计算量简单的函数。适用于频繁调用的函数。避免在循环中内联。避免使用指针和引用。使用适当的内联关键字(inline/__inline)。实战案例:计算两数最大公约数的...
    99+
    2024-04-17
    内联函数 大型程序 c++ 最大公约数
  • Spring JPA的实体属性类型转换器并反序列化工具类详解
    目录一、JPA单体JSON与Map的映射创建一个转换类只需在模型类上加个注解就能完成自动转换二、封装反序列化工具类利用JPA的AttributeConverter接口实现属性转换过于...
    99+
    2024-04-02
  • Docker与自动化测试及其测试实践过程是怎样的
    Docker与自动化测试及其测试实践过程是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Docker 与自动化测试对于重复枯燥的手动测试任务,可以考虑将其...
    99+
    2023-06-19
  • MySQL的存储函数与存储过程相关概念与具体实例详解
    目录MySQL存储过程与存储函数的相关概念存储过程存储函数存储函数与存储过程的对比存储过程和函数的查看修改删除MySQL存储过程与存储函数的相关概念 存储函数和存储过程的主要区别: ...
    99+
    2023-03-01
    MySQL的存储函数与存储过程 MySQL存储过程 MySQL存储函数
  • C语言 八大排序算法的过程图解及实现代码
    目录前言一、插入排序时间复杂度空间复杂度代码实现(升序)二、希尔排序时间复杂度空间复杂度代码实现三、选择排序时间复杂度空间复杂度代码实现四、堆排序时间复杂度空间复杂度代码实现五、冒泡...
    99+
    2024-04-02
  • flutter_mp的实现原理以及通过flutter_mp转换并运行在小程序端的效果
    本篇内容主要讲解“flutter_mp的实现原理以及通过flutter_mp转换并运行在小程序端的效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“flutter_mp的实现原理以及通过flut...
    99+
    2023-06-05
  • Python安装以及配置在实际应用的过程中的强大功能是怎样的
    这篇文章给大家介绍Python安装以及配置在实际应用的过程中的强大功能是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python安装 配置作为计算机语言中常用的计算机语言,在实际的应用过程中仍然有人对Pytho...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作