关于阿里云:如何在阿里云上快速实现企业实例一键迁移实践类

4次阅读

共计 3233 个字符,预计需要花费 9 分钟才能阅读完成。

一、背景

阿里云 IoT 物联网平台 2020 年初上线企业实例,企业实例在性能、计费、稳定性方面相比原有公共实例有不小劣势。但如何从公共实例迁徙到企业实例,并不是一个简略的事件。实例的业务场景中波及用户服务、阿里云 IoT 物联网平台服务、设施等,业务链路长、场景简单。(企业实例迁徙相干内容请点击文末浏览原文理解详情)

二、业务介绍 & 挑战

如上图 1 为一个典型的 IoT 业务场景。

  • 共享设施联网接入阿里云 IoT 物联网平台,而后上报数据。
  • 用户利用通过阿里云 IoT 物联网平台的音讯通信,接管设施上报的数据、状态等。
  • 消费者,通过用户提供的 APP 扫码认证受权后,能够查看共享设施状态,而后管制共享设施提供服务。
  • APP 连贯用户利用,鉴权后开始计费。用户利用调用阿里云 IoT 物联网平台提供的设施管制服务,管制设施开始工作。
  • 设施运行过程中,上报设施状态。服务实现后上报状态,通过数据流同步给用户利用,用户推送 PUSH 给 APP,揭示消费者,服务完结揭示计费等信息。

业务场景中波及用户服务、阿里云 IoT 物联网平台服务、设施,业务链路长、场景简单,给实例迁徙工具设计带来了很大的挑战。
设施无奈批改,须要升高用户革新老本 。IoT 设施可能部署在公开、装置在商场中或者散落在城市不同角落(如公共自行车),同时设施数量会很多,手动降级设施简直不可能。同时 OTA 波及用户设施二次革新开发,设施型号碎片化、SDK 版本碎片化存量设施革新老本高,OTA 降级周期会较长。
波及性能和业务方多,影响面广对于稳定性要求高 。IoT 物联网平台波及控制台性能如产品治理、设施治理、拓扑治理、分组治理、标签、检索等泛滥性能。
业务数据类型多且异构,数据须要依照业务维度迁徙,无奈采纳工具对立进行 。阿里云 IoT 物联网平台波及数据如产品、设施、脚本、拓扑等多张表,同时数据存储在 RDS、DRDS、OTS、TSDB 云产品中。业务模型上依照产品维度迁徙产品、设施波及的数据,不能采纳工具如 DTS 对立进行。
业务链路长设施流量和用户管制流量路由需统一,业务上须要无损,用户革新计划老本高 。曾经迁徙到企业实例的设施,通过 长连贯 连贯到企业实例中,用户可能不晓得管制设施时会管制失败。

三、实例迁徙设计

企业实例迁徙面临 设施无奈批改、波及性能和业务方多、业务数据类型多且异构、业务链路长设施流量和用户管制流量路由需统一 四个方面的挑战,对咱们的产品和技术设计方案从用户应用门槛、稳定性提出了肯定的要求。
用户迁徙过程可灰度、可监控、可回滚 。用户设施体量大从几千到几十万都有,且设施都是通过长连贯连贯到平台,迁徙的工夫必然较长。同时用户设施可能波及到民生如公共交通畛域,降级须要凌晨按区域先灰度而后降级。降级的过程中用户须要可能感知和监控降级是否胜利,作为服务提供者咱们本人也须要能监控服务胜利信息防止故障的产生。计划实现中采纳状态机联合异步工作形式解决,做到用户侧状态可控,数据迁徙执行稳固。
设施不做革新,用户服务端少革新。基于开发成本考量,方案设计中须要兼容设施能主动路由到企业实例,防止设施革新。用户服务端少革新,保障和设施路由一致性防止业务有损。

四、实例迁徙可控

用户迁徙企业实例,波及用户服务端开发不是简略的开发一下切下流量,须要业务评估、革新、公布、切流同时须要和咱们提供的实例迁徙无缝的联合。咱们从迁徙过程可控、零碎设计稳固、监控等方面保障迁徙过程可灰度、可监控、可回滚。

4.1 实例如何迁徙

整个迁徙过程次要分为 4 局部:业务评估、零碎革新、实例降级、接口切流。

  • 业务评估。实例降级前须要评估业务影响,具体参考文档实例迁徙。
  • 零碎革新。针对评估的点,对业务零碎进行兼容革新。
    如实例降级后,凋谢接口须要传企业实例 id。
  • 实例迁徙。通过 IoT 实例迁徙性能,看待迁徙产品进行迁徙。
    灰度迁徙。灰度迁徙局部设施,察看影响面。
    灰度迁徙后,如零碎应用规定引擎流转。须要零碎应用新的规定引擎配置,并重启利用。
    全量迁徙。灰度后无异样,开始全量迁徙。
    回滚。全量迁徙过程中如果业务有问题能够进行回滚。
  • 接口切流。
    如设施管制接口,针对已迁徙到企业实例设施传企业实例 id。

4.2 实例迁徙零碎设计

状态治理        
如图 3 所示,实例迁徙过程分为不同的状态,很适宜采纳状态机形式治理业务流程防止业务代码耦合。同时采纳分布式锁,保障工作状态惟一。

数据迁徙
因为实例迁徙数据从业务模型上是依照产品维度,迁徙产品下所有的设施。须要先查问出产品和设施波及的数据,而后迁徙到对应的企业实例存储(存储目前逻辑隔离,物理隔离单元化我的项目曾经进行中)。依据业务诉求和数据个性,采纳不同的策略。
数据复制一份
如产品、规定引擎相干数据。产品数据设施运行过程中会应用到,产品下局部设施已迁徙到企业实例,局部设施未迁徙到企业实例,须要保障业务兼容须要复制一份雷同的数据。
数据先减少后删除
设施数据全局惟一,须要保障数据唯一性,因而先减少后删除

异步工作
须要迁徙的数据类型多、迁徙的设施数量多,导致迁徙的工夫比拟久。须要保障异常情况下数据迁徙的稳固牢靠,防止 ECS 宕机、利用公布、依赖服务异样时迁徙的稳定性。

  • 采纳异步工作形式,形象实例迁徙过程。灰度迁徙、全量迁徙、迁徙回滚采纳工作形式执行,并配合状态机业务可中断从业务维度保障稳固。
  • 实例迁徙工作执行过程中,针对工作心跳保活、异样检测、异样重试、限流排队等策略保障业务执行的可靠性。
  • 业务执行过程,业务谬误(约定错误码)接口级别重试,零碎异样工作维度重试。

存储 & 查问
实例迁徙过程中,设施数量多且状态更新查问频繁,迁徙工作和迁徙设施状态更新须要思考对于的压力,同时思考性能对于实时性和容错的需要。因为实例迁徙工作和设施状态重要水平,在存储上进行拆分,实例迁徙工作存 RDS,工作设施设施详情存 OTS。
数据的查问依赖高效的检索服务,通过配置形式能够反对 RDS、OTS 数据应用 SQL 的形式查问形式。

五、监控设计

监控面向受众包含阿里云 IoT 物联网平台用户和 IoT 外部开发者,其须要看到的监控指标和展现形式各不相同。从用户和性能开发者的诉求触发,针对不同场景进行埋点(日志、存储),采纳现有的监控产品构建咱们的监控告警体系。

  • 数据收集
    数据迁徙零碎,能够将工作执行的状态长久化存储到 RDS 中。设施的迁徙状态因为数据量比拟到能够存储到 OTS 或者 Hbase 中。迁徙过程中的一些操作,能够打印日志,收集到云产品 SLS 中。
    业务零碎如零碎 A 和零碎 B,针对设施在线量、音讯量进行统计打印到日志中,通过云产品 SLS 收集。
  • 数据聚合
    针对日志 SLS、RDS、OTS 不同维度的数据,按需进行不同的维度聚合剖析。
  • 数据展现
    针对阿里云 IoT 物联网平台用户,聚合后的数据采纳云监控的视图。提供不同实例要害链路业务指标比照,如设施在线数、音讯数、规定引擎流转数。
    针对 IoT 外部开发者 sunfire 提供要害接口维度监控如接口成功率,零碎异样。Grafana 聚合统计分析提供根底的大盘展现外,还提供不同工作状态的告警,防止如工作积压等异样。

六、设施少革新

实例迁徙过程,采纳设施不革新,服务端少革新的形式策略,防止阿里云 IoT 物联网平台用户革新老本过高。
用户设施

  • 设施连贯到物联网平台时,对立接入层能查问到设施信息,判断企业实例信息,主动路由到企业实例。
  • 设施建连认证过程中依赖的一些数据,如拓扑关系,云端也做了响应的兼容,防止网关子设施的场景实例迁徙过程中建连认证失败。
    用户服务端
    因为迁徙企业实例后凋谢 API 必须传实例 id,   用户零碎调用凋谢 API 管制设施须要和设施迁徙放弃同步。
  • 用户零碎通过规定引擎,订阅实例降级状态变更音讯。
  • 当实例迁徙过程中,设施迁徙实现后的音讯中会流转设施胜利的音讯。
  • 用户零碎批改曾经存储的设施实例信息,调用接口时传新的实例 ID。
  • 同时须要订阅灰度后迁徙到企业企业实例的服务端订阅以及规定订阅等,避免音讯失落。

物联网平台产品介绍详情:https://www.aliyun.com/produc…

            阿里云物联网平台客户交换群
正文完
 0