云原生2.0时代下,DevOps实践如何才能更加高效敏捷?
当前全球的数字化浪潮逐步加深,云计算成为当今信息化发展的重要基础设施,云原生(Cloud Native)在数字化浪潮中的角色逐步提升,成为近几年云计算领域炙手可热的话题。
首先我们来看看一张图,看看云原生产生的业务背景。

商业模式决定了整个的研发模式,研发模式又决定了需要采用什么样的技术。从图中看出,传统应用、互联网应用、VUCA时代的应用,所处的不同时代引发的不同需求,由此带来对技术的不同要求。
以往传统的应用需求是相对固定的,通常以项目化运作,用户的访问量可以预测,容量是有限的;而互联网应用的特征是,需求持续发展,产品化而非项目制,用户量并非线性往往会有陡增陡降,7x24小时是基本要求;逐渐到现在的VUCA时代,商业边界、业务层面是完全不可预知的,即便是对于互联网原住民都是巨大的挑战,要求快速地尝试、快速探测、快速的感知,应用是服务化的方式提供,业务敏捷性前提之下,对技术体系的持续发布、分布式海量并发、灰度发布和线上测试都是基本诉求。业务的敏捷性持续发布,应用平台的弹性诉求,商业环境的变化,这是整个云原生产生的业务背景。
一个中心三个基本点,真正构建云原生能力
云原生时代,在享受架构解耦与云端弹性带来的便利同时,对软件研发与交付模式提出了更高的要求。真正做到云原生的成功,我的总结是一个中心三个基本点:

一个中心:
以业务的价值交付为中心,达到快速与高效的交付价值,并且在规模化扩展的同时,兼顾可靠性、灵活性等。
三个基本点:
1、架构层面
- 采用服务化架构/微服务架构实现全面解耦:把系统划分多个功能内聚、粒度合适、业务边界清晰、独立自治的服务/微服务。以(微)服务为单位演进系统架构,演进式的以绞杀者模式,而不是革命式的一次性改造;单个(微)服务以大于一个的无状态进程运行,实现自身的高可用和负载均衡;把业务数据分布到不同的(微)服务中实现数据的垂直切分;
- 通过API,重用云原生公共服务提供的基础能力和架构能力:内部每个(微)服务须充分利用原原生的公共服务提供底层基础能力,例如微服务管控与生命周期管理服务、数据库服务、消息队列服务、缓存服务等;内部每个(微)服务须充分利用应用与资源编排服务,实现部署、配置自动化;
- 通过API,打造生态化经济:API是非常重要的方式,除了定义服务之间的业务边界,更重要的是可以通过API的方式做整个生态,数字化转型中比如开放银行,都是这样的思路,搭一个平台,通过各种合作伙伴在不同的行业、不同的领域提供相关的服务,这些服务是相互进行连接,通过链接和网络的思维来去做这个事情。华为云也在打造自己的API生态。
2、工程层面
- 系统与环境、流程、配置解耦:与架构层面解耦相匹配,系统和环境、流程、配置等等需要解耦,工程层面也需要去相应的匹配跟解耦。开发、测试、生产环境等价,屏蔽环境差异性;采纳不可变的基础设施(immutable infrastructure);
- 构建端到端的DevOps研发体系:研发流程标准化、敏捷化;严格的区分构建、分布、运行的准入准出,并进行版本化和自动化;全自动化测试(单元测试、集成测试、自动生成Mock依赖服务);一切皆代码,代码、配置与环境严格分离,并进行版本化和自动化;(微)服务持续交付流水线(按需发布版本);
- 研发运维一体化:运维和开发互相融合,高度协同,共担职责;自动监控,持续可视化反馈,并最终传导到开发团队;按需实时部署、配置热加载实时生效;
- 使用自服务、敏捷的云化基础设施服务:基础设施以自服务的方式对开发团队提供。依赖底层云化基础设施的计算服务、存储服务、网络服务提供基础运行资源;使用云监控服务监控自身的运行状态包括基础资源使用状态、自身业务运行状态,同时根据自身运行状态触发相应的运维事件,实现弹性伸缩、故障自愈等关键架构特征;
- 核心度量外部指标:业务层面的核心的一个业务指标叫TTM,在DevOps有另外一个词叫Lead Time,就是你的前置时间,从业务需求提出来那一刻起,到这个业务需求上线的时间叫前置时间,这个是可以被客户可知的,所以是端到端的业务指标。技术层面,对应的有多个前置时间,工程这一侧的,则是从提交代码那一刻起,一直到代码上线,这段时间是完全工程可控的,理论上应该是控制在分钟级。这个指标,也是华为云最为看重的一个。
3、组织层面
- 遵循康威定律:应用的架构和组织架构之间是高度的匹配,单体的应用,逐渐到服务化的方式,到逐渐分布式的模式。组织架构也是转移到自组织,没有一个唯一的中心在里面,自组织团队的敏捷性与多样性需要兼顾。整个团队的规模,典型的就是5-10人规模。
- 全功能团队:从全功能团队一直到云化的运维团队。以服务为单位组织整个团队,涵盖设计、开发、测试、发布、部署、运维全流程职能;开发人员、发布工程师、IT和运维之间可信合作
- 云化运维团队:基于云平台的提供的监控、报警等能力,成立专门的团队负责系统运行时的质量,保障系统可用性和业务无中断的升级、回滚
- 自主经营,面向服务的全生命周期:逐渐转型为自主经营的全功能团队。除了技术栈是全功能以外,每一个服务化的团队都需要面向服务进行全生命周期的考虑,除了技术层面的怎么样去产品的设计、开发出来部署,架构层面保持优美,更多的还需要去考虑商业层面的东西,需要考虑服务定位,考虑产品上线以后,运营层面应该做什么事情,应该做什么样的拉新的活动,怎么样促活,怎么样留存。整个团队都需要有商业思维和产品运营的思维。这是整个思维上的转变,去考虑这个服务为什么这么做、谁去用、用的场景是什么,怎样完成商业的闭环。

关注七大领域,持续优化交付粒度,加快交付速度,提升交付质量
云原生架构下DevOps的落地与转型,是一个量变到质变的过程,需要从团队模型、分支模型、测试模型、技术架构、部署模型、基础设施、数据库模型等七大领域进行相应的匹配,持续优化交付粒度,加快交付速度,提升交付质量。以发布频度为抓手,从100天发布一次,逐步的十倍速增长,到10天发布一次。在这两个阶段点,从七个维度来看,需要匹配与采纳的实践是什么。
这是一张能力演进的地图,我们可以清晰的看到自己业务当前所需要的发布节奏是怎样,当十倍速的走到下一个节点,方向在哪里,有的放矢的进行相应的采纳。

持续交付实施框架
华为内部有很多的优秀实践,华为云DevCloud就是生于云长于云的DevOps实践。华为云DevCloud从成立至今,软件的规模、团队的管理以及人员之间沟通的复杂性都急剧上升。通过云化、微服务化、容器化和流水线自动化等工程实践,以及敏捷、DevOps,全功能团队等管理实践,整体规模上升的同时,版本编译、版本构建成功率、系统回归测试、研发作业时间、资源复用率等指标不仅没有降低,反而得到了大幅度的提升,是支撑云原生架构的最佳组织和工程实践。
云原生2.0时代下,DevOps实践如何才能更加高效敏捷?的更多相关文章
- 拥抱云原生 2.0 时代,Tapdata 入选阿里云首期云原生加速器!
3月9日,阿里云首期云原生加速器官宣,Tapdata 突出重围,成功入选31 强,将与多家行业知名企业,携手阿里云共建云原生行业新生态,加速拥抱云原生新时代的无限潜能. 2021年,阿里云正式 ...
- 轮值CEO胡厚崑:到2025年所有的企业都将用到云(云的2.0时代,会有几千朵云几万朵云升起来,这将产生不同的技术模式、商业模式、思维模式)
2016年09月04日 07:38 中国经营报 李凡 在全国工商联“2016年中国民营企业500强”排行榜上夺得头把交椅的华为,向外界描绘了面向未来进一步做大做强的路径. 华为创始人任正非于201 ...
- 公有云上构建云原生 AI 平台的探索与实践 - GOTC 技术论坛分享回顾
7 月 9 日,GOTC 2021 全球开源技术峰会上海站与 WAIC 世界人工智能大会共同举办,峰会聚焦 AI 与云原生两大以开源驱动的前沿技术领域,邀请国家级研究机构与顶级互联网公司的一线技术专家 ...
- 云原生2.0网关API标准发展趋势
摘要:Gateway API希望取代Ingress API. 本文分享自华为云社区<云原生2.0网关API标准发展趋势>,作者:华为云云原生团队 . 云原生网关API标准背景及发展现状 G ...
- 阿里云AIoT云端一体:迎接云原生+低代码时代的到来
距上次2019年参加上海阿里云开发者大会已经近2年的时间了,也许因为疫情的原因,这一两年线下大型活动基本很少了,这次在北京国家会议中心举办的阿里云开发者大会,无论是参会人员的规模,还有演讲嘉宾的级别和 ...
- 腾讯云原生数据库TDSQL-C架构探索和实践
作为云原生技术先驱,腾讯云数据库内核团队致力于不断提升产品的可用性.可靠性.性能和可扩展性,为用户提供更加极致的体验.为帮助用户了解极致体验背后的关键技术点,本期带来腾讯云数据库专家工程师王鲁俊给大家 ...
- 给 K8s API “做减法”:阿里巴巴云原生应用管理的挑战和实践
作者 | 孙健波(天元) 阿里巴巴技术专家本文整理自 11 月 21 日社群分享,每月 2 场高质量分享,点击加入社群. 早在 2011 年,阿里巴巴内部便开始了应用容器化,当时最开始是基于 LXC ...
- 云原生数据库TDSQL-C 容灾的实践和探索
云原生数据库TDSQL-C作为腾讯云架构平台部核心数据库产品之一,致力于为云上ToB用户和公司自研业务提供集高性能.低成本.大存储.低延迟.秒级扩缩容.极速回档.Serverless化七大特性于一体的 ...
- 云原生应用 Kubernetes 监控与弹性实践
前言 云原生应用的设计理念已经被越来越多的开发者接受与认可,而Kubernetes做为云原生的标准接口实现,已经成为了整个stack的中心,云服务的能力可以通过Cloud Provider.CRD C ...
- 2.云原生之Docker容器环境安装实践
转载自:https://www.bilibili.com/read/cv15181036/?from=readlist 官方一键安装脚本 补充时间:[2020年4月22日 11:00:59] 一键安装 ...
随机推荐
- 铅华洗尽,粉黛不施,人工智能AI基于ProPainter技术去除图片以及视频水印(Python3.10)
视频以及图片修复技术是一项具有挑战性的AI视觉任务,它涉及在视频或者图片序列中填补缺失或损坏的区域,同时保持空间和时间的连贯性.该技术在视频补全.对象移除.视频恢复等领域有广泛应用.近年来,两种突出的 ...
- 17.1 隐藏执行CMD命令
本章内容涉及使用Socket API和CMD命令行工具实现本地CMD命令执行.无管道正向CMD和无管道反向CMD三种功能.执行本地CMD实现使用CreateProcess函数创建一个新的CMD进程,并 ...
- z函数|exkmp|拓展kmp 笔记+图解
题外话,我找个什么时间把kmp也加一下图解 z函数|exkmp 别担心 这个exkmp和kmp没毛点关系,请放心食用. 本文下标以1开始,为什么?因为1开始就不需要进行长度和下标的转换,长度即下标. ...
- 在Map或者Collection的时候,不要用它们的API直接修改集合的内容(否则会出现 java.util.ConcurrentModificationException 异常)
http://www.iteye.com/topic/124788 http://www.blogjava.net/EvanLiu/archive/2008/08/31/224453.html
- [Python急救站课程]动态爱心绘画
想不想画一个动态爱心来哄女朋友高兴呢? 那么它来啦 import random from math import sin, cos, pi, log from tkinter import * CAN ...
- Util应用框架基础(四) - 验证
本节介绍Util应用框架如何进行验证. 概述 验证是业务健壮性的基础. .Net 提供了一套称为 DataAnnotations 数据注解的方法,可以对属性进行一些基本验证,比如必填项验证,长度验证等 ...
- 【随手记录】Llama Tutorial 大语言模型实践
这个tutorial的契机是yy突然看到了一个workshop 所以类似于一周大作业的形式,输入command输出使用了自动驾驶哪些模块,代码在这里 所以就干一干,顺便写一个tutorial给大家参考 ...
- cyclone3内部资源
CycloneIII内部资源概述 目录 CycloneIII内部资源概述 Logic Elements and Logic Array Blocks(逻辑元件和逻辑阵列块) LE LAB LAB In ...
- mongodb c driver bson的嵌套访问与层次结构
使用c访问mongodb,需要用到mongodb c driver.c++的driver也是基于c driver封装的. 在使用c driver访问mongodb时,需要与bson打交道,不过c dr ...
- 聊聊分布式 SQL 数据库Doris(八)
稀疏索引 密集索引:文件中的每个搜索码值都对应一个索引值,就是叶子节点保存了整行. 稀疏索引:文件只为索引码的某些值建立索引项. 稀疏索引的创建过程包括将集合中的元素分段,并给每个分段中的最小元素创建 ...