背景介绍
最近又能挤一挤时间,来聊一聊前一段时间接手的一个大数据系统项目。
随着云计算的普及,大部分互联网公司的系统都是基于云原生的产品和体系来搭建的,我接手的系统也不例外。数据处理部分从底层存储,到中间层数据处理系统,再到上层的ETL系统第一版都是基于Google Cloud Platform来搭建的,GKE + PubSub + DataFlow + FireStore,数据服务部分,负载均衡也是Google App Engine的体系。
GCP的产品在接入的环节做的都很便捷,门槛低,对应产品主流开发语言的SDK一应俱全,在项目排期紧张的情况下,整套系统架构基于GCP进行开发、部署与使用都很方便。
那为什么要做一次迁移呢?经过这段时间的折腾,回头想想主要原因有以下几点:
- 我们主要的服务对象发生了变化,从海外用户逐渐回归到国内用户
- 我们数据产品对实时性有要求,国内用户查询的延迟不能超过1s,增量数据的更新要实时(不超过3s)
- GCP整体的成本太高,特别是美元汇率,再加上和国内阿里云相比,迁移后能省不少费用
那么我们在迁移中遇到了什么挑战呢?我认为最有挑战性的有两块:云计算圈子有一句话是存储在哪里,用户就在哪里,由此可见存储做的好对用户的粘性有多大了吧。那遇到的最大的挑战就是整体存储的迁移,从原来的Firestore迁移到mongodb,批处理数据导入hbase;其次是整套数据处理框架的改造,由原来的Apache beam改为Flink framework。
接下来结合迁移计划,我将对v1与v2两个版本的大数据系统做更详细的介绍与分析。
###迁移计划
- 数据双写,流处理的数据同时写入mongodb,批处理的部分写入hbase
- API层重构,不同存储的client +和迁移数据进行合并
- firestore到mongo的迁移
- 流量切换
- firestore数据清理

最低0.47元/天 解锁文章
694

被折叠的 条评论
为什么被折叠?



