线下业务中心上云之系统架构转变

线下业务系统上云,又要保证不能暴露公网,保证安全性,我们该如何做呢?

一、业务背景

  1. 多年运营的线下业务中心,之前都采用各自业务中心独立服务器的部署模式,对于该部分已经投入运营多年的中心模式暂保持不变。
  2. 对于以后新建设的业务中心,采用云端部署模式,更便于维护,亦可节省成本。

二、初期系统架构模式

接到集团需求后,进行业务调研分析,最终采用如下系统架构模式。

  1. 选择靠谱的云服务商,负载均衡、数据库、缓存产品、应用服务器都直接采购云产品,搭建好K8S集群。
  2. 由于业务的特殊性,安全是第一位,绝对不能开放公网。所以每个线下业务中心全部采用VPN连接云端私网的方式,保证安全。

以上是总体的架构模式,会议讨论通过后,开始实施。但在实施过程中遇到了一个最大的问题是由于采用VPN方式,是以损耗性能换来安全的代价,跟正常的本地部署方式,确实要慢一些,业务中心大量反馈投诉 ☹ ,十分杯具。

三、改进版云端方案

由于VPN的存在导致了性能损失,所以本方案就是将VPN去掉,可大大提升访问云端系统的效率,并且又保证在公网上绝不开放。

由于线下业务中心公网IP地址不固定,鉴于此特制定如下方案:

  1. 首先开发一款客户端工具,这里叫做 “jiucool-firewall-client”吧,注册为系统服务开机启动,占用资源极少,用于与服务器保持心跳。
  2. 在云端服务器上开发一个服务端,将其特定的端口(与实际业务系统端口不同)完全暴露出来,这里叫做“jiucool-firewall-server”,用于与 “jiucool-firewall-client” 通讯。
  3. 二者之间通过https协议,采取加密授权报文的形式、每个中心分配唯一密钥,如此保持心跳。
  4. “jiucool-firewall-server” 在校验报文通过后,获取其公网IP地址,将IP地址与该中心的唯一标识进行绑定,以最后心跳请求IP地址为准。最后将该中心对应的IP地址更新到云端集群防火墙的白名单中(当然更新之前务必将旧IP去除掉),这样就可以达到业务系统的安全性。
久酷云简易网络拓扑图
简易网络拓扑图

四、总结

该方案两个工具的开发量并不大,不会占用多少工作量,还可以省掉每年VPN不小的费用,在保证安全的前提下能带来访问速度的巨大提升,有较为满意的效果。

Leave a Reply


正在读取数据……