首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第八十八章 版本与兼容性架构 WSaiOS Versioning and Compatibility Architecture WSaiOS

第八十八章

WSaiOS Versioning and Compatibility Architecture

WSaiOS 版本与兼容性架构


88.1 工程目标

WSaiOS 在长期演进过程中必须保证:

  • Core 可以升级;
  • Plugin 可以兼容;
  • Workflow 可以迁移;
  • API 可以演进;
  • Data 可以读取。

本章定义 WSaiOS 的版本管理体系和兼容策略。


88.2 为什么需要版本体系

例如:

今天:

WSaiOS Core 1.0

Plugin:

SEO Plugin 1.0

一年以后:

WSaiOS Core 2.0

如果:

Plugin:

全部:

失效。

那么:

整个生态:

无法维护。

因此:

必须:

定义:

Version。


88.3 Version组成

建议采用:

Semantic Versioning。

格式:

Major.Minor.Patch

例如:

1.0.0

1.1.0

1.1.3

2.0.0

说明:

Major:

重大架构变化。

Minor:

新增能力。

Patch:

Bug 修复。


88.4 Core Version

Core:

统一:

例如:

WSaiOS Core

1.0.0

Kernel:

Runtime:

Workflow:

全部:

属于:

Core。

一起:

升级。


88.5 Plugin Version

Plugin:

独立:

版本。

例如:

SEO Plugin

1.2.0

Plugin:

不能:

跟随:

Core:

一起:

编号。

保持:

独立。


88.6 API Version

API:

建议:

单独:

维护。

例如:

/api/v1/

/api/v2/

API:

升级:

不代表:

Core:

升级。

这样:

便于:

兼容。


88.7 Workflow Version

Workflow:

建议:

保存:

版本。

例如:

{

"workflow":"SEO",

"version":"1.0"

}

以后:

Workflow:

升级:

可以:

迁移。


88.8 Object Version

所有:

CognitiveObject:

保存:

Schema Version。

例如:

{

"schema":"1.0"

}

方便:

未来:

读取:

旧对象。


88.9 Compatibility原则

建议:

Core:

满足:

1.x

↓

支持:

所有:

1.x Plugin

Major:

升级:

允许:

不兼容。

Minor:

必须:

兼容。

Patch:

完全:

兼容。


88.10 数据迁移

例如:

SQLite:

增加:

字段。

建立:

Migration。

例如:

v1

↓

v2

↓

v3

禁止:

直接:

修改:

数据库。


88.11 Plugin兼容验证

Loader:

启动:

检查:

Plugin

↓

Version

↓

Compatibility

↓

Enable

例如:

Plugin:

要求:

Core >=1.2

Loader:

自动:

验证。


88.12 Upgrade流程

建议:

统一:

升级:

流程。

Backup

↓

Migration

↓

Compatibility Check

↓

Upgrade

↓

Verify

↓

Start

失败:

Rollback。


88.13 Deprecation策略

旧API:

不能:

立即:

删除。

例如:

v1

Deprecated

↓

v2

↓

Remove

至少保留一个主要版本周期,为开发者提供迁移时间。


88.14 Compatibility测试

建立:

自动:

验证。

例如:

Core 1.1

↓

SEO Plugin 1.0

↓

Workflow 1.0

验证:

是否:

全部:

正常。

形成:

Compatibility Matrix。


88.15 Compatibility Matrix

建议维护兼容性矩阵,例如:

Core Plugin API Workflow 状态
1.0.x 1.0.x v1 1.0
1.1.x 1.0.x v1 1.0
1.2.x 1.1.x v1 1.1
2.0.x 2.0.x v2 2.0

矩阵应作为发布文档的一部分。


88.16 工程目录

建议新增:

version/

├── version.py
├── compatibility.py
├── migration.py
├── checker.py
└── matrix.py

职责:

  • Version;
  • Compatibility;
  • Migration;
  • Checker。

88.17 最小验证

模拟:

Core:

1.1.0

加载:

SEO Plugin:

1.0.0

验证:

  • Loader 是否允许加载;
  • Workflow 是否运行;
  • API 是否兼容;
  • 数据是否可读取。

然后:

升级:

Core:

2.0.0

验证:

是否:

提示:

Migration。


88.18 本章总结

完成:

WSaiOS Versioning and Compatibility Architecture

建立:

  • Semantic Versioning
  • Core Version
  • Plugin Version
  • API Version
  • Workflow Version
  • Object Schema Version
  • Compatibility Rule
  • Migration
  • Upgrade
  • Compatibility Matrix

对整个工程体系的评价

到第88章,WSaiOS 已经覆盖了一个现代软件平台的大部分基础工程能力:

  • 架构设计
  • 运行时
  • 工作流
  • SDK 与 API
  • 插件体系
  • 参考实现
  • 测试体系
  • 构建打包
  • 部署架构
  • 安全体系
  • 版本与兼容性

Leave a Reply

Your email address will not be published. Required fields are marked *