系统迁移方案

viSCADA 系统迁移技术方案

本方案作为客户非常规的服务器迁移要求的通用技术方案,同时也可视为冷备方案中服务重建的一部分。

组件清单

下列为 viSCADA 系统所包含的所有数据库、中间件、自研服务清单。

# https://gitlab.iheatingos.com/devops/engi-starter/-/blob/master/config/standard/viscada-v1.0.0.yaml
stateful:
  - name: timescaledb
  - name: influxdb2
  - name: zookeeper
  - name: kafka
  - name: minio
  - name: nacos
stateless:
  - name: emqx
  - name: certManager
  - name: redis
  - name: telegraf
viscada:
  - name: storage_service
  - name: user_service
  - name: device_service
  - name: grpc_gateway
  - name: energy_frontend
  - name: energy_backend
  - name: resource_service
  - name: configuration_diagram
  - name: dataviz_charts
  - name: dataviz_service
  - name: report_service

基础设施重建 & 服务迁移

  • Kubernetes 集群重建方案 - Kubeasz
  • 服务重建方案 - 部署启动器
    • 需要将项目现场的 /data/engi_starter/config 目录拷贝,并尊重现场配置的版本信息。
    • dump 现场的 Nacos 配置,并于新集群重新使用该配置
    • HINT: 现场可能有非标动作,请尽量扩大具体项目迁移的参与方,获得更丰富的信息。
  • 集群 & 服务就绪检查

数据迁移

为保证数据一致性,以及基于现有团队的能力。所有数据迁移必须停机操作。期间系统不可使用。 如有必须不停机迁移的,需要组织会议明确必要性与承担必要风险。

  1. 对于一些与 IP 等环境相关的配置项,需要提前准备 Flyway 脚本。
  2. 提前约定计划性数据迁移时间,知会各相关方及业主。
  3. 在计划时段,进行数据全量转储。可选技术方案有 pgBackRest
  4. 重建数据库服务并进行数据复原。
  5. 执行变更的 Flyway 脚本。
  6. 集群 & 服务就绪检查

相关方接口/服务迁移

数据对接-自建物联数据对接

由于现场普遍没有提供域名服务,一般来说物联网关中配置了中心服务器的 IP 完成组网。 对于迁移动作,需要:

  1. 项目经理协调,确保所有物联网关能够与新的服务集群网络互通。
  2. 新服务的 IP 与老服务的 IP 保持一致。避免重复的自动化实施,重新跑站配置。
  3. 项目经理协调,向对方网络负责人确认该方案可行。下列场景一定会发生问题:
    1. 迁移前后的服务器均维持在同一个网络内(IP 冲突)
  4. 项目经理协调,要求对方网络负责人在迁移时配合完成网络切换。否则:
    1. 整个数据链路将被中断,取不到数据。

数据对接-取自第三方数据

项目经理协调,需要确保新集群到第三方的网络互通。

提供给第三方的接口

需要提前整理并明确,对于变更,需要知会到第三方做出相应修改。