共计 7791 个字符,预计需要花费 20 分钟才能阅读完成。
对于明天的分享主题——“平安生产”,内容次要分为三大部分:
- 第一局部是平安生产的背景,以及咱们对于平安生产这个畛域的了解;
- 第二局部次要介绍阿里巴巴团体的平安生产工作到底是怎么发展的,借此给各位有作为参考和借鉴;
- 第三局部是咱们提炼的平安生产整体计划,帮忙在座的各位去到咱们本身的企业或者环境下,去落地平安生产。
数字化平安生产背景
谈到平安生产,首先咱们要看一个行业大背景,其实刚刚我的共事曾经讲到了,就是当初各行各业都在做本身业务的数字化转型降级。咱们的业务开始做上云、线上化,利用架构开始做云原生革新。当咱们每一个业务都跑到线下来之后,咱们就会发现,原来传统的平安生产理念及管理模式,也须要转变成线上化、数字化。
随着线上化的零碎越来越简单,业务故障无奈防止。故障的产生,对咱们企业的影响是微小的,怎么样晋升故障的定位、解决能力及恢复能力,是现阶段平安生产工作中最重要的指标。 在业务数字化转型降级的过程中,咱们每个企业都应该同时去思考,怎么同步实现数字化平安生产体系的建设。
从业务视角的平安生产挑战说起
对于平安生产,从以上几个近期产生的故障能够看到,不仅仅是咱们一般的企业,就算是在平安生产畛域重度投入的国内外大型互联网公司,也会呈现业务故障。故障产生之后不仅仅是业务中断、经济损失,舆情影响也会带来十分大的挑战。咱们怎么样来帮忙大家把平安生产工作体系建设好?就是明天咱们探讨的外围主题。
在阿里巴巴团体外部,通过十多年的摸索,咱们积淀了一系列的产品和服务体系,以及平安生产建设的方法论。咱们总结出了“高可用、稳固压倒一切”,作为咱们面对业务侧平安生产挑战的指导思想。
什么是数字化平安生产
明天咱们讲数字化平安生产,大家可能第一印象想到的平安生产还是比拟传统的。比方一些工厂、车间、煤矿或者建筑工地上,咱们常常会看到一些标语、海报和一些相干的理念。传统的平安生产,是指在生产经营流动中,为了防止造成人员挫伤和财产损失的事变而采取相应的事变预防和控制措施。
咱们明天探讨的这个数字化平安生产,其实是跟咱们的业务数字化转型降级是相结合的,次要解决企业业务连续性治理问题。 如产生预期或无预期的事变或灾祸时,企业以正当的老本和资源爱护重要的业务流动,确保在规定的工夫内复原继续运行,最大水平地缩小灾祸带来的冲击并将中断影响降至最低。
数字化平安生产,有以下几方面的特殊要求:
- 数字化赋能的平安生产。 业务从线下转移到线上之后,实现业务全生命周期触点的数字化革新。这时,平安生产的重心也会从线下转移到线上,同时平安生产工作自身也须要数字化赋能。
- 云原生加持的平安生产。 数字化转型带来了架构的降级,所有的零碎都在云上,都是利用先进的云原生、微服务架构设计的。咱们的平安生产平台也须要同步降级,去无缝连接适配云原生的产品能力,以及面向未来架构的扩大能力。
- 最佳实际的平安生产。 平安生产体系建设须要通过实际的测验。在阿里巴巴团体外部,咱们有个一百多人的团队,在平安生产建设方面继续摸索,积淀了一套非常适合各行各业的最佳实际,并且还在继续演进。
数字化平安生产建设内容
基于以上探讨,为了做好平安生产工作,核心内容咱们拆解成三个局部,就是事先、事中、预先建设。
- 事先: 咱们要有相干的组织架构保障,要有事先的制度流程体系、零碎架构的建设,须要具备相干零碎的水位监测、故障监测能力,以及与 SLA 匹配的防护、切流、变更管控治理能力。
- 事中: 咱们要做到麻利疾速协同,让故障疾速发现、疾速定位、疾速复原。比方在阿里外部,双十一或者说大的故障场景,咱们通常须要协同上百人、甚至是上千人的团队。在这样的一个背景下,首先咱们须要对立的机制保障各自为政,以及上一位共事提到的全链路监测(可观测)的能力,保障疾速发现。另外还须要系统化的能力做事件处理过程的自动化协同,依赖零碎的 trace 及拓扑能力实现疾速定位,以及须要依赖零碎的防护能力及单元化容灾多活,真正实现故障的疾速复原。
- 预先: 咱们须要去反思,总结根因,定义 action。每一个故障应急实现后,咱们都须要做复盘,定级定责,产出零碎改良项,保障咱们的整个架构继续迭代晋升。对于管理者,咱们须要去剖析故障的起因是什么,处理过程的团队配合效率怎么样,分团队分产品的稳定性数据统计,而后保障咱们整个平安生产治理的体系是可度量、可考核、可治理的。最初通过可视化的能力,指标化、全局化把控业务平安生产。
阿里巴巴团体最佳实际
阿里巴巴团体寰球运行指挥核心
首先在组织保障层,咱们有一个组织叫寰球运行指挥核心,也就是 GOC。在团体外部,有六十多个业务 BU 把所有平安生产相干的业务,接入 GOC 对立协同解决。
而后是咱们刚刚说到的监测(可观测),这是十分重要的一个环节。咱们会把所有的可观测,以及人工反馈(比方淘宝客服、阿里云客服收集的反馈),汇聚到对立的事件核心,利用系统化平台做治理。
最初所有的故障应急都汇聚到两岸三地的指挥核心,相应的应急值班同学,利用应急协同、故障定位、快恢工具进行故障应急与快恢处理,并且进行预先复盘与改良,通过机制经营等多种策略管控整个团体的平安生产危险事件。
平安生产体系大图
平安生产是一个残缺的体系,借助这个架构图给大家做一个大抵的介绍,团体的平安生产体系比拟大,咱们把整体工作拆分成一个个小的模块。
首先有平台的技术能力撑持。 通过后面的介绍,咱们理解了平安生产工作波及很多不同角色的人,来自不同业务零碎的可观测数据,平安生产治理须要压测、故障应急协同、演练、定位、切流、复盘等能力,咱们团体外部有相应的一个平台做无效的撑持。
在这个平台上,建设各个领域的零碎,包含故障治理、多活、全链路压测、变更管控等这些能力都是在这个大的平台下面做对立的撑持,平安生产平台的建设,自身也是平安生产工作的数字化转型。
在平台的下层,是相干的管理体系、数据经营、技术文化建设。 晚期咱们在做平安生产工作的时候,最大的体感就是无奈度量,出了故障之后无奈定位是哪里出了问题、谁的问题,通过故障等级定义、故障分、稳定性分等机制体系及经营流动的建设,能够实现平安生产工作的可度量可考核。
而后平台和体系建设须要配合相干的演练来做标准化的验收, 保障这些体系和产品能力可能无效的落地并发挥作用。
平安生产外围因素
人员 & 组织
平安生产的外围次要有三局部,第一局部就是人员组织的架构建设,咱们认为平安生产是企业的一把手工程,须要建设一个自上而下的对立组织,可能把所有平安生产能力协同起来。
在团体外部,咱们是有这样一个垂直的组织架构,指挥核心是和每个业务 BU 平级的一个部门,而后上面有相应的反对各个业务 BU 的业余角色,横向的话有平安生产的值班长、仲裁委员会等这样的一些组织角色,保障咱们的体系可能无效落地。
制度 & 流程
第二局部次要是机制流程,团体通过十多年的建设,积攒了十分多的制度流程。
- 全团体的对立的故障等级定义: 为应急过程的资源调度、决策提供了量化的规范;
- 标准化的应急流程: 让事件处理快捷、有序;故障分、稳定性分的考核规范,对立掂量平安生产的成绩;
- 故障定级、定责、争议协商机制: 保障了平安生产工作的长效机制。
工具平台
最初一部分就是工具。团体的制度和流程不是仅仅停留在纸面,或者挂在墙上的。咱们所有的机制流程都是有相应的零碎平台做运行撑持,而后基于咱们的零碎能力、机器人、NLP 技术等,做到无效的落地,把所有的这些机制落到理论的每一天的工作,每一个执行环节当中。
故障等级定义
故障等级定义是平安生产体系的运行根底。咱们把生产环境中,无论什么起因造成的服务中断或者服务品质降落及体验降落对立定义为故障。大家留神这是 基于业务视角去定义的故障,它的益处就是可能先于用户发现,相比传统的监测准确度更高。
而后再往上层的话,咱们会有很多撑持平台,如中间件、数据库、云平台、网络、服务器等等,上层的指标及故障定义,咱们会依据各个业务的特点来针对性的做定义。然而总体准则还是以业务影响为主,从上往下,只是上层零碎的业务,通常就变成了下层零碎的业务依赖。
基于故障等级定义的根底,理论落地的时候,在团体外部有十分多细分品种。这里简略列举几个罕用类别:P 序列示意 通用等级定义 、D 序列代表 数据品质等级 、S 序列代表 影响重要客户水平 、E 序列代表 舆情等级、 I 序列 基础设施相干等级。
每一个序列咱们通常有 4 个级别,4 代表一般故障,1 代表重大故障,数字越小紧急水平越高、重要性越高。
在理论落地过程中,首先咱们要把所有的业务纳入治理范畴,对全量业务做故障等级定义。故障等级定义 须要协同各个角色,包含开发、测试、产品、运维、业务依赖方等一起来做等级定义评审,保障提前达成统一。故障等级定义正式公布之后,大家就会依照这个等级去做投入和配套后端资源,一旦产生故障,就能够依据等级发动不同的应急流程,协调对等的资源参加应急。
每个业务场景故障等级的确定,次要参考业务重要性、影响面、继续时长来做综合的判断。确定好的故障等级定义要确保是结构化可度量的,要跟全链路可观测做对立的协同,实现故障主动发现。
一旦产生故障之后,咱们会依据可观测指标,定义规定,主动试算故障等级,达到故障规范后通过机器人的形式主动发送故障通告,同时联合全链路可观测的拓扑能力、trace 能力提供初步定位辅助。
1-5-10 机制
有了故障等级定义咱们就能够精准辨认业务的故障危险,及时发现并处理。那么,如何度量故障处理的效率?这就波及到数字化平安生产中一个最外围的一个机制,故障 1-5-10 机制。
在团体外部,所有的故障产生之后,咱们定了一个考核指标,要求业务故障 1 分钟发现并通告,相干人员 5 分钟内做出响应和初步定位,10 分钟实现故障疾速复原。而后基于这样的一个外围领导机制,咱们再去向下做二级拆分,建设整个平安生产体系。
1-5-10 策略合成
1-5-10 次要关注“发现、定位、快恢”三大环节,再细分开来就会波及架构、开发、运维的多环节。 每个环节都有本身的业务规定、相干的机制,以及有相应须要咱们建设的零碎。
比方“1”局部次要是波及全链路可观测,也包含咱们平时比拟关注的像智能基线、全链路监测,这些都是咱们在这个环节须要去做的。
而后第二局部的话,对于 5 分钟响应和定位,通常状况下咱们都是基于挪动化的形式做通告,包含短信、电话、钉钉。而后还有协同的工具,咱们会基于钉钉机器人去做协同,利用 NLP 机器人技术做签到、应急过程交互,实现 ChatOps。
对于定位的话,咱们须要有可观测零碎、预案零碎、变更管控这样一些能力。通常状况下在平台内产生一个故障的话,咱们首先会收到一个故障通告,而后的话咱们会收到故障前相干的一些变更信息,零碎会推送这个场景相干的预案,应急人员会基于可观测能力实现辅助定位。
对于 10 分钟快恢局部,咱们最大的一个大招,就是单元化的切流,只有零碎断定出故障的影响面及预估复原时长不可承受,咱们能够基于单元化多活能力,做分单元切流,先复原后判断。另外小规模故障也能够基于预案零碎做部分的快恢。
最初的话就是咱们相干的经营机制建设与演练验收,经营机制也是平安上十分重要的一部分,它能够保障相干平安生产的能力可能继续的迭代。演练能够实时利用线上环境模拟故障注入,测验零碎及流程。
可考核的度量规范
平安生产工作有一个很大的痛点就是无奈度量,通常咱们不晓得哪个产品稳定性好,哪个团队做得好,更不晓得将来的改良方向。基于以上的产品技术体系建设,咱们设计了很多经营规范。
- 故障分: 每一个故障产生之后,零碎会主动评判一个分值,根本的计算逻辑就是影响面、继续时长、设定权重。它是一个后果指标,用来掂量产品和应急效率,通过继续的经营,咱们能够制订团队的故障分 quota 值,进而来设定平安生产相干的将来指标。
- 稳定性分: 由工程设计、架构、运维等畛域的 14 个指标形成。咱们会去抓每一个业务开发团队,设计环节的 cover review,运行环节的可观测覆盖率,公布过程中的灰度的能力以及预先的 action 完成率等指标,通过系统化的形式生成评判指标。稳定性分是过程指标,考核平安生产相干的投入状况。
故障分和稳定性分基本上是最外围的两大指标, 是用来评判一个团队在平安生产畛域做得是不是合格的重要规范。此外还有很多业务可用性、熔断、变更管控等等一系列机制,这些机制都会跑到各自相干的零碎平台外面,实现自动化治理。
应急流程
对于应急流程,咱们会把所有的事件都归集到 GOC。事件接入次要有两种类型,一个是用户侧反馈,这块是人工的局部,基于智能客服对接;另一部分是可观测告警,咱们对接了团体业务 BU 数十个监测零碎。大量的告警数据进来之后,就波及到收敛、克制和智能算法解决,再联合后盾的机器人解决过滤,最初会交融到对立的平台做故障等级断定,事件或故障会走钉群做协同,一般非紧急事件走工单,零碎之间会有相应的协同,处理过程通过知识库做无效的积淀,全流程数据通过大屏做对立可视化展现。
处理过程全副在钉群里实现,故障通过之后,相干人员须要群里签到,应急过程都会通过群外面来做对立出现。一旦有重大故障的话,咱们会降级到咱们的高管群,协同更多的人。
机制经营
除了刚刚讲到的产品能力和相干的组织架构以外,机制经营也是平安生产工作十分重要的组成部分。咱们会有十分丰盛的经营流动,各种各样的评奖,体现优良的团队的教训可能失去分享,做得不好的团队能够去总结改良,以此来保障平安生产的长效机制。
数字化平安生产体系建设计划
数字化平安大图
企业要做平安生产建设的话,外围分为两大部分 :一部分是技术体系建设,一部分是服务体系建设。
技术体系局部,咱们须要造成对立的平台。刚刚其实有个同学曾经提到了,说当初企业外面监测零碎十分多,各个业务都有。而后从应用层、中间层、数据库、云平台、网络都有各自的零碎。如果说咱们依照这样一个扩散的形式去建的话,其实很难造成对立的应急指挥核心的成果。咱们倡议是建一个对立平台,而后这个平台具备平安生产的各种可操作的能力,把各零碎的业务能力整合起来,造成对立的指挥核心。
在服务这块的话,咱们要保障机制文化、组织架构可能无效反对平安生产工作的落地。
数字化平安生产平台
对于数字化平安生产平台,咱们设计了一个框架,通过各个领域的组装,整合现有能力,比如说可观测能力、预案、工单、事件治理,把它形象成一个整体的平台,人员及事件全生命周期对立治理。而后通过平台咱们造成相应的业务畛域,撑持咱们各种各样不同的业务场景,服务于下层各种各样的业务,这个是对立的平安生产平台建设的整体架构思路。
数字化平安生产体系建设 - 全生命周期服务设计
事先
企业须要在做远期布局的时候,把平安生产相干的产品架构、业务架构设计清晰,须要有相应的业务管理的思考。
事中
运行过程中,咱们要思考零碎能力建设,比如说演练、压测、限流、多活等等,保障咱们可能无效地评估和防备危险。
这里介绍一个案例,就是这段时间大家比拟相熟的一个业务利用,疫情防控零碎,如衰弱码、场合码、核酸检测。后期咱们会去给整个零碎做压测,评估线上的容量水位。
评估的后果是线上生产零碎的容量上线是 1 万 QPS,咱们即按这个流量筹备系统资源,这个时候如果说峰值流量超过 1 万 QPS,那咱们会通过配置流量防护的能力,保证系统在极其状况下也不至于说整个崩掉。
而后再往上一层,如果零碎对于 SLA 要求更高,那咱们还须要建设零碎的双活能力,这是平安生产的一个大招。咱们要保障这个业务零碎在极其状况下,整体崩掉的时候,咱们有相应的双活的站点能够接管业务。所有这些能力,都须要在对立的平台外面来做相应的对立调度治理。
预先
最初一部分是预先相干的改良。这部分内容其实涉及面也十分广,比如说咱们的应急协同能力的改良,产品架构的改良,整个管理机制的改良。改良是否按时实现,落地成果是否现实也是一个十分重要的闭环。咱们须要有平台做相应的撑持。
数字化平安生产 - 全息可观测平台
对于平台能力建设,咱们把每一个重要环节拆开来看。首先是可观测,这部分的话其实就是刚刚咱们讲的 acos 的全链路监测,再补充一点就是咱们的可观测不肯定要依赖于某一个平台,而是要把业务现场所有监测能力做无效整合。acos 实现兼容专有云 arms 利用监测,并且加强了业务、日志、异构监测零碎的接入能力,通过可视化能力的晋升,实现疾速定位。
数字化平安生产 - 全链路压测
第二局部是全链路压测。咱们在做平安生产的过程中,最外围的内容之一是要先理解咱们的平台到底是怎么的一个解决能力,咱们要摸清楚零碎的水位,极限的承载能力。这样的话,实在业务的峰值流量到来时,咱们能力做到成竹在胸,轻松应答。
全链路压测在团体内的各种大促流动中都属于至关重要的环节,每次全链路压测都是在生产零碎进行的,这样能够保障所有压测进去的数据是实在的,相应的短板和零碎问题,跟线上的问题是截然不同的,精确找到短板,晋升业务零碎整体的压力水位。
数字化平安生产 -“1-5-10”应急协调
这里次要介绍 1-5-10 应急协同,平安生产体系在理论的建设过程中,首先咱们须要把人工反馈的这个事件和告警对立的接入,而后从业务角度进行故障等级定义,保障故障的 1 分钟疾速发现,精确及时的通告。
在应急过程中,咱们会有相应的横向撑持能力,包含资源的拉通,跨团队、跨厂商的人员协同,devops 能力,Chatops 能力的植入,保证系统可能主动找到接口人,并且辅助实现疾速定位。
在建设初期,次要依赖于咱们本人的现有能力做无效整合。当然成熟的计划咱们都有,但不肯定是说咱们起步要齐全改版、从新开始,通常企业更须要基于咱们现有的现状来做。而后快恢局部包含相干的预案、容灾双活等相干的规定能力。1-5-10 是平安生产建设中,最容易落地和最疾速可能看到成果的局部。
数字化平安生产 - 流量防护
对于流量防护的能力,刚刚曾经大略提到了一部分。
在事实环境中,为了应答突发流量峰值,咱们须要筹备额定的资源。这个其实是一个老本和效率的一个折中计划。有些业务可能咱们在建的时候就会评估一个业务的峰值,基于这个峰值,咱们可能不会无限量的来筹备计算资源、存储资源,然而业务峰值来了之后,咱们又不可能让咱们的零碎进行服务。
所以咱们就须要零碎的限流能力,保障极其状况下业务可用,并且给运维操作预留扩容工夫。通常状况下,咱们再配合刚刚介绍的全链路压测,能够通过流量防护能力,配合咱们云原生容器化相干的弹性能力,来保障相干的流量洪峰可能平稳过渡,最大限度地撑持整体业务的稳定性。
数字化平安生产 - 容灾多活解决方案
容灾多活是平安生产的一个终极大招,当呈现大面积故障的时候,如果咱们依赖独立的定位和恢复能力,可能无奈满足重要零碎的 SLA,这个时候咱们就须要建设业务级的容灾多活。
在咱们高阶的容灾计划中,整体架构都是单元化的,也就是业务级异地多活的计划。然而很多企业通常主导计划还是灾备,通过做数据库同步,存储复制,每个利用本人管本人的那一部分,来取得相干的容灾能力。
容灾多活零碎中有一个总的管控平台,把流量接入层,中间件以及数据库,做协同治理。能够了解为咱们是一个大的流量调度零碎,而后保障在业务产生故障之后,它能够主动地去做单个利用的流量调度,单个利用的相干业务切流能够自助化执行,切换过程平台自动化实现,不须要利用做手工调整。
多活建设在资源利用率、切换成功率、自动化水平方面都有显著的劣势,也是个企业平安生产建设的终极目标。