2023 年 5 月 27 日,由中国信通院混沌工程实验室主办,腾讯云计算(北京)有限责任公司、华为云计算有限公司协办的混沌工程实验室深圳站沙龙成功举办。沙龙以“保障系统稳定,构建韧性业务”为主题,旨在共同交流实践经验,深入探索业务系统的稳定性保障,提升行业内对系统稳定性的认知。来自腾讯云的周峰以“腾讯云混沌工程实践“为主题在上午场进行分享,来自腾讯云的周永飞参与了下午场的“系统稳定性保障“圆桌讨论。 混沌工程实验室简介:混沌工程实验室(ChaosLab)由中国信通院牵头成立,集产学研多方力量,聚焦混沌工程与分布式系统稳定性关键技术研究,实验室成立以来,坚持探索多样、有效的方式,持续推动系统稳定性相关技术在行业内的认知度及应用落地。
随着数字经济转型逐步深化,众多企业正迈入全面上云阶段。然而,云计算架构所带来的复杂性也让稳定性面临极大挑战。伴随着云计算规模的快速增长,云服务作为社会基础设施的重要性也日益提升。腾讯云深知质量乃生命线,稳定性至关重要且不容忽视。
为了应对稳定性挑战,团队对产生这些问题的主要因素进行了深入剖析。这些广泛存在的因素包括内部的代码bug、操作变更问题,还有外部环境因素诸如运营商、数据中心硬件等所引发的稳定性问题。这些挑战所带来的损失和破坏力对云服务商来说是难以承受的,不仅仅涉及经济损失,更关键的是可能损害客户口碑。因此,腾讯云自上而下高度重视稳定性建设,并积极投入资源。
自2018年起,腾讯云开始深入探索混沌工程,逐步在内部实施和推广,由过去对故障的被动应急响应转向主动预防探索。
腾讯云在应对内部众多业务场景时,遇到的关键性挑战是什么?又是如何实践落地混沌工程的?
首要难点在于业务团队投入混沌工程的驱动力有限。面对研发和迭代各种功能需求,以及处理线上问题的压力,导致在混沌演练方面的时间和精力相对不足。
针对动力不足的挑战,综合考虑了多个方面,采取具体方案如下:
在整个混沌演练的过程中,关注以下三个核心环节:
经过持续实践,上述方案和核心环节为实现高可用性目标提供了稳定可靠的支持。
从混沌工程的角度来看,越靠近生产环境,获得的价值越大。然而,靠近生产环境的同时,出现问题的概率也会增加。如何在不引发新故障前提下控制爆炸半径和影响范围,是第二个难点。
对此,团队采取了以下两种解法:
解法1: 类生产环境演习——新区断电演习
选择尚未对客户开放的新可用区进行“新区断电演练”。正式开区前新区已完成所有线上环境配置与部署,与生产环境一致,在这个场景下开展严谨的容灾测试及断电演习。过去的几年里,腾讯云所有新区在正式开放前,都会要求进行断电演习。在腾讯云自有机房,我们会与现场的 IDC 合作,直接切断相关设备电源,模拟最为真实的断电场景。
同时利用可视化技术,全程监控演练过程中的设备状态变更,从断电到系统恢复正常运行。依据可视化数据,内部设定严格的恢复时间目标,持续进行考核与优化。此外,这种演练还能有效揭示与梳理隐含的云产品间依赖关系。
解法2: 生产环境管控——产品安全兜底策略
在生产环境中,建立一套严格的管控措施。从变更管控、业务资源权限管控,到高风险操作的审批确认,保障整个过程的可靠性与安全性。同时,平台提供了一系列精细化控制策略,如灰度发布能力、安全护栏以及回滚功能,作为基础能力支持团队进行混沌工程实践。
通过上述两个核心举措,有效地实现了混沌工程实践中爆炸半径与影响的有效控制。同时,这些方法不断优化并提高系统的可靠性和稳定性,为混沌工程实践带来更强大的力量。
最后,在众多演练工具当中,如何降低门槛提高演练效率,是第三个挑战。虽然市场上有众多开源和商业化的演练工具,但腾讯云始终努力寻求更高效地进行混沌工程实践的方法,基于腾讯云业务自身特点自研了腾讯云混沌演练平台产品,产品提供以下能力:
演习全生命周期支持:将演习过程划分为三个主要阶段:事前、事中和事后。在每个阶段,都为团队提供相应的支撑服务,包括演习计划制定、实施过程的模板化、执行过程的可视化以及最终演练报告生成与隐患跟踪。
经验快速复用:由于腾讯涉及众多业务场景,这些业务具有明显的差异性。因此,在实践演习过程中,重视总结优秀的或具有通用性的行业经验,并将其模板化,内部将这些模板化经验称为“预制菜”。通过这种方式,不同业务之间可以互相借鉴,实现快速学习和部署。
过去几年,腾讯云在内部持续推动混沌工程实践展开,云上故障数量和故障影响时长都显著下降。
仅在2023 年过去五个多月中,内部就完成了超过2000次的混沌工程演习任务,跨越多个部门,覆盖50余团队,广泛进行深入推广与落地实施。
这些成果充分体现了混沌工程在腾讯云稳定性保障领域的作用,进一步推动了我们的稳定性保障工作向更高质量方向发展。
在于腾讯云客户交流的过程中,客户经常会问:腾讯面临这么多业务场景,是如何做稳定性治理的?为此,自2021年起,团队把面向腾讯内部几百款产品在演练实施过程中的经验和方法进行产品化,推出混沌工程产品腾讯云混沌演练平台,力求为客户提供故障注入能力和生命周期管理能力等实质性服务。
在未来,团队将持续关注混沌工程产品与用户业务实际业务场景的契合度。力求将故障注入产品与业务场景端对端地打通,并在隐患挖掘、问题治理和演习验证过程中形成闭环管理,这也正是团队一直在思考和推进的方向。
腾讯云已成功与金蝶等众多客户开展实际演练和落地项目,这些合作让我们积累了丰富的客户应用场景及经验。同时,在业内荣获信通院“混沌工程先锋实践者"优秀案例,获工信部云服务稳定运行演练“十佳优秀报告”称号,并成为首批通过可信云混沌工程平台能力要求最高等级-先进级认证企业。这些成果不断激励着我们提升混沌工程能力,共建稳定性治理体系。
随着产品化的发展,我们也将混沌工程能力扩展至专家服务领域。结合腾讯海量业务运维经验及腾讯云产品所具备的容灾能力,高可用服务专家团队致力于为公有云客户提供高可用容灾建设方案,从方案设计、评审、实施以及混沌演练验收以达成客户在容灾RTO、RPO的可量化目标。
高可用服务专家团队的周永飞也参与到下午场的“系统稳定性保障“圆桌讨论,在讨论过程中,周永飞针对稳定性保障建设和行业应用提出了诸多富有洞察力的建议和观点。以下为本次会议的摘要内容:
圆桌会议——云时代的稳定性挑战|混沌工程|SRE
来自腾讯云高可用专家团队的周永飞参与“稳保行动·深圳站沙龙”下午场的圆桌会议,共同探讨了云时代云服务和云商应用的稳定性挑战,混沌工程对系统稳定性的贡献,可观测性与混沌工程的联合应用价值,以及业界对服务韧性工程(SRE)的看法。
摘要:
腾讯云混沌演练平台(Chaotic Fault Generator)提供高效便捷、安全可靠的故障演习服务,除可视化故障注入服务外,还提供行业经验模板,监控护栏等核心功能,致力于帮助用户及时发现业务容灾隐患、验证高可用预案的有效性,从而提高系统的可用性和韧性。
如何快速实施混沌工程
产品体验:https://cloud.tencent.com/product/cfg
最佳实践:cloud.tencent.com/document/product/1500/90505
案例介绍:https://cloud.tencent.com/document/product/1500/83387
高可用服务:https://cloud.tencent.com/act/pro/high_availability_service?from=19589
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。