揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!TOP100案例标题架构师/亿阳信通揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!摘要包含固定格式的内容(就是下面的各页标题,如“要分享什么”)•本案例以国内某电信运营商一个大型故障告警项目为例,介绍了一个实时流分布式计算的解决方案。该方案的本质是一个基于CEP(ComplexEventProcessing,CEP)的事件驱动架构(EventDrivenArchitecture,EDA)解决方案,但是由于国内电信运营商的个性化需求,使得该方案有了更高的挑战。•通常CEP系统的特点是:1、输入事件量大,系统吞吐量大且要求弹性扩展;2、处理判断规则复杂;3、输出实时性要求高;•本案例新增挑战:1、规则变化后,实时生效;2、规则变化频繁且规则相关性(时间维度,处理节点间)复杂;3、多路(多租户)并行输出揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!案例标题•a)案例简介•b)当初启动此案例时(或实施后)达到的目标•CEP系统架构的挑战:–全国集中、大省大容量告警查询和初始化过滤器–活动告警量将达到1700w~5.1亿–复杂过滤/排序查询–响应时间要求在秒级–支持几百的并发,几千的在线–目前背景告警入库200EPS•目前30万告警建立简单过滤器,如果有10万返回需要几分钟,复杂过滤器10分钟以上揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!客户端:1、几个2、实时监控、流水窗3、过滤器(按条件查看)服务层:1、实时分发2、数据库持久化告警源:1、单一数据源2、10条/s-》100条/s告警源告警源告警源接收MQ消息CS客户端(用户1,SessionID:session1)实时列表1(Session11)实时列表2(Session12)实时列表1(Session21)实时列表2(Session22)实时消息CS客户端(用户2,SessionID:session2)......告警分发处理告警分发处理告警分发处理实时列表分页、排序实时告警处理MQ/QDB•DB方案:无法做到大并发读写,速度不达标,类似最早的告警监控C/S加载,十几分钟以上•进程内缓存方案:查询速度慢,不具备索引查询能力,不可扩展•HadoopHive/HBase:复杂查询启动时间多,基本都在几分钟以上•内存数据库:单写多读,负荷有集中点•MPPDB/一体机:高昂的价格,且多适用于分析应用揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!客户端:1、几个2、实时监控、流水窗3、过滤器(按条件查看)服务层:1、实时分发2、数据库持久化告警源:1、单一数据源2、10条/s-》100条/s用户1缓存告警预处理(AMRTU-1)告警预处理(AMRTU-2)告警预处理(AMRTU-3)告警表缓存Session11缓存Session12缓存用户2缓存Session21缓存Session22缓存接收MQ消息告警分发处理更新用户缓存CS客户端(用户1,SessionID:session1)实时列表1(Session11)实时列表2(Session12)实时列表1(Session21)实时列表2(Session22)用户告警处理XRPC消息CS客户端(用户2,SessionID:session2)............告警分发处理Session告警处理AM告警缓存处理告警分发处理告警分发处理Session告警处理......实时列表分页、排序实时告警处理MQ/Q•进程内缓存方案:查询速度慢,不具备索引查询能力,不可扩展揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!客户端:1、几个2、实时监控、流水窗3、过滤器(按条件查看)服务层:1、实时分发2、数据库持久化告警源:1、单一数据源2、10条/s-》100条/s告警源告警源告警源接收MQ消息CS客户端(用户1,SessionID:session1)实时列表1(Session11)实时列表2(Session12)实时列表1(Session21)实时列表2(Session22)实时消息CS客户端(用户2,SessionID:session2)......告警分发处理告警分发处理告警分发处理实时列表分页、排序实时告警处理MQ/QDB•内存数据库:单写多读,负荷有集中点揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!ConfidentialandProprietary–BOCOInter-TelecomCo.,Ltd.单进程设计方案•方案描述:将所有告警存储在一个Server中,客户端与均与该服务通信。•优点:设计简单,开发快•缺点:扩展性差。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!ConfidentialandProprietary–BOCOInter-TelecomCo.,Ltd.分布式master-worker设计方案•方案描述:使用自己开发的分布式框架,客户端只与master侧通信,根据实际的告警量可分多个worker处理,master侧进行汇总,master与worker之间使用socket通信,使用sharememory传送告警数据。•优点:本机多进程部署,因为使用sharememory,所以性能较高•缺点:工作量大,多机部署需要考虑告警揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!ConfidentialandProprietary–BOCOInter-TelecomCo.,Ltd.分布式akka设计方案•方案描述:利用akka分布式框架,•优点:框架比较成熟,开源,很多功能在实践中进行了验证。•缺点:了解不多,资料较少,遇到问题需要揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!客户端:1、1000个2、实时监控、流水窗3、过滤器很多很复杂(按条件查看)服务层:1、实时分发2、背景数据亿级3、数据库持久化告警源:1、多数据源2、3万条/s•内存数据库:单写多读,负荷有集中点xDPPMsgServerClientWorkerClientWorkerMsgMatcherMasterClientDataWorkerDataWorkerClientDataWorkerClient1.getregisterserver2.loadhisdata1.wholertmsg2.1subscribe&openwindow2.2orderby2.3getalarmbykeyClientsubscribertmsgQuerytopNQuerypartregisterTRANS.Q/CTR.QrtmsgFMDB揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!怎么做到的主体内容,即成功要素,成功经验总结,即哪些技术或其他地方做好了才促使项目成功。•基于actor模型–Actor模式是一个解决分布式计算的数学模型,其中Actor是基础–用来编写并行计算或分布式系统的高层次抽象,让程序员不必为多线程模式下共享锁而烦恼揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!怎么做到的主体内容,即成功要素,成功经验总结,即哪些技术或其他地方做好了才促使项目成功。•Actor介绍–在ActorModel世界里,一切皆Actor–每一个Actor拥有自己的状态及行为–所有Actor之间的交互都是通过消息来传递来实现的揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!怎么做到的主体内容,即成功要素,成功经验总结,即哪些技术或其他地方做好了才促使项目成功。•Actors为你提供:–对并发/并行程序的简单的、高级别的抽象。–异步、非阻塞、高性能的事件驱动编程模型。–非常轻量的事件驱动处理(1G内存可容纳约270万个actors)揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!怎么做到的主体内容,即成功要素,成功经验总结,即哪些技术或其他地方做好了才促使项目成功。•垂直扩展和水平扩展–在任务负荷增加时可以动态扩展actor(本地),从而到达垂直扩展–每个任务节点是透明的,可以增加远程处理单元,可以达到水平扩展揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!怎么做到的主体内容,即成功要素,成功经验总结,即哪些技术或其他地方做好了才促使项目成功。•自动恢复–通过监管树形结构满足多JVM下高容错性,达到高可靠性–actor状态监控的功能配合actor自恢复实现–Letitdown,让程序更稳定健壮揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!怎么做到的主体内容,即成功要素,成功经验总结,即哪些技术或其他地方做好了才促使项目成功。•分布存储–master-slave框架数据分布–Master测进行二次排序揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!怎么做到的主体内容,即成功要素,成功经验总结,即哪些技术或其他地方做好了才促使项目成功。•Keepalived–简单–双机热备,消除目录服务单点故障揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!ConfidentialandProprietary–BOCOInter-TelecomCo.,Ltd.•遇到的问题–告警量大–实时要求高•现有复杂过滤器–执行接近1分钟–执行超过1分钟–执行超时A–执行超时B–超长过滤器实践1.1告警订阅服务揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!ConfidentialandProprietary–BOCOInter-TelecomCo.,Ltd.2013-05-29姓名:李杰部门:技术规划部邮箱:lijie5@boco.com.cn电话:88157631揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!应用效果分布式环境2台CPU:32core@2.00GHz内存:128G交换机:千兆数据量500万实时接收数据1800/s简单过滤器3s复杂过滤器≈20s实践1.1告警订阅服务揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.1告警订阅服务添加内容揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!ConfidentialandProprietary–BOCOInter-TelecomCo.,Ltd.•遇到的问题–告警量大–实时要求高–告警统计的性能需要处理每秒一万告警–支持各种不同汇总维度实践1.2告警统计服务揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!告警统计框图实践1.2告警统计服务揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!ConfidentialandProprietary–BOCOInter-TelecomCo.,Ltd.应用效果分布式环境1台CPU:32core@2.00GHz内存:128G交换机:千兆数据量500万实时接收数据1w/s分组汇总44组延迟3s实践1.2告警统计服务揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!And曾经还尝试过什么但失败了/放弃了,以及未来