【SDCC 2016】蘑菇街、华为、阿里巴巴、58到家、同程旅游、链家网、京东的架构变迁与技术演进...
【****现场报道】2016年11月18日-20日,由****重磅打造的年终技术盛会 —— “2016中国软件开发者大会”(Software Developer Conference China 2016,简称SDCC 2016)在北京京都信苑饭店隆重举行。本届大会云集了100多位国内外顶尖专家和技术大牛,共设新趋势和新实践2大主题会场,14个技术专题。面向国内外的中高端技术人员,聚焦最前沿技术及一线的实践经验,助力企业的技术升级和改造、全面提升技术人员的综合实力。
今年下午的SDCC架构演进专场汇聚了来自蘑菇街、华为、阿里巴巴、58到家、同程旅游、链家网、京东的资深技术专家,大家继续围绕着架构演进主题各自分享了其团队的探索实践。下午的专场在13:30开始,但参会者在午休后早早的来到了会场等待架构演进专场的开始。下午专场继续由当当网架构部总监史海峰主持,史海峰首先就下午参会的主题及讲师,进行了扼要介绍并向所有****的热心观众再次表示欢迎。
菇街平台技术架构师卢鹏程:蘑菇街监控系统架构演进
蘑菇街平台技术架构师卢鹏程分享了《蘑菇街监控系统架构演进》的主题演讲。通过蘑菇街平台三个不同的版本,讲解了蘑菇街监控系统从无到有的历程,分享各阶段所遇到的问题及解决方案。阐述了目前性能强劲的sentry的架构,及相关技术点,展现sentry丰富的功能,说明怎样一步步的消除用户障碍,展望后续技术及业务方向。为达成高可用、易部署、易维护的目标,蘑菇街选择了去中心的分布式架构,无依赖、存角色、分场景的架构特点。大家通过卢鹏程的分享,了解到现有蘑菇街监控系统的架构、功能和能力、计中所用到的各种技术及组件,以及获取高可用、高性能分布式系统的设计经验。
架构V3.0
版本要求
- 全新架构。第一个完善版本。
- 可用(查询、稳定、)
- 兼容V2 API
- 优化效率,提升4倍写入能力
- 具备快速缩扩容能力
选型
- 造轮子,自研TimeDB
- Scylladb
- 去Grafana,重写Sentry-web
架构特点
- 去中心:为达成高可用、易部署、易维护的目标,我们选择了去中心的分布式架构,采用gossip + SWIM来同步配置、做集群管理。
- 存角色:为增强核心集群稳定性、提供大促时快速缩扩容能力,我们把核心系统中的部分功能,如大查询、热查询,分离到外围系统中。同一产品,不同角色。
- 无依赖:这里指的是核心系统不强依赖任何第三方系统,降低外界对系统稳定性的干扰,确保用户随时都能获取自己业务的状态数据。
- 分场景:这个算是业务架构了,是我们正在做的事情。目标是用简明的场景,代替目前在数据收集、展示两端繁琐的配置。让用户更自然准确的使用监控系统,降低学习与交流成本。
“经过了这一版本,我们可以应对大促、应对特定大查询和辅助系统维护,从此蘑菇鸡再也不用担心扩容和增容问题。”卢鹏程说。
华为开源软件能力中心资深架构师马全一:ContainerOps – Empowering DevOps With Container
华为开源软件能力中心资深架构师马全一发表了《ContainerOps–Empowering DevOps With Container》的主题演讲。作为曾主导基于容器的下一代DevOps平台ContainerOps的架构、研发和产品化,中国Linux容器技术和Docker开源技术最早的推动者,马全一在下午的分享中介绍了ContainerOps这个基于DevOps Orchestration概念的DevOps平台。在华为ContainerOps架构中,所有的工作都在容器中,工作流定义,所有的组件运行在kubernetes上,都是以容器的方式来做。马全一不仅阐述了华为目前对DevOps理念的理解,更讲解了华为这个开源产品里对DevOps的理解,以及产品的特性和架构。“我们会把这个DevOps当作服务开源到社区,现在已经跟一些合作伙伴在测试,如果你对这个测试感兴趣的话,可以联络我,我们可以出一些人员和人力帮你梳理目前已有的DevOps的流程。”马全一最后说。与会者通过了解业界最新的DevOps理念,学习通过DevOps Orchestration梳理,DevOps流程,提高DevOps的工作效率。
阿里巴巴应用运维平台负责人毛茂德(如柏):阿里基础运维平台及应用运维平台架构演进
阿里巴巴应用运维平台负责人毛茂德(如柏),分享了《阿里基础运维平台及应用运维平台架构演进》的主题演讲。从基础运维和应用运维两方面,介绍支撑阿里巴巴全集团服务器集群管理的基础运维平台StarAgent的架构演进,以及应用运维平台Normandy的架构演进。StarAgent包含命令通道、插件系统两大核心功能,使用场景贯穿服务器的整个生命周期、应用运维、日志服务、监控、数据采集和配置管理。“StarAgent通过默认的蜻蜓插件,7000客户端200MB文件下载平均耗时仅10s,80%的阿里集团文件下发系统使用,稳定性从99.9%到99.9999%,下载次数从3万/周到7600万/周。”最后,毛茂德介绍了应用运维平台Normandy,它的功能涵盖基础设施即代码、CMDB、部署发布、Docker支持功能。
为了打造行业级的基础运维解决方案以及数据化、智能化运维解决方案,毛茂德针对运维平台架构演进。
StarAgent核心功能
命令通道
- 同步执行
- 异步执行
- 查询
插件系统
- 静态:脚本、命令
- 动态:常驻进程
StarAgent自运维
- 中央管控 / 机房管控 / agent 宕机自恢复
- agent / 插件 自动升级,多OS支持
- IP段自动关联
- 完善的错误码体系,数据化运维
- 对外输出:一键部署、最小化部署
StarAgent默认插件
- 蜻蜓 - P2P文件分发
- AOL - 集中配置管理
58到家工程研发部高级架构师叶忠兴:三分归一统:移动端开发技术演进之ReactNative崛起
58到家工程研发部高级架构师叶忠兴,分享了《三分归一统:移动端开发技术演进之ReactNative崛起》的主题演讲。叶忠兴主导了58到家ReactNative探索与实践,在主要App中引入了ReactNative,并持续完善ReactNative生态改善。自从智能移动设备出现,移动设备上多端开发就一直是开发者面临的最大的困扰。移动在开发、测试、发布、修复方面遇到许多问题,React Native的开发发布、渲染过程、H5渲染过程三个方面解决这些问题,现在是需要JS写一份代码即可,如果遇到Bug直接修改JS代码即可。叶忠兴讲解了ReactNative在58到家的可用性、体积、一致性、数量、分工协作、版本升级、检测、React控件、Native控件等具体实践。“虽然React Native还不够完美,但它使得我们的开发工作量降低40%,测试工作量降低35%,实现了随时release和热修复”。叶忠兴总结说。
同程旅游首席架构师王晓波:同程缓存系统的演进
同程旅游首席架构师王晓波,分享了《同程缓存系统的演进》的主题演讲。缓存在今天在线系统架构中是核心的位子,缓存的设计好坏直接影响系统整体的性能的高低。但在很多情况下缓存是被滥用的,这个基本是通病,同程在缓存的使用上也经历一条从滥用到治理的路。“开源方案很美但我们用起来就不美了,单一个方案解决不了全部的问题”,王晓波在演讲中介绍同程自研的缓存系统(phoenix)对缓存使用的治理,对数千个Redis集群的统一管理和缓存的平滑扩容。通过对缓存平台的管理与监控,大并发缓存系统的架构设计,同程实现了缓存整体的管制、运维操作、整体监控、自扩容自收缩的能力,现在我们的系统晚上不需要值班,基本实现了智能化运维。
初步改善部署
- 开启主从+keepalived模式
- 开启数据落盘
问题:
- 主从切换的问题
- keepalived的问题
- 数据落盘的问题
总结:运维快发疯,系统随时挂
设计缓存平台
- 在应用中能根据场景拆分(应用透明)
- 能从客户端调用开始全面监控
- 能防止缓存的崩塌
- 动态扩容缩容
缓存服务的架构设计
- 多个小集群+单节点
- 以场景划分集群
- 实时平衡调度数据
- 动态扩容缩容
链家网平台化架构师吕毅:链家网大数据平台架构变迁
链家网平台化架构师吕毅,分享了《链家网大数据平台架构变迁》的主题演讲。链家网大数据部门已经成立了一年多,之前的一年间从无到有,支持好了公司与集团各项数据报表需求。面对公司业务线的发展、运营体系猛增的数据需求,大数据平台的构建解决了这一问题,将原有的人工开发定制报表模式改造为数据全自助平台化模式。链家属于非物联网公司,对运营需求的压力很大。链家网数据相关的工作涵盖科学、应用、产品、数据四大方面,整个数据架构形成了业务的闭环。平台层包括数据服务,Data analysis、Adhoc query、Data Api;工具链,Data engines、ETL system、Management control;集群,Data Security、Resource isolation、Calculate ability。通过一系列的架构演进,链家数据部门从提供数据报表的架构,完成了大数据治理需求的转变。
京东资深架构师张成远:京东分布式数据库系统演进之路
京东资深架构师张成远,分享了《京东分布式数据库系统演进之路》的主题演讲。张成远负责京东分布式数据库系统的架构与研发工作,主导了京东分布式数据库系统在公司的落地及大规模推广。张成远从发展历程、实践经验、困难与挑战三方面,介绍京东分布式数据库系统的发展历程,以及在实际推广过程中遇到的一些挑战以及解决方案。如何保证服务的高可用数据的高可靠,以及如何在线自动化扩容,系统在对应618以及双11时的实战经验以及实战背后,通过性能与稳定、高可用/高可靠方案,演变成了如今的精细监控、路由管理的架构机制,解决了数据库系统从“活下来”到“活得更好”的改变。
实践经验
- 避免跨库的SQL
- 避免跨库的事务
- 特殊业务特殊对待
- 系统尽量独享
- 使用容器提高资源利用率
小结
- 配置文件中心化管理
- 自动化迁移完成扩容
- 要有良好的自我保护功能
- 生产环境监控非常关键
- 要有高可用/高可靠的解决方案
- 分布式事务(本质上是大事务)容易引起大规模死锁
- 基于MySQL的解决方案很难保证严格的分布式事务语义
更多精彩内容,请关注图文直播专题:SDCC 2016中国软件开发者大会,微博:@****研发频道,订阅****官方微信公众号(ID:****news),即时获取大会动态。