产品架构
CloudCanal 产品架构整体体现为多租户、分布式的特点,目标是解决用户在各个网络环境下、数据在各个数据库或数据源间流动的需求。 本文从整体架构、容灾方案、网络方案简要介绍 CloudCanal 是如何达成这个目标。
整体架构
CloudCanal 组件分为 Console , Sidecar 和 Server , 其中 Console 是集中化的管控服务, 以集群方式存在。 Sidecar 和 Server 部署具体迁移同步节点上,一个节点通常为一台 VM,或物理机,或云托管主机(ECS,EC2等),一个节点上只会有一个 Sidecar 进程,而 Server 进程有 0~n 个。
Console 包含了 CloudCanal 所有的产品化服务,包括生命周期管理、容灾调度、监控告警、流程状态机流转、机器和数据源管理、用户权限等, 其中用户资源被很好地隔离,所有操作被鉴权、审计记录。
Sidecar 进程单向访问 Console,其职责包括获取本用户需要运行的任务配置、收集和上报运行中任务的状态、执行任务的健康检查等工作。
Server 进程具体执行数据流动任务,根据不同类型的任务,Server 将运行不同类型的任务逻辑,包括全量数据迁移、增量数据同步、数据校验等, 同时它也会不断上报任务的执行位点、资源使用状况等。
容灾方案
CloudCanal 容灾主要包含两个方面:管控容灾和任务容灾。
管控容灾 CloudCanal 主要是通过集群化部署解决,有状态部分交由管控数据库解决。
任务容灾 CloudCanal 任务容灾具备 2 级容灾,在节点资源充足的情况下,不强依赖底层操作系统或物理机器容灾措施。
- 1 级容灾 : Sidecar 进程退出或机器不正常以及网络隔离情况下,Console 根据租期和 Sidecar 链接状态,进行主动容灾调度,
- 2 级容灾 : Sidecar 进程正常,任务进程不正常,Sidecar 通过健康监测保障其负责的任务按照管控指定的状态运行,保活或保死,
网络方案(安全措施)
CloudCanal 为了适应多租户、分布式系统部署要求,采用了多种网络安全措施,确保用户数据和信息安全。
单向链接 用户节点反向链接管控方式进行服务。用户节点不主动暴露网络信息到开放网络,只会链接 CloudCanal 集中化管控服务。
HTTPS 协议 用户节点和 CloudCanal 通信链路采用 HTTPS 协议,防止盗取并篡改信息。
数据不出网络 所有数据流转均发生在用户网络环境,数据不流出泄漏。CloudCanal 所有针对数据源的动作均发生在用户网络环境。
长连接 AccessKey SecurityKey 认证 通信链路采用 TCP 长连接,每一次连接经过用户独有的 AccessKey 和 SecurityKey 认证。
请求验证 每一次请求主体信息,都经过资源归属验证,防止跨用户获取信息。
操作审计 控制台操作,用户节点请求均进行操作审计记录,可追踪溯源。