携程今年动作不断,继 5 月份收购艺龙后,前不久又宣布了与去哪儿合并,成为国内在线旅游领域当之无愧的霸主。那么一路走来,技术是如何支撑携程成长到今天的地位,我们基于过去三年携程在 QCon 会议中分享的十几篇技术主题内容,从一个独特视角来下分析下携程技术的演进之路。
在今年 11 月 17 日 QCon 旧金山的中国技术开放日专场上,携程旅行网CTO 叶亚明(Eric Ye)先生也将上台与大家分享携程的技术演化进程。
基础架构
携程在多年的发展中不断进行架构优化,逐步采用分布式架构,解耦业务和架构,提高可扩展性,现在已逐步进化到大量采用开源技术的Java + .Net(.Net 主要是为了兼容历史业务) 混合技术栈。
携程从2013 年开始使用OpenStack 将基础设施标准化,实现快速部署,帮助减少运维成本。携程曾在QCon 上分享过使用 OpenStack 打造携程私有云的经验,基于 OpenStack 进行二次开发,综合了 KVM,VMware 和 Docker,网络虚拟化使用了 Neutron OpenVSwitch + VLan 以及 VMware 的 Nova-VMware-Drive,打造了携程私有云。
携程目前拥有网页 Online 业务,呼叫中心 Offline 业务和移动 Mobile 业务。而在几年前,携程曾有相当比重业务集中在 Offline,实施云架构后,以虚拟桌面云替代 PC 桌面。呼叫中心虚拟云桌面是一个独特的 OpenStack 应用场景。所有呼叫中心员工办公只需一个云客户端和一个显示器,桌面都运行在云端。虚拟桌面云的整个平台,包括后端对桌面、云终端运维管理、资源分配调度、动态伸缩等功能。经过这样的技术变革后,携程拥有了在线旅游业界规模最大的多呼叫中心。
为了保证后端业务处理的实时性,降低系统耦合度,增加吞吐量和提高可靠性,携程研发了新一代异步消息队列系统 Hermes,可实现消息追踪和全面的监控治理。携程在 2015 年 QCon 上分享了异步消息队列系统的开发实践经验。
携程拥有多个数据中心,一方面支撑业务的高速成长,另一方面提高网站的高可用性,这些离不开高效的发布和监控体系。在线交易增长背后伴随着应用发布数量、服务器数量、网站流量的不断上升,而运维伴随着携程的发展成为一个新的挑战。携程构建了自己的自动化发布和监控体系,不断在人员组织、发布监控工具和流程定义上进行探索和磨合,形成的监控体系能先于人工及时发现网站问题。
搜索技术
携程需要在大量的旅游产品线中快速帮用户找到合适的产品,携程利用后台大规模数据挖掘和实时索引功能不断完善自己的搜索引擎,在Lucene API 的基础上,设计开发易扩展的搜索架构,快速支持例如全站搜索等全新产品线。在2014 年QCon 大会上携程介绍了他们在垂直搜索架构上所做的探索工作。
安全
携程也会经常遇到一些常见的恶意请求和攻击,如抓数据、恶意扫描、发垃圾信息等等,对用户、服务器、带宽造成损失。携程通过自身摸索,建立了一系列基于大规模日志分析的规则引擎、实时计算的安全分析产品(2014 年QCon 会议分享)。
移动技术
目前携程无线App 上的业务量在携程总业务量所占比重已超过70%,移动技术无疑是重点。携程2014 年便在QCon 上分享了他们的全新无线系统架构,介绍了H5/Hybrid/Native 客户端和服务端(H5/Mobile Service) 的架构调整和技术变迁,通过这些技术升级来满足业务发展需求并提高系统稳定性。
为了增强无线服务的稳定性,携程基于Netflix 的开源项目Zuul 开发了无线Gateway 。无线解耦是携程一次里程碑式的技术和业务变迁,无线Gateway 为这次变迁提供了重要的支撑。Gateway 的职能是负责接收来自无线端的所有API 请求,并将他们路由到正确的目标应用服务器,并且提供限流、隔离、熔断等功能,保证了无线服务的长期稳定运行,拥有的弹性容错机制也减少了日常运维工作。同时该Gateway 提供了多维度的监控数据,并与报警系统对接,实时监控线上情况,达到运维自动化。
在网络方面,为了优化网络性能,实现连得上,连得快,传输时间短的目标,经过了一系列 App 端网络性能优化探索,采用了如优化 DNS 解析和缓存、提供网络服务优先级和依赖机制、优化海外网络性能等手段优化网络性能,并且基于 Elastic Search 开发了网络实时监控 Portal,实时监控所有的网络服务。经过优化后,用户感知到的端到端网络服务成功率达到 99.7% 以上。
由于携程 App 下载量已达 8 亿多,涉及各类机型几十种,对于测试的要求相应提高,需要通过自动化测试提高效率。从 2014 年开始,携程便开始摸索自己的移动App 自动化测试方案,覆盖主流机型,实现无线App 持续集成和自动化测试。
移动产品方面,携程从2014 年就成立团队研究如何通过可穿戴设备提供旅行相关服务,曾开发过基于Android Wear 的Moto360 智能手表应用。Apple Watch 发布后,旅行作为与Apple Watch 时间管理特性契合度较高的场景,携程很快对 Apple Watch 进行了适配开发,提供了诸如旅行日程、航班动态的通知、待入住酒店地图和导航、发现周边等功能,成为被苹果 App Store 多次推荐的应用。
总结
携程从线下到线上的成功转变,离不开技术在背后的强力支撑。从携程的转型之路上我们可以看到,它的技术路线并不激进,在恰当的时机引入合适的技术,是携程的成功之道,携程的技术演进案例,对那些急于技术转型的企业也是很好的启示。
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论