写点什么

DevOps 实践 - 打造自服务持续交付 - 上

  • 2017-07-04
  • 本文字数:2726 字

    阅读完需:约 9 分钟

一. DevOps 转型的动机

我们的客户是一家海外本土最大的金融保险集团,他们在发展到一定规模以后,意识到自己就像一头笨重的大象,举步维艰,通过对整个交付流程的思考和分析,发现了以下一些严重影响交付速度的问题:

  1. 一些好的关于产品改善和创新的想法很难落地。设计到一些遗留系统的配合:调整、部署、扩展等,使团队对发布没有信心。新的服务或者应用的构建,很难快速上线,被卡在了生产环境部署阶段。

  2. 各种不同种类的应用、服务的部署方式和流程不一致。运维部门作为一个支持部门,很难为大量团队提供快速反应。运维人员也对起需要部署和运营环境之上的产品不够了解。

  3. 微服务壮行过程中,交付团队难以做到快速集成和部署。运维团队对微服务的部署运维方式不理解,依旧老瓶装新药,很难适配新架构下的交付模式。开发团队大多关注代码和架构,对于产品如何在能在生产环境稳定运行、需要考虑哪些安全性和可持续性的因素并不是很了解。

二. 问题分析和挑战

通过对这些问题和各个团队反馈的深入分析,发现其中最大的瓶颈在于交付团队与运维部门之间的各种依赖和沟通浪费,而这个瓶颈又是解决大多数问题的前提。

图 1

我们将瓶颈具象化后(如图 1),可以看到两种团队之间其实是存在一堵墙的,一是因为传统的部署流程非常繁琐和低效。二是因为两种角色关注点和目标的不一致。

如果在这样的情况下,想实现微服务架构转型,实现更快速和安全的交付,只会更快的暴露出这堵墙引起的各种问题。开发阶段,系统的架构和依赖环境都是 Developer 说了算,对生产环境的关注度不高。部署、发布阶段,Operations 会考虑如何构建一套稳定的基础设施,又如何去部署和运维开发的产物,但是往往对于产物的了解不充分,对于产物的周边生态和与它们关系的了解也不够。

那么引入 DevOps 文化,消除开发与运维之间的壁垒,逐步打造更高效的交付流程就成为我们破局的关键,那我们应该怎么做呢?

改革之初,我们发现并去尝试了 Bimodel(双模 IT), 我们看看它是否能解决我们的问题:

先简单介绍一下什么是双模 IT:

它将 IT 系统分成了两种模式:

  1. 一种是新型的数字化、高市场适应性的 IT,这部分业务聚焦企业新市场和业务的开拓,创新和发展,强调 IT 自身对于市场的高适应力。

  2. 另外一种模式下,我们则需要稳固发展,对于传统模式我们倾向于更加严谨和标准的流程去保护现有业务,稳定性比速度更加重要。

我们从采用这样一种模式的实践案例中发现:组织内部会出现连两种速度的交付流程,好的情况可能是采用敏捷开发流程的交付线,有着快速的交付能力,相反,对于继续采用传统开发流程和运维方式的团队,保持着稳定但低效的交付能力。 从业界很多公司的现状和发展趋势来看,双模 IT 确实是很多组织存在的现状或是必然经历的过程,但不是一个好的模式,从实际的交付过程来看,存在 4 点问题:

  1. 双模 IT 的划分方式更多是基于软件系统,而不是从业务活动出发进行的,所有软件系统的交付都应该是面向业务价值的。

  2. 双模 IT 会让我们误以为速度的提升会引起质量的下降,但是对于我们在 ThoughtWorks 的很多敏捷实践中学到的:随着交付的推进,质量内建是团队共同负责和持续改进的重点。交付速度的提升,往往都伴随着质量的保障,而不是忽视质量。

  3. 实际生产中,一个新的产品或者功能往往会依赖很多遗留系统提供的服务,如果它们仅仅只能达到稳定和低效的交付,对企业来说对市场整体的响应能力也会越来越低。

  4. 企业的创新不仅仅只是从零创造一个新的产品,很有很多机遇现有的资源。一个新的系统和功能往往不仅会既涉及到新服务、应用的创建,也会涉及到遗留系统的修改,调整和改造。

由此可见双模 IT 是在以一种试图掩盖问题的方式来逃避目前最重要的问题:开发和运维之间的壁垒。感觉像是一个病人先是放弃治疗,然后又努力的寻找延长寿命的方法,有些隐患终会爆发。

三. 打造自服务持续交付

紧接着,我们开始采用了一种看似不可行的方式开启了 DevOps 转型, 建立公有 DevOps 团队。有很多人可能会说这是一种反模式,怎么可能会建立一个团队专做 DevOps 相关的事情,那和以前的运维部门又有什么区别? DevOps 提倡的 Dev 与 Ops 高频度合作的文化是不是就无法大面积传播了?因此我们需要很明确的定义我们对这个团队的期望和它的职责是什么,它是怎样和交付团队合作,影响交付团队,最终能让 DevOps 的文化可以大面积传播。 这个团队的目标是要像杠杆一样,翘起更大面积的 DevOps 变革。所以我们认为公有 DevOps 团队应该与其它的端到端交付团队的人员构成是一样的。不同的只是目标和价值,主要体现在帮助更多的团队植入 DevOps 文化、优化持续交付流程。最终达到的目标是每个团队都可以自治,每个团队都可以进行端到端的开发、测试和部署,并可以自驱动的持续改进。与此同时,这个团队不仅仅只是为交付团队提供更多涉及基础设施、持续交付流水线、部署等活动所需要的自动化能力,还会支撑交付团队根据自身的上下文去定制和规划自己的持续交付流程和部署策略等。

现在,相比于 DevOps 团队的叫法,我们更愿意称呼这个团队为 Platform 团队,一个原因是我之前所说的避免被错误理解,另一个原因是随着各个交付团队逐步实现自服务持续交付,这个专有团队也有了更高的目标:持续打造和优化一个能够支持各交付团队快速交付的平台。

当时,首先我们为团队定义了新的工作方式:以自服务,自动化和协作 作为核心文化,希望团队通过提供便捷的基础服务,让交付团队拥有自动化的交付流水线,并通过更多的沟通协作,尽可能让每个交付团队都能够独立自主的设计、创建和更改自己的基础设施。然后再根据各个交付团队的实施情况和结果来对流程和服务持续改进。

所以第一件事,我们首先设计了一个高效的持续交付流水线,让 Platform 团队和交付团队建立触点:

如下图所示,蓝色的基因链为交付团队的持续交付环,红色的基因链为平台团队的持续交付环。两种团队以某种低耦合的弱连接进行全程协作,Platform 团队在整个端到端的交付过程中都要能尽量通过构建自动化能力来支撑交付团队能够快速、安全的进行持续集成、部署等活动。这样的合作方式也给我们提供了优化触点的可能性,也能够通过优化和改进,缩小这个持续交付周期,让交付更高效。

请原谅我在这片文章进入高潮时卖个关子,由于考虑到大家的阅读体验,所以文章分成了上、下两个部分,上半部分主要讲 DevOps 转型的动机、策略和方法,下半部分会讲我们如何实际应用基础设施即代码来建立 Platform 团队和交付团队的触点, 又怎样让遗留系统团队和微服务团队的交付速度成倍增加。敬请期待!


感谢张凯峰对本文的策划,木环对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-07-04 17:454261

评论

发布
暂无评论
发现更多内容

抖音技术分享:飞鸽IM桌面端基于Rust语言进行重构的技术选型和实践总结

JackJiang

网络编程 即时通讯 IM

容器化环境中,JVM最佳参数配置实践

华为云开发者联盟

Java 开发 华为云 华为云开发者联盟

苹果App Store上架工具介绍

雪奈椰子

IPQ9574/Ultra-fast speed, ultra-low latency: key advantages and application prospects of WiFi 7

wallysSK

AudFree Tidable Music Converter for Mac(Tidal音乐转换器) v2.14.0免激活版

iMac小白

vivo 在离线混部探索与实践

vivo互联网技术

云计算 大数据 DevOps

颠覆软件工程、“杀死”开发者?回溯大模型落地应用这一年 | 盘点

思码逸研发效能

OpenMLDB v0.8.5 发布:认证功能完善,安全升级全面实施

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

数据驱动的实验文化:字节跳动产品优化之路

字节跳动数据平台

大数据 AB实验 企业号 2 月 PK 榜 对比实验 数字化增长

Microsoft Remote Desktop for Mac(微软远程连接软件) v10.9.6直装激活版

iMac小白

关于Python中math 和 decimal 模块的解析与实践

华为云开发者联盟

Python 开发 华为云 华为云开发者联盟

国产数据库兼容性认证再下两城,极狐GitLab 国产适配更进一步

极狐GitLab

Eudic欧路词典 for Mac(英语词典翻译查询工具) v4.6.2激活版

iMac小白

PullTube for Mac(在线视频下载器) v1.8.5.25中文激活版

iMac小白

强大好用的shell:shell命令

小魏写代码

Dynamic Wallpaper for Mac(Mac动态壁纸桌面) v17.2中文版

iMac小白

FastScripts for Mac(脚本调用工具) v3.3.1激活版

iMac小白

Live Wallpaper & Themes 4K Pro for Mac(超高清4K动态壁纸) v19.4中文激活版

iMac小白

QLab Pro for Mac(音频剪辑软件) v5.3.4激活版

iMac小白

京东商品详情数据获取item_get-获得JD商品详情,Java请求示例API接口

Anzexi58

文生视频Sora模型发布,是否引爆AI芯片热潮

申公豹

人工智能

Sermant 的整体流程学习梳理

华为云开源

开源 字节码 微服务治理 sermant

揭秘百度数仓融合计算引擎

百度Geek说

百度 数据引擎

SponsorBlock for YouTube for Mac(跳过youtube赞助商广告) v5.5.5激活版

iMac小白

QCN9274 and QCN6224 are different, why is one a high match and the other a low match?

wifi6-yiyi

Text Workflow for mac(文本格式转换工具) v1.9.1直装激活版

iMac小白

干货!Windbg 在 TDengine 内存泄漏调试中的应用与实践分享

TDengine

tdengine 时序数据库 内存泄漏 windbg

DevOps实践-打造自服务持续交付-上_语言 & 开发_钟健鑫_InfoQ精选文章