携程下一代无线App架构设计_陈浩然_携程旅行网无线开发总监_31页_2mb
报告摘要
Ctrip 携程下一代无线App架构设计总结
核心内容概述
携程正在从传统的OTA(在线旅游代理)模式向MTA(移动旅游代理)模式转型,以更好地适应移动互联网的发展趋势。这一转型不仅涉及产品形态的变化,更要求在技术架构上进行深度重构,实现App工程的解耦与组件化,优化移动网络服务通道,并构建一个全面的无线研发支持平台。
主要观点
1. 组织与技术解耦
携程通过组织结构的解耦,使多个业务团队能够独立决定设计、开发和发布周期,提升整体开发效率。同时,技术层面也进行了解耦,采用SOA(面向服务架构)和微服务模式,实现服务的模块化、独立化。
- 技术解耦:
- 解耦传统n-层架构方式,采用微服务架构。
- 解耦数据,提供数据服务,实现数据模型的封装、管理和访问。
- 解耦App端开发模式,支持组件化/插件化开发。
2. App工程解耦与组件化
携程通过将App拆分为多个独立的Bundle,实现工程解耦和组件化,提高系统的隔离性、稳定性和扩展性。
- 组件化设计:
- 核心基础功能SDK化:如通讯、定位、Hybrid、数据库、登录、分享、基础库等,可复用至其他BU独立App。
- 公用业务功能组件化:如地图、日历、城市、图片、通讯录等,减少重复开发。
- App业务容器化:每个Bundle独立运行,互不影响,支持动态加载和Hotfix。
3. 插件化与动态加载框架 - DynamicAPK
携程引入DynamicAPK框架,实现插件化和动态加载,降低迁移成本,提升App性能。
- 优势:
- 无需做任何Activity/Fragment/Resource的Proxy实现,提升启动速度。
- 支持Android 5.0以下按需下载和加载任意功能模块。
- 支持代码和资源模块的动态加载。
- 支持Hotfix,提升系统灵活性和安全性。
4. Hybrid框架
携程采用Hybrid框架,结合Native组件和Web技术,提升开发效率和用户体验。
- Hybrid与Native互通:
- 尽可能共用Native组件,如地图、图片浏览等。
- 通过Hybrid框架层实现业务服务转发,页面等静态资源通过MAA等加速产品实现防劫持和加速。
5. 网络通道治理与优化
携程对移动网络服务通道进行治理,优化网络请求流程,提升服务的稳定性和安全性。
- 治理思路:
- 减少连接次数,避免DNS劫持和内容劫持。
- 通过减少发送次数和压缩降低流量消耗。
- 支持多数据中心多活的网络通道灵活调度。
- 网络请求优化:
- 使用TCP长连接+短连接,根据网络状况进行参数调优。
- 使用IP列表避免DNS解析失败或劫持,根据网络延迟选择服务端IP。
- 使用ProtocolBuffer+Gzip减少Payload大小。
6. 无线研发支持平台
携程构建了全面的无线研发支持平台,涵盖性能管理、用户行为统计、持续集成、配置中心、自动化测试、发布与运营等多个方面。
- 平台功能:
- 持续集成:支持Bundle独立打包,实现高效集成。
- 自动化测试平台:基于STF管理测试设备,实现兼容性、性能和稳定性测试。
- 发布平台:支持Hybrid和Hotfix发布。
- 运营平台:管理App配置。
- 监控平台:监控App性能数据,如网络性能、定位成功率、启动时间、内存、流量等。
关键信息
- App工程解耦:通过组件化和插件化实现App模块的独立开发与部署。
- 网络通道治理:采用TCP长连接、IP列表、ProtocolBuffer+Gzip等技术优化网络请求。
- Hybrid框架:实现Native与Web技术的高效协同,提升开发效率。
- 无线研发支持平台:涵盖从开发、测试、发布到监控的全流程支持,提升整体研发效率与产品质量。
附件与图示说明
- App工程配置解耦:展示了多个BU的App工程依赖关系,强调了模块化与独立性。
- 网络请求成功率与平均耗时:图示反映了网络优化前后的性能对比。
- 持续集成流程图:展示了Android、iOS和Hybrid的构建与发布流程。
总结
携程的下一代无线App架构设计旨在提升移动产品的性能、稳定性和可维护性,通过组织与技术的解耦、组件化、插件化、Hybrid框架和网络通道治理等手段,构建了一个高效、灵活、安全的移动研发体系。同时,通过无线研发支持平台,实现从开发到发布的全流程自动化与优化,为未来移动业务的快速迭代和扩展打下坚实基础。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载