查看上篇文章,点击这里。
四、利用阿里云原生服务构建迁移平台
随着业务发展,向阿里云迁移的需求也越来越多,如果按照原来的方式,那么用户需要先进行下载、部署,再去迁移,造成了很多时间的浪费,也不够敏捷。这时候,也对我们的工具提出了更高要求,需要演进成为SaaS版本。阿里云的原生服务帮助我们进行了快速上云,并且在不增加人员的情况下,完成了运维和运营的需求。那么,我们是如何一步步利用阿里云的原生服务来构建我们的迁移平台(SaaS)呢?
(一)需求变化
从单机版本到SaaS版本,在部署方式等需求上均发生了变化,具体如下图所示。
(二)需要改造的内容
从单机版本演进到SaaS版本,在各方面需要改造的内容主要包括如下:
- 增加模块:对原有用户模块进行改造,抽象成多租户管理和运营管理两个新模块;
- 单向通讯:源端在和控制端进行通讯时,采用的是双向通讯,需要修改为单向通讯;
- UE提升:在云平台代理服务部署上需要让用户无感知;
- CI流程:去RPM化,能够支持单机版本,SaaS版本的打包、部署;
- 部署和运维:平台具备高可靠、扩展性、容易运维;
- 运营需求:在线客服、机器人、工单系统等运营功能。
(三)架构变化
从单机版本到SaaS,架构的变化如下图所示。整个部署方式全面迁移到了K8s上,既可以保证模块的可靠,也保证了模块的可扩展性。
(四)阿里云部署架构
下图是迁移平台在阿里云的部署架构,主要使用的是阿里云的容器服务,还使用到了镜像仓库、日志服务等等。除此之外,还用到了阿里云的云客服功能来帮助回答一些常见的问题,降低了运维的成本。
(五)如何选择阿里云Kubernetes?
在选择K8s服务的时候,我们对比了规格和价格两个维度,综合考虑选择了托管版本,性价比最高,参考下图所示例子。对于费用,建议用户可以先去尝试按量付费的方式,等业务稳定之后再转为包年包月的方式。
(六)使用函数计算进行License自动审批
在SaaS版本中,函数计算主要用于License的发放、审批,我们利用了APP Trigger做了一个API接口,服务端直接进行调用即可。然而在单机版本中没有网络,很难做到在线的激活,所以我们做了一个二维码扫描的小程序,用户填写信息提交之后后台会接收到用户提交的消息,钉钉进行审批之后会进行License的发放,具体流程如下图所示。
(七)持久化集成
SaaS版本进行了持久化集成,其具体流程如下图所示。
(八)利用云原生服务进行运维管理
如下图所示,我们现在利用阿里云原生服务进行运维和运营的管理,大大降低了运维和运营的时间成本、人力成本。
(九)使用Zookeeper解决分布式任务
如下图所示,在SaaS版本中,我们用Zookeeper解决了分布式任务的问题。思路一方式对现有架构的改动比较大,另外就是当任务量极其大的时候也会出现瓶颈,而思路二引入Zookeeper帮助我们解决了并发性的问题。
(十)数据安全性
数据安全是用户非常关心的一点。如下图所示,我们的SaaS端只会控制用户控制流的信息,用户的数据流是直接从源端到用户租户下的数据接收代理服务器上,这样子用户的数据不会经过我们的SaaS端,保障了用户的数据安全。
五、未来展望
可以预见的是云原生的服务对未来的IT行业格局会有非常大的影响。对于我们自身,未来我们的目标是做迁移和容灾的SaaS工具集。如下图所示,我们希望通过对自身模块的不断扩充,能够更好的帮助用户完成迁移和容灾的工作,为业务赋能。
关键词:阿里云、云原生服务、迁移服务、SaaS