在数字化转型的浪潮中,同程旅行作为旅游行业的佼佼者,面临着海量数据存储与管理的挑战。为了应对这一挑战,同程旅行研发中心架构师周祝群及其团队开展了一系列对象存储实践,旨在构建一个可扩展、高可用、高性能且低成本的存储解决方案。
背景介绍
同程旅行的业务涉及图片、视频、文件、容器仓库、CSS/JS等静态资源,以及网盘服务。数据量之大令人瞩目:图片超过20亿张,JS/CSS资源千万以上,视频存储达100+TB,容器仓库和静态资源各占200+TB和100+TB。为了有效管理这些数据,同程旅行早期采用了FastDFS、Redis和Hbase的存储方案。
系统设计与落地
为了满足业务需求,同程旅行设定了以下设计目标:
- 可扩展性:支持至少30亿+对象数,具备水平扩展能力。
- 高可用性:实现隔离、多租户、限流、灾备/双活等能力。
- 高性能:追求快速响应,作为分布式文件存储的底座。
- 低成本:以低于Ceph的成本支持所有业务。
- 接入简单:支持主流对象存储S3协议接入。
- 无缝升级:业务无感知的情况下,稳定、无缝迁移。
在选型过程中,团队对比了MinIO和SeaweedFS,最终选择基于SeaweedFS构建新的对象存储服务。新OSS服务的架构包括Proxy层、存储层和管控平台,实现了强大的可扩展性和高可用性。
基于S3的其它存储落地场景
同程旅行还探索了基于S3协议的其它存储落地场景,如ClickHouse和Prometheus,主要用于数据TTL(Time To Live)管理,进一步优化了数据存储效率。
未来展望
展望未来,同程旅行计划进一步拓展分布式文件存储的能力,以应对不断增长的数据存储需求。这将涉及更深入的技术探索和创新,旨在为用户提供更加高效、可靠的存储服务。
结语
同程旅行的对象存储实践,不仅展现了其在技术领域的深厚实力,也为整个行业提供了宝贵的经验和启示。随着技术的不断进步,我们可以期待同程旅行在存储领域带来更多创新和突破。