轮转表的f是什么意思,在手表中p和r是什么意思

首页 > 车主 > 作者:YD1662023-11-16 22:10:18

基础组件升级:通过对ECS管控自研的业务基础组件进行架构升级来应对业务未来的规模化发展。

性能优化:多维度的性能调优策略来提升管控整体服务的性能指标。

2.2 全链路稳定性治理

稳定性体系化建设是我们在过去一年摸索中最重要的一环,对此笔者的心得是:稳定性治理一定要有全链路顶层视野,从上至下进行细分。下文将简单介绍一下ECS管控稳定性治理体系。

1)数据库稳定性治理

数据库是应用的核心命脉,对于ECS管控来说,所有的核心业务全部跑在RDS之上,如果数据库发生故障,对应用的损害无论从管控面或者数据面都是致命的。所以,SRE做的第一件事情就是守住核心命脉,对数据库稳定性进行全面的治理。首先,我们先来看一下ECS管控在规模化业务下,数据库面临的问题:

对于数据库的问题我们的策略是数据库 业务两手抓,单纯优化数据库或者业务调优效果都不是最佳的。比如典型的数据库大表问题,占用空间大,查询慢,如果单纯从数据库层面进行空间扩容,索引优化可以解决短期问题,当业务规模足够大的时候,数据库优化一定会面临瓶颈,这个时候需要业务调优双管齐下。下面简单介绍一下优化思路:

下图是ECS在数据库稳定性治理上的几个探索。

轮转表的f是什么意思,在手表中p和r是什么意思(5)

2)监控预警治理预警对于问题与故障的发现至关重要,尤其在规模化的分布式系统中,精准而及时的监控可以帮助研发人员第一时间发现问题,减少甚至避免故障的发生。而无效、冗余、不精确的低质量报警不仅耗时耗力,影响SRE on-call人员幸福感,同时也严重影响故障诊断。ECS管控预警质量不高的因素主要包括:

针对上述情况,我们的策略是针对预警进行体系化整理,实现预警的真实性、准确性、精确性、高质量。我们的打法大概分了以下几个步骤:

3)故障诊断

关于故障恢复我们有一个1-5-10的理想模型,意思是1分钟发现问题,5分钟定位问题,10分钟恢复问题。1分钟发现问题依赖于前文提到的高质量的监控预警体系,5分钟定位问题则依赖于系统的故障诊断能力,如何基于已有的预警信息实现故障快速诊断面临一系列挑战:

在故障诊断体系的建设上,我们初步划分三个阶段:

4)全链路SLO

没有100%可靠的系统,对于终端用户而言99.999%和100%的可用性没有本质区别。我们的目标是通过持续迭代优化保障用户99.999%的可用性服务体验,而现状是终端用户发起的行为会经过一系列中间系统,任意一个系统可靠性出现问题都会影响客户体验。而全链路各个节点的稳定性如何衡量是我们面临的问题,对此我们开始了全链路SLO体系建设,主要策略如下:

5)资源一致性治理

根据分布式系统CAP原理,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)无法同时满足。ECS管控作为规模化的分布式系统面临同样的问题:资源一致性问题,具体表现在ECS、磁盘、带宽等在ECS管控、订单、计量等多个系统存在数据不一致问题。分布式系统为了保障系统可用性,通常会牺牲部分数据实时一致性,转而通过最终一致性来解决。针对ECS的技术架构及业务特性,我们对保障资源一致性的策略如下:

2.3 SRE流程体系建设

ECS在 近百人并行研发& 核心应用每日发布&全年数千余次发布 的背景下,可以做到故障率每年下降的关键因素之一,就是有一套相对完善的研发与变更流程保障。下文将简单介绍ECS SRE在研发与变更流程体系上所做的的一些探索。

轮转表的f是什么意思,在手表中p和r是什么意思(6)

研发流程:整个软件生命周期研发流程规范升级。1)设计流程与规范从软件工程角度来看,越早引入问题带来的人力消耗和经济损失就越小。没有被良好设计的系统后续在维护阶段投入的成本要远高于前期设计的投入。为了把控设计质量我们在设计流程与规范上做了如下探索:

2)CodeReview升级之前ECS的CodeReview主要在GitLab平台,其主要问题是gitlab与阿里内部持续集成相关组件集成不够稳定、另外无法设置准入卡点,Aone CodeReview平台很好的解决了与Aone实验室的集成问题,并且提供了代码合入的卡点配置功能,另外我们定义了一套ECS管控的CodeReview流程,如下所示:

3)全链路CI标准化我们将ECS管控所有核心应用按照标准模式统一迁移至标准CI平台,大幅提升CI成功率,减少频繁人工干预造成的人力损耗。我们的方案如下:

轮转表的f是什么意思,在手表中p和r是什么意思(7)

4)全链路日常/隔离环境打通ECS部署环境复杂度极高,具体表现在部署架构复杂、部署工具多样、依赖多(几乎依赖了集团和阿里云所有的核心中间件及应用),在近百人并行研发的模式下 稳定可靠的全链路日常环境是研发效能与质量的基础保障。全链路日常环境的改造无法一蹴而就,我们当前等构建路径大致如下:

5)预发环境使用规范预发环境与生产环境使用相同的数据库,很容易出现预发测试影响生产服务稳定性的问题。在预发与生产无法数据隔离的情况下,我们的短期方案是通过标准化流程来提升预发布代码质量,尽可能减少或规避此类问题发生。

6)FVT发布准入每天凌晨通过运行基于OpenAPI的功能性测试用例集,来验证预发布代码的稳定性,是日常发布准入最后一道防线,FVT 100%通过率极大保障了ECS核心管控每日发布的成功率。7)无人值守发布的探索当前发布模式是发布前一天晚上值班同学基于Develop分支拉取release发布分支部署预发,发布当天观察FVT 成功率100%通过后通过Aone进行分批发布,每批暂停观察业务监控、预警、错误日志,在该模式下核心应用每日发布大概占用0.5人/日。为了进一步提升人效,我们在自动化发布流程上进行来一些探索:

轮转表的f是什么意思,在手表中p和r是什么意思(8)

上一页1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.