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: 现场可能有非标动作,请尽量扩大具体项目迁移的参与方,获得更丰富的信息。
- 集群 & 服务就绪检查
数据迁移
为保证数据一致性,以及基于现有团队的能力。所有数据迁移必须停机操作。期间系统不可使用。 如有必须不停机迁移的,需要组织会议明确必要性与承担必要风险。
- 对于一些与 IP 等环境相关的配置项,需要提前准备 Flyway 脚本。
- 提前约定计划性数据迁移时间,知会各相关方及业主。
- 在计划时段,进行数据全量转储。可选技术方案有 pgBackRest
- 重建数据库服务并进行数据复原。
- 执行变更的 Flyway 脚本。
- 集群 & 服务就绪检查
相关方接口/服务迁移
数据对接-自建物联数据对接
由于现场普遍没有提供域名服务,一般来说物联网关中配置了中心服务器的 IP 完成组网。 对于迁移动作,需要:
- 项目经理协调,确保所有物联网关能够与新的服务集群网络互通。
- 新服务的 IP 与老服务的 IP 保持一致。避免重复的自动化实施,重新跑站配置。
- 项目经理协调,向对方网络负责人确认该方案可行。下列场景一定会发生问题:
- 迁移前后的服务器均维持在同一个网络内(IP 冲突)
- 项目经理协调,要求对方网络负责人在迁移时配合完成网络切换。否则:
- 整个数据链路将被中断,取不到数据。
数据对接-取自第三方数据
项目经理协调,需要确保新集群到第三方的网络互通。
提供给第三方的接口
需要提前整理并明确,对于变更,需要知会到第三方做出相应修改。