今天读了杜小芳老师写的《中国技术力量:携程的技术演进之路》,感受很多。
首先谈到的是他的基础架构:携程在多年的发展中不断进行架构优化,逐步采用分布式架构,解耦业务和架构,提高可扩展性,现在已逐步进化到大量采用开源技术的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大会上携程介绍了他们在垂直搜索架构上所做的探索工作。
安全:携程也会经常遇到一些常见的恶意请求和攻击,如抓数据、恶意扫描、发垃圾信息等等,对用户、服务器、带宽造成损失。携程通过自身摸索,建立了一系列基于大规模日志分析的规则引擎、实时计算的安全分析产品。
最后谈到了移动技术方面:目前携程无线App上的业务量在携程总业务量所占比重已超过70%,移动技术无疑是重点。携程2014年便在QCon上分享了他们的全新无线系统架构,介绍了H5/Hybrid/Native客户端和服务端(H5/Mobile Service)的架构调整和技术变迁,通过这些技术升级来满足业务发展需求并提高系统稳定性。
从这篇文章可以看到:携程从线下到线上的成功转变,离不开技术在背后的强力支撑。从携程的转型之路上我们可以看到,它的技术路线并不激进,在恰当的时机引入合适的技术,是携程的成功之道,携程的技术演进案例,对那些急于技术转型的企业也是很好的启示。