基于云原生系统的应用分发系统设计

时间:2022-07-23
本文章向大家介绍基于云原生系统的应用分发系统设计,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、应用分发是什么

架构

将我们现有的所有应用都拆分成一个个基于hub之上的应用服务,对于需要私有化的用户可以提供一个分发客户端,通过部署客户端进行私有化部署。对于不需要私有化的用户,可以直接通过云端访问上面的服务。(可以理解我们在云端也部署了一个client controller)

如果用户想安装应用,只需要在客户端界面点击安装,即可从云端hub中心分发到本地集群,完成自动安装。

2、核心价值

  • 功能模式:构建一套以云原生系统为核心的3D数字化应用系统,可以满足用户对私有化环境下的应用分发需求
  • 用户体验:通过应用分发的模式让客户更简单、高效地购买和安装应用
  • 商业价值:拓宽了应用分发形式和渠道,可以更多样化地形式进行商业变现

3、用户界面

  • 命令行工具(CLI),client controller 提供命令行安装部署。
  • GUI dashboard,client controller 同时提供了前端的可视化界面进行安装部署操作。

4、关键问题

Hub应用分发模式落地需要解决关键问题是什么?

需要解决的关键问题是应用构建分发标准3D统一场景描述格式

4.1、应用构建分发标准

(1)应用构建、分发流程

@startuml
participant "client controller"
participant "hub center"
participant "cloud app"

"cloud app" -> "hub center": cloud app注册
"client controller" -> "hub center": 发起cloud app列表请求
"hub center" -> "client controller": 返回cloud app信息
"client controller" -> "hub center": 发起安装依赖请求
"hub center" -> "client controller": 返回cloud app安装依赖
"client controller" -> "client controller": 检测环境依赖
"client controller" -> "hub center": 发起下载请求
"hub center" -> "client controller": 下载cloud app(Pull操作)
"client controller" -> "client controller": cloud app自动构建/运行
@enduml

(2)落地路径

  • 首先需要对现有的应用进行切分,让每个应用作为一个独立的系统,相互之间的调用只能走http协议;
  • 其次需要确定应用构建流程细节设计,包括应用之间具备依赖关系设计、应用自动化构建和测试等;
  • 明确应用分发流程细节设计,在落地过程种应用分发是最核心也最复杂的一块,这一块需要做的事情包括分发协议设计、复杂环境的应用自动化安装部署检测流程;

4.2、3D统一场景描述格式

构建统一的场景描述格式供多种3D应用进行数据交换和使用。 数据格式要求:轻量的、可扩展的、能充分描述3D场景的3D格式。