从设计原理上来看系统的故障是不可避免,但故障又是影响业务的第一“害虫... 展开 >
专注于高并发互联网架构设计、分布式电子商务交易平台设计、大数据分析平台设计、高可用性系统设计。
拥有十多年丰富的技术架构、技术咨询经验,深刻理解电商系统对技术选择的重要性。
从设计原理上来看系统的故障是不可避免,但故障又是影响业务的第一“害虫”。所以如何设计系统的高可用性是架构设计中的一个老问题也是一个大麻烦,你的设计可能一百天才用一次,但一用就价值“千金”,你的设计也可能设计时“天好,地好,各种好”,用时“这错,那错,处处错”。所以高可用的架构设计本质上是一种面向故障的编程设计,围绕故障的发生展开一系列的架构设计:多活架构设计,业务降级设计,容错设计,故障诊断设计,故障自愈设计等等。但是这些设计到故障发生时是否真的有效呢,有时往往设计得很好,但用时完全不是想的那样。另外故障的发生本身就是一件在我们架构设计时的意外事件,面对意外我们如何更好地完善架构,设计更多的高可用点,我们一起来聊聊这样一个老话题《高可用架构》。本专题重点关注关于故障后的架构, 将邀请各个领域技术专家来分享系统的高可用方案:多活,高可用,降级,故障自愈等等。
百度 Feed 信息流推荐系统,过去几年业务飞速发展,在流量高速增长、推荐机制复杂化的背景下,对系统高可用的挑战大幅增加。经过多次架构演进,扛住了流量和分发量数百倍的增长,支持了百度 App、好看视频、全民小视频等多个产品的快速发展。 此外,2019 百度春晚红包项目,准备时间只有短短一个月,央视春晚口播带来的瞬间并发属于极端高并发,千万级 QPS,可用性挑战巨大。春晚项目技术团队通过全方位针对性的架构设计和优化,顺利保障了百度春晚活动的如丝般顺滑。 从数万 QPS的高并发系统,到数千万 QPS 的极端并发系统,积累了大量高可用设计与保障的实践经验,本次演讲将做分享。
1. 超大规模 Feed 推荐系统,高可用的设计思路和工程实践;
2. 2019 百度春晚项目,针对极端高并发的整体设计思路,全方位技术保障的实践经验;
3. 海量服务治理、弹性架构、自愈与柔性架构、全链路压测与异常模拟攻防等等;
4. 超大并发下的技术优化与实践,如存储、新硬件、微服务、全动态等等;
5. 应急响应体系和流程,大幅提高极端高并发场景下的高可用信心指数。
1. 了解高并发场景下,高可用系统设计和实践的要点;
2. 了解极端高并发活动下,全流程的设计、实施、保障的要点;
3. 了解大规模服务治理、微服务化、柔性架构的设计要点;
4. 了解大规模全链路压测、异常模拟攻防、预案设计等相关的要点。
大型电商平台和云计算平台的后台服务都是典型的超大规模分布式系统。作为企业用户的基础服务商,一方面平台的稳定性和高可用能力不容有失,另一方面需要在分布式系统规模持续扩大的情况下避免运维成本的上升,因此声明式自愈系统的设计成为必须。本次分享将结合分布式系统理论和作者在多家互联网和云计算企业的工作经验,围绕高可用分布式系统的设计之道分享以下内容:
1. 对分布式系统分析和建模的理论方法;
2. 无状态和有状态分布式系统面临的问题;
3. 分布式系统高可用能力的测试和验证;
4. 声明式自愈系统从设计到实现的最佳实践总结。
1. 了解对分布式系统分析和建模的理论方法;
2. 了解无状态和有状态高可用服务的设计方法;
3. 了解分布式系统的高可用能力的测试方法;
4. 了解大规模分布式消息系统的设计和实现经验;
5. 了解从高可用系统的设计到实现的实践经验。
TiDB 作为一个分布式数据库,它面临着两个挑战:如何保证高可用?如何保证正确性?这两点是对分布式强一致数据库的基本要求,却也非常难实现。TiDB 选择了 Raft 一致性算法来保证这两点,结合实践,TiDB 对 Raft 做了诸多改进,比如跨 IDC 优化,Learner;安全的成员变更,joint consensus 等等。随着系统复制度上升,完善的测试必不可少,对于分布式系统更是如此,TiDB 选择了Jepsen 分布式测试框架,通过对系统注入错误,分析其结果是否符合 TiDB 保证的一致性模型。
1. 介绍分布式数据库 TiDB 和一致性算法 Raft;
2. 介绍 TiDB 在实现高可用上对 Raft 算法的一些探索;
3. 介绍如何使用 Jepsen 分布式系统框架测试 TiDB。
1. 了解如何使用 Raft 构建一个高可用分布式系统;
2. 了解 TiDB 针对自身特点对 Raft 的一些优化;
3. 了解如何使用 Jepsen 测试分布式系统;
4. 了解常用的一致性和它们能提供的保证。
每天,超过千亿交易相关的数据在京东数千个系统中高速流转。实现数据流在超大规模集群系统之间高性能流转同时,确保数据的高可靠、高可用、一致性对京东的消息中间件系统是一项艰巨的技术挑战。
高性能、高可用、高可靠的流数据存储提供数据持久化能力,是未来分布式计算不可或缺的基础设施之一。其不仅用于构建分布式消息中间件,在诸多计算场景中均有广泛的应用:
1. 结合流计算框架构建下一代存储计算分离的可靠流计算应用;
2. 大数据系统中构建可靠的 Connector,用于连接数据源和大数据应用以及大数据应用之间的数据互联;
3. 用于海量日志和监控数据的存储;
4. 通过 Binlog 复制实现各类数据库和存储类系统的高可用架构。
本次演讲的主要介绍了京东高可用分布式流数据存储系统的架构,内容涵盖:
1. 流数据存储集群的高可用架构设计;
2. 数据强一致性保证:改进于 Raft 的流数据选举和复制机制;
3. 理解数据流的特性和针对性性能优化手段。
1. 如何利用流数据存储构建高可靠分布式应用;
2. 基于 Raft 设计去中心化、强一致分布式系统的要点;
3. 使用 CAS 原语替代锁实现单节点百万级TPS的设计思路;
4. 高性能流数据存储设计中的 IO 优化思路和最佳实践。
现代分布式系统设计中,面向容错、降级熔断设计是常规的、不可或缺的功能。在复杂的业务架构下,例如从商品的搜索、交易到供应链,整体的系统链路会长,系统间的依赖关系非常复杂,由于业务多变性、复杂性的存在,如何简单的切入到整体链路中,帮助系统快速、无侵入的实现降级熔断措施,或是帮助整体链路实现业务降级预案,也随之变得异常困难。在日趋增长的业务下,随之增长的降级措施散落在各个系统代码中,日积月累,降级的治理也变得异常困难,原先的降级措施也逐渐演变成系统中的一个不稳定因素。在这样的需求背景下,需要系统性的、完备的降级治理架构协调运作。同程艺龙结合实践经验,从数据采集、指标计算、资源降级恢复、链路预案管理、故障诊断多个方面,探索服务降级体系化建设的可落地架构。
1. 降级预案系统整体设计;
2. 数据采集与计算设计架构;
3. 降级预案治理;
4. 降级策略扩展性设计;
5. 平台自身高可用建设。
1. 降级系统的架构设计经验与最佳实践;
2. 降级治理核心设计与经验,包含数据采集、复合指标计算、策略设计、故障诊断、预案管理等;
3. 在业务复杂多变场景下降级设计经验。
Grab 的核心派单系统在不断的演化中逐步引入了机器学习的解决方案以适应快速升级的复杂业务需求。同时,新的解决方案不断提升派单的有效性和准确性。而如何提供实时、高质量的数据集是保证机器学习结果的重中之重。现有派单系统的机器学习模型中,特定区域内的乘客、订单和司机形成了多维度的特征矩阵。假设单一城市平均每秒发生100 个订单请求,每个订单平均需要为 100 个司机进行模型运算,每个司机需要为此提取 50 个特征,而平均生成每个特征需要 10 次额外运算。与此同时,整个系统需要为东南亚几乎所有的重要城市提供派单服务。如何及时生成、存储、提取数百万/秒的特征数据集是整个派单系统内的一个技术难点。我们通过内置于 FeatureBank 系统中的一系列优化策略和降维算法有效地降低了复杂度和延迟,极大地提高了派单结果的准确性和有效性。
1. 机器学习对高质量数据集的高度依赖;
2. 如何过滤、提取、存储业务中实时海量的数据集;
3. 高质量数据集在核心派单系统中的应用。
1. 了解复杂业务驱动的数据收集与应用;
2. 了解数据网络效应在大规模系统中的实际应用;
3. 了解基于高质量数据集的派单策略与算法调优。
本讲座是作者近十年构建云端系统的经验总结。云端高可用性系统的构建与本地系统构建有着诸多不同之处,本讲座通过以构建超大规模移动广告平台为例,来讲述云端高可用性系统构建的要点。
听众受益: