每年数千次演练背后,华为云确定性运维还有哪些真功夫?| Q推荐
凌晨 0:14,位于南京的运维监控中心值班专家收到了业务告警,近 5000 台服务器发生故障。1 分钟内,业务系统通过双活容灾架构,实现即时自动切换。半小时左右,云服务器完成全部故障恢复,业务始终未受影响。
这场在云上生产环境的“故障突袭”,是华为云与华为终端云联合策划进行的一次技术演练。演练规模空前地下架了整个 AZ(可用区)近 5000 台服务器,以极端严苛的技术考验,验证了华为云和华为终端云的服务稳定性、健壮性。
这只是华为云日常实战演练的一个缩影。过去一年内,华为云在内部累计开展超过 2000 次“混沌工程”演练,联合外部客户完成超过 20 次交易类、游戏类等应用高可用演练。通过高覆盖度、高随机性的混沌工程,让华为云的业务不断处于高可用性的实时检测中,确保一旦遭遇真实故障,也能始终保持真正的安全、稳定、高质量。
为了深入探究华为云的运维技术实践,InfoQ 日前采访了华为云 SRE 团队(站点可用性工程师)多位专家,一起聊了聊关于云时代确定性运维的理解与认知。
属于云的时代正在来临。如今再提起这句话,已经不再是云厂商的美好愿景,更是产业界数字化转型的确定变革方向。
据 Gartner 预计,至 2025 年或将有 90% 的企业关闭传统数据中心,企业的行业应用开发将全面走向云化。然而,上云虽然降低了企业的技术开发成本,带来了更大的灵活性。但随着越来越多的设备、终端和传感器联网,越来越多的应用加快云化和 SaaS 化,稳定性和可靠性,已经成为每一家上云企业亟需面对的挑战。
在传统运维时代,运维工程师需要手把手处理服务器、网络等硬件设备,而在云时代,运维工程师已经无法见到物理的任何设备,不再需要直接操作实体资源,负载均衡、动态伸缩、数据迁移等服务全部可以交由云平台厂商来提供。既然云计算释放了运维工程师的精力,那是什么原因使得云时代的运维焦虑变得如此迫切呢?
华为云将云时代运维面临的挑战用“MATE”进行了概括:
M(Messy Complex)解耦的网络:系统服务化之后,耦合会使调用关系变得复杂,如何能快速做好可靠性、可用性观测、问题排查以及问题诊断,成为了云上运维的重大挑战。
A(Active Iteration)快速迭代:传统 IPD 版本周期长达半年,但在 DevOps 模式下,每 1~4 周便会发布一个版本,云上每天可能都有服务更新,敏捷快速的交付方式给运维和交付带来了巨大的挑战。
T(Trustworthy Operation)安全生产:在云计算环境中,有很多比较容易忽略的安全隐患可能被恶意利用。而且云计算环境是一个高度动态的环境,一两次的检查工作并不能保证整个 IT 环境的持续合规,云上运维对动态安全可审计的要求更高。
E(Evolution FullStack)全栈运维:在传统模式下交付产品,只需要对可靠性负责,不需考虑周边可用性制约因素,但是作为服务运营商,需要对服务全栈可用性负责。
回归到运维工作的本质,无论是传统运维还是云业务运维,其根本都是为了保障企业业务的连续性,提供安全、稳定、高质量的 IT 运维服务。
而随着云时代的到来,运维团队必须面临新业务的高度不确定,包括技术迭代的不确定性、人员技能的不确定性以及产品更新的不确定性。在层层不确定加码下,企业都迫切希望找到一个确定性的路径,将安全风险的敞口纳入技术体系保障,让系统持续高质量运行。
可以预见的是,随着数字化浪潮席卷千行百业,无论是软硬件故障、机房故障,还是人为操作导致故障,现网都存在着大量不确定因素。如何应对这种高度的不确定性,便是 SRE 要解决的问题。为此,华为云 SRE 提出了“确定性运维”的技术理念。
自 2017 年起,华为云开始积极探索 SRE 的技术创新模式,目前已发展了国内最大的 SRE 团队之一。基于华为长期的研发实践和企业数字化转型经验,华为云进一步将确定性运维能力演进为涵盖“高可用架构”“动态风险治理体系”“高度智能运维框架”的有机体系,覆盖了应用从产品设计、开发到部署上线,再到日常运行的生命周期全过程。
(在新华社智库《中国云计算创新活力报告》中,华为云斩获安全可靠能力排名第一。)
首先,在确定性的高可用架构中,华为云 SRE 提出了确定下的三个维度定义:第一是传统的可靠性概念,让软件有确定性的失效率,并且该失效率在控制范围内;第二是确定性的恢复时长,软件失效后能在一个确定性的时间内恢复;第三就是确定性影响面,不能因为一个单点的故障就扩散到全网,需要通过一个确定性的爆炸半径,让每次故障的影响只在很小的范围。
“高可用架构,能让我们的云服务软件在前端就具备高可靠、高可用的能力。”华为云 SRE 架构师李宁泊介绍说。以开篇所描写的近 5000 台服务器突袭演练为例,之所以能够实现秒级切换、迅速恢复、业务不受影响,背后便是高可用架构在进行支撑。
据了解,为了尽量避免故障风险,很多云厂商都采用了多 AZ 部署方案。而华为云的特点在于,多 AZ 部署之后,消息日常并不跨 AZ 流动的,让业务实现单一的消息请求,确保故障不跨 AZ 扩散。因此,AZ 内发生的任何故障都不需大费周章地单点定位、恢复,只需要自动进行 AZ 间的整体业务切换,就可以即刻消除故障影响。
动态风险治理体系将 AI 能力引入运维,以技术驱动实现风险提前冒泡,并及时主动清除;持续提升监控、定界与快速恢复能力,构建混沌工程等主动运维能力;用数据智能支撑运维工作的持续改进。
同时,还需要有高度智能的运维框架支持,托数据中台,结合先进的算法,实现智能告警、智能故障定界、自动恢复等功能。
此外,为了帮助处在不同场景的企业,有效地规划和制定运维策略,华为云还推出了确定性运维成熟度模型,帮助业内同行基于运维模式,对组织、文化、体系、能力、工具进行评估,共同探讨优化策略。
谈及华为云 SRE 团队的工作重心,受访的专家们给了两个关键词——“向前走”和“向下走”。
第一个关键词是“向前走”,它主要有两层含义:一层是解决问题,另一层是定位问题源头,杜绝类似问题重复产生。在早些年云业务刚起步时,SRE 工作还是聚焦于被动式运维,但随着业务规模、服务器规模呈指数级增长以后,SRE 团队发现,修复是远远满足不了业务发展诉求的。
在近年来的探索中,华为云 SRE 发生了一个关键变化——基于全生命周期的质量管理,运维开始从后端走向前端,建立了一个“质量的大循环”,不断提升整个华为云的架构健康度、开发健康度、交付健康度以及运维健康度。在 SRE 运转体系愈发成熟的情况下,SRE 要扮演一个“先知”的角色,来发现未知的风险或者故障,同时也需要站在更高的视角,提前预知重大风险和隐患,并且通过主动运维的方式把削减风险。
另一个关键词是“向下走”,即把专家的经验和能力沉淀到系统,变成组织资产,支撑业务往前快速发展。以华为云的现网举例,如果硬件发生故障,已经基本不需要人为干预了,SRE 团队已早早将这种能力编排进引擎,故障自愈系统将会自动识别该硬件属于哪个服务,继而调用这个服务的隔离接口或者业务迁移接口,并针对这个服务做恢复预案,让其立刻恢复。
(华为云贵安数据中心)
面对国内公有云市场竞争加剧的发展态势,专家认为,随着公有云厂商的发展成熟,各家在对外的基础服务功能上会慢慢趋同。在这种情况下,云厂商实现突围的关键要素是什么呢?毫无疑问,安全稳定高质量的服务是必选项,也是决定性的基础。
当企业选定了一家云厂商后,它能不能持续地、确定地来保证现网的质量,决定了合作的未来。因此,在李宁泊看来,云厂商之间的竞争力最终是质量竞争,谁的质量更可靠,功能更稳定,谁就更容易得到客户信赖。
在数字时代浪潮中,没有任何一个技术架构可以永远不变,没有任何一个解决方案是完美的。专家们也认识到,运维理念和技术的演进升级永远在路上。例如,在强调现网质量的同时,也需要在易运维上做更多工作,持续降低企业用云成本,保障全球企业和开发者的业务敏捷和商业成功。这也是华为云 SRE 团队安全稳定高质量业务承诺的目标所在。
写在最后
现网的安全、稳定、高质量一直是华为云的关键词,尽管这三个词听上去很简单,但从外部视角来说,我们能看到的只是冰山上的一部分,在冰山之下还有大量的工作要去做。
如何把不确定的要素封闭在云厂商之内,而不外溢到客户侧,是华为云 SRE 持续追求的业务目标。“质量是我们所有研发团队的自尊心。”这是华为云 SRE 团队经常提到的一句话,而从这句话的背后,也体现了华为云对产品质量的决心和信心。
微信扫码关注该文公众号作者