云计算提供的速度响应、敏捷性和规模效应,契合了如今不断变化的数字商业环境。企业基于最新的IT技术,重构IT架构,加速产品创新和服务交付的速度,从而提高运营效率和市场占有。

不过,企业IT管理者在利用云计算进行数字化转型时,往往会面临两方面的挑战:一是技术,一是企业固有的流程、文化和组织架构。许多公司仍然运转于各个“信息孤岛”,陷入依赖“瀑布式”软件开发的泥潭中,这与技术本身提供的巨大灵活性背道而驰。

在数字化时代,速度和敏捷性是企业领跑和打造核心竞争力的关键。DevOps通过打破开发与运维之间的隔阂,大大缩短软件的开发周期,并快速部署到生产环境,对企业的数字化转型至关重要。

DevOps就像一座现代软件开发的圣杯。许多人都在积极寻找,有些人声称已经找到,而更多人还在寻找中。
由于每家公司都有其独特的运营方式,通往DevOps成功之路上,没有一步步的标准化指导。但是,可以肯定以下这5种方式是无法过渡到DevOps的,DevOps不应该做什么,希望本文能够给企业客户以启示。

不确定DevOps对企业的业务意味着什么

DevOps并没有严格的定义,它为什么会出现,采用DevOps可以解决什么问题,有多种解释。从2010年起,DevOps运动的创始人之一斯蒂芬·尼尔森·史密斯(StephenNelson-Smith)就发布了一篇有关DevOps的很漂亮的帖子。清楚地说明了,开发、运维和QA团队的所有成员应该就DevOps对他们各自意味着什么达成共识。回答这些问题有助于:

团队如何定义DevOps流程?应该在任何流程变化发生之前达成共识,否则会出现不必要的紧张情绪。团队要做的是开展工作,而不是花时间确定什么必须做,什么不该做。

团队成员愿意失去哪些特权?他们愿意钻研哪些任务?如果开发人员不想参与测试和基础设施维护,Ops工程师不急于开始编写代码,QA团队更喜欢手工测试,而并非编写自动化单元测试代码——这样的人将无法在一个健康的、有竞争力的DevOps团队中脱颖而出。

新成立的DevOps和其他部门之间会有什么界限?向DevOps软件交付方式的转变不可能在一夜之间发生,这需要大量的时间和资源投入。在此期间,试点DevOps的团队应该在所谓“卓越中心”的主要业务工作流程之外独立开展工作。

没有遵守DevOps文化
DevOps方法论实际上只有大约25%的比例使用了DevOps工具,诸如Ansible,Kubernetes,Salt,Puppet或Terraform等。75%的客户,他们的DevOps方法依赖于组织内部的文化变革,正如我们在另一篇文章中所描述的,“为什么说DevOps文化是人类的一大步?”。

DevOps的理念非常简单: 提供持续集成、持续交付和基础设施即代码。这意味着DevOps工程师不仅要熟练使用多个DevOps工具进行代码开发、构建、测试和部署;还应该为代码交付自动化测试,并维护生产基础设施,因此,任何有可能出现的问题,都可以由团队中的任何成员来解决掉。

成功采用DevOps范式的最后一点,是将基础设施作为代码构建,尽管是最后强调的一点,但这并不代表它不重要。当企业基础设施迁移到私有云或混合云之后,将有可能实现。当所有基础设施参数可以由每位团队成员通过轻松访问和修改文件进行配置时,就不存在瓶颈和过度的运营成本。这正好对应了“你构建,你运行”的范例,形成了DevOps方法论的核心。

从单一任务和责任到统一的团队,拥有通用的工具集和技能集,以及共同的思维方式,对于培养可行和持久的DevOps团队至关重要。最重要的一点,这不可能作为一项基层行动而发生,它必须得到企业里C-Suite和经理们的全力支持。然而,这点引起了企业内部对治理和安全的关注,应该加以解决。
无法重组组织结构和治理
向DevOps迁移的原因之一仍然是,在企业业务中,错误的成本太高。这意味着错误的决策可能会让经理们失去他们的位置,这也是为什么他们真正抵制变化的原因。“如果它行得通的话,为什么要改变它呢?” 然而,在现代快节奏的世界里,遵循传统惯例并不是很有效,因为没有按时交付价值意味着没有交付价值。

因此,为了加速软件开发,尽可能多地从交付流水线中去除管理开销。但是,不需要多个审批并不意味着不需要遵守安全和合规性限制。这仅仅意味着DevOps应该对其行为的后果负责,并且如果失控,有能力纠正错误。

正确的做法是在,DevOps团队的软件交付流水线上复制审批功能,同时将最后的消息留给管理人员。通过这种方式,管理人员可以让DevOps在软件部署和基础设施更新方面做出决策,同时根据需要,也可以取消它们。如果缺乏这种控制,整个企业的软件部署和基础架构的统一结构就可能会变成杂乱无章的混乱。

DevOps工程师只有开发出稳定的和能够检验错误的工作流程,使所有更新顺利进行,DevOps才可以自行开展工作。任务和职责的这种渐进式过渡,应该发生在整个企业中。这有助于建立一支强大自信的团队,自主展开工作,同时遵守安全和治理法规。
无法评估风险
持续交付、自动化测试、持续集成,构建不可变基础设施即代码—DevOps这些诸多优势都将会大大缩短上市时间和反馈循环。但是,如果出现差错,同样的行为会导致重大损失。因此,DevOps工程师应该接受培训,尽可能地移除错误产生的因素。

这通常意味着自动化测试过程,俗话说:“如果可以自动化,就必须自动化”。软件交付最近的阶段如果出现错误,那么成本对业务来说是相当高的,这会给 QA 和 DevOps 团队带来消极影响和倦怠状态。

为了避免这种结果,最好在DevOps中投入大量的精力来编写自动化单元测试,并锻炼使用Ansible和Terraform等配置管理工具,掌握Docker技能,实现快速部署测试和环境搭建,发布滚动更新,并在需要时快速回滚到以前的版本。从而降低风险,并提供稳定、不间断的服务。
无法提供可测量的统计数据
任何企业的核心目标都是一样的:赚取利润。因此,对企业来说,每一个变化首先应该是可行的,并得到高管们的认可。虽然 DevOps 有助于加快服务和软件交付流程,但它应该满足某些KPI,从而证明其实施的合理性。

这些 KPI 将根据行业、传统基础设施的状况以及其他因素有所不同,但有一点是一样的:DevOps的采用应该解决问题并证明切实的结果。为了达到这些结果,管理层应审核整个企业使用的遗留基础设施,系统和流程的状态。从而确定效率和性能的大致水平,例如,从新特性的发布到发布这项功能的天数等。

一旦确定了上面这些参数,衡量成功就变得相当简单了。不过,这不是一个月、两个月就能达成的任务,部署全面的DevOps模型需要一年之久,这取决于企业的规模和重组工作流所需的工作量。密切关注DevOps团队的表现,并将其与常规团队进行比较,有助于评估向DevOps过渡的进展和效率。
结论
向DevOps过渡绝不是一时之功就能实现。它需要打好基础,获得企业整个管理层的支持,投入大量的时间和资源。这一转型的结果通常会给企业带来切实的好处,正如Puppet关于DevOps的报告所论述过的。

本文抛砖引玉,如果你有DevOps方面的任何见解,欢迎后台留言与我们交流~~

DevOps“五宗罪”,这样向DevOps过渡注定会失败的更多相关文章

  1. ipad pro注定是失败的!

    ipad pro注定是失败的! 把一个玩具操作系统装在生产力工具上就能产生生产力了? so young so simple!

  2. DevOps到底是什么鬼?DevOps介绍及工具推荐。

    什么是DevOps DevOps是Development和Operations的组合,是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的沟通.协作与 ...

  3. 【漫话DevOps】Agile,CI/CD,DevOps

    随着DevOps理念的普及与扩散,可能会被一大堆名字概念搞的莫名其妙,理清它们之间的关系可以帮助团队知道DevOps如何落地,改善工作流程. Here's a quick and easy way t ...

  4. DevOps运动的缘起 将DevOps想象为一种编程语言里面的一个接口,而SRE类实现了这个接口

     SRE vs DevOps:是敌是友? - DockOne.io http://www.dockone.io/article/5935   RE vs DevOps:是敌是友? [编者的话]网站可靠 ...

  5. Azure DevOps (十二) 通过Azure Devops部署一个SpringBoot应用

    文章配套视频专栏: https://space.bilibili.com/38649342/channel/seriesdetail?sid=2267536 视频正在努力更新. 上一篇文章中,我们通过 ...

  6. 职场PUA,管理者的五宗罪

    在目前的社会环境下,程序员似乎成了"弱势群体".我们经常谈论的职场PUA已经成为程序员的代名词. 我一直在想,为什么这么多管理者能力会这么差. 但最后最吃亏的还是可怜的程序员. 也 ...

  7. XP+devOps开发模式与scrum敏捷开发对比,docker虚拟化

    XP+devOps开发模式与scrum敏捷开发对比,docker虚拟化 我们现在用的就是典型的XP+devOps模式,已经放弃scrum了 现在还很多公司弄docker虚拟化docker非常复杂,当然 ...

  8. 荣誉,还是苦逼?| 也议全栈工程师和DevOps

    引言 全栈工程师(本文称「全栈」开发者)和 DevOps 无疑是近期最火的词汇,无论是国外还是国内.而且火爆程度远超于想象. 全栈和 DevOps,究竟是我们的新职业方向,还是仅仅创业公司老板的心头所 ...

  9. 蓝鲸DevOps深度解析系列(1):蓝盾平台总览

    ​​关注嘉为科技,获取运维新知 2018年10月,嘉为科技与腾讯云.蓝鲸智云携手,在北京.上海.广州.深圳举办 “研运一体,数据驱动,让运维走向运营”为主题的分享会,来自金融.电力.能源.制造等行业的 ...

随机推荐

  1. fiddler使用指南

    fiddler使用指南 fiddler 设置 如果要手机抓包的话,需要设置fiddler, 允许远程设备连接 tools/fiddler options/connection/allow remote ...

  2. AES和RSA加解密的Python用法

    AES AES 是一种对称加密算法,用key对一段text加密,则用同一个key对密文解密, from Crypto import Random from Crypto.Hash import SHA ...

  3. 【中间件安全】IIS6安全加固规范

    1. 适用情况 适用于使用IIS6进行部署的Web网站. 2. 技能要求 熟悉IIS配置操作,能够利用IIS进行建站,并能针对站点使用IIS进行安全加固. 3. 前置条件 1. 根据站点开放端口.进程 ...

  4. git使用git-credential-winstore保存https访问密码

    使用 https 方式 clone 一个 git 仓库,每次pull 或者 push 的时候都需要输入用户名和密码. 访问远程Git仓库可以用 SSH 方式和 https 方式,https 每次访问时 ...

  5. ubuntu开机后弹出System program problem detected的解决办法

    sudo gedit /etc/default/apport 将enabled=1改为enabled=0保存退出重启后就可以了

  6. 学习Vue 入门到实战——学习笔记

    闲聊: 自从进了现在的公司,小颖就再没怎么接触vue了,最近不太忙,所以想再学习下vue,就看了看vue相关视频,顺便做个笔记嘻嘻. 视频地址:Vue 入门到实战1.Vue 入门到实战2 学习内容: ...

  7. Java设计模式系列之装饰者模式

    装饰者模式的定义 动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案  装饰者模式的UML类图 一般来说装饰者模式有下面几个参与者: Component:装饰者和被装饰者共同 ...

  8. react+mobx 编写 withStoreHistory 装饰器

    主要作用是向store里面注入一个history对象,方便story里面的函数调用 function withStoreHistory(storeName) { if (!storeName) ret ...

  9. react+mobx 编写 Async装饰器

    使用 // indexStore.js import axios from "axios"; import { from } from "rxjs"; impo ...

  10. yarn集群客户端gateway常用限制

    spark默认集群模式,省略上传依赖包过程:spark-default.sh spark.yarn.jars hdfs:///${PATH}/sparkJar/jars/*.jarspark.subm ...