Oinone平台部署及依赖说明(v5.1)

概述

名词解释

  • 业务工程包:指平台提供的内置基础包和内置功能包。
  • 设计器工程包:指模型设计器、界面设计器、流程设计器等相关依赖包。
  • 父POM:仅声明依赖包版本的pom文件
  • 启动工程POM:仅声明具体依赖包的pom文件,一般不用于指定版本。

业务工程部署

Oinone平台向合作伙伴提供前后端业务工程所需的全部依赖,依赖项的具体说明下面会分别介绍。

设计器部署

Oinone平台向合作伙伴提供了两种设计器部署方式:

  • Docker镜像:支持amd64arm64两种架构的操作系统。(推荐)
  • JAR包:与Docker镜像中的内容完全一致。

使用JAR包直接启动需要使用Oinone专属启动器Docker镜像已内置Oinone专属启动器。

PS:如遇到以上部署方式或提供的镜像无法满足部署需求时,请联系Oinone平台售后获取技术支持。

Docker镜像

体验镜像

  • 包括所有设计器。
  • 内置所有所需中间件,包括Mysql、Redis、Zookeeper、RocketMQ。

适用场景:用于快速体验Oinone平台全部功能

docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.1:TAG

前后端一体部署镜像

  • 包括所有设计器。
  • 无内置中间件。

适用场景:用于便捷部署Oinone平台的前后端服务

docker pull harbor.oinone.top/oinone/oinone-designer-mini-v5.1:TAG

前后端一体部署镜像 - 流程设计器

  • 仅包括流程设计器。
  • 无内置中间件。

适用场景:用于便捷部署仅需流程设计器的Oinone平台的前后端服务。

docker pull harbor.oinone.top/oinone/workflow-designer-v5.1:TAG

后端部署镜像

  • 用于前后端分别部署,包括所有设计器。
  • 仅包含后端服务
  • 无内置中间件

适用场景:Kubenetes部署;支持健康检查,前后端分离部署;

docker pull harbor.oinone.top/oinone/designer-backend-v5.1:TAG

前端部署镜像

  • 用于前后端分别部署,包括所有设计器。
  • 仅包含前端服务
  • 无内置中间件

适用场景:Kubenetes部署;支持健康检查,前后端分离部署;

docker pull harbor.oinone.top/oinone/designer-frontend-v5.1:TAG

镜像拉取

以体验镜像为例,Oinone平台提供多种拉取镜像的方式。

# 获取混合架构镜像,支持amd64和arm64架构的操作系统
docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.1:5.1.13

# 仅获取amd64架构镜像
docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.1:5.1.13-amd64

# 仅获取arm64架构镜像
docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.1:5.1.13-arm64

# 获取最新版镜像(每次拉取自动更新)
docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.1

PS:如镜像拉取过慢,可在确定操作系统架构的情况下获取amd64arm64架构镜像。

JAR包获取

  • $VERSION:对应镜像版本号

包含所有设计器的后端JAR包下载路径示例

https://oinone-jar.oss-cn-zhangjiakou.aliyuncs.com/install/oinone-designer/pamirs-designer-boot-v5.1-$VERSION.jar

仅包含流程设计器的后端JAR包下载路径示例

https://oinone-jar.oss-cn-zhangjiakou.aliyuncs.com/install/workflow-designer/pamirs-workflow-designer-boot-v5.1-$VERSION.jar

Kubernetes后端部署健康检查

准备健康检查脚本

将以下脚本放置在镜像中。/opt/pamirs/bin/healthCheck.sh为以下示例中所用脚本路径。(平台提供的设计器镜像有内置该脚本,并与示例路径一致)

#!/usr/bin/env bash

function sendDingTalkMessage() {
    url=$DING_TALK_ROBOT_URL
    if [ -z $url ]; then
        return -1
    fi
    message=$DING_TALK_ROBOT_MESSAGE
    if [ -z $message ]; then
        return -1
    fi
    message="$message\\nby kubernetes"
    isAtAll=$DING_TALK_ROBOT_IS_AT_ALL
    if [ $isAtAll ]; then
        isAtAll="true"
        message="$message\\n"
    else
        isAtAll="false"
    fi
    message="{\"msgtype\": \"text\",\"text\": {\"content\":\"$message\"}, \"isAtAll\": \"${isAtAll}\"}"
    curl "${url}" -H 'Content-Type: application/json' -d "${message}"
}

port=$1
callback=$2
OK=$(curl -s http://127.0.0.1:${port}/ruok)
if [ "$OK" == "imok" ]; then
    if [ -n $callback ]; then
        $callback
    fi
    exit 0
else
    exit 1
fi

配置Kubernetes健康检查

kind: Deployment
apiVersion: apps/v1
spec:
  template:
    spec:
      containers:
        - name: designer-backend
          env:
            - name: DING_TALK_ROBOT_URL # 钉钉机器人发送部署通知消息地址
              value: https://oapi.dingtalk.com/robot/send?access_token=xxxxxx
            - name: DING_TALK_ROBOT_MESSAGE # 通知信息
              value: 后端服务部署启动成功
            - name: DING_TALK_ROBOT_IS_AT_ALL # 是否at所有人
              value: 'true'
          livenessProbe:
            exec:
              command:
                - sh
                - '-c'
                - sh /opt/pamirs/bin/healthCheck.sh 8080
            initialDelaySeconds: 300
            timeoutSeconds: 5
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 100
          readinessProbe:
            exec:
              command:
                - sh
                - '-c'
                - sh /opt/pamirs/bin/healthCheck.sh 8080
            initialDelaySeconds: 60
            timeoutSeconds: 5
            periodSeconds: 5
            successThreshold: 1
            failureThreshold: 3
          startupProbe:
            exec:
              command:
                - sh
                - '-c'
                - sh /opt/pamirs/bin/healthCheck.sh 8080 sendDingTalkMessage
            initialDelaySeconds: 300
            timeoutSeconds: 5
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 100

PS: 8080为容器内后端服务端口;sendDingTalkMessage参数表示启动成功时发送钉钉消息通知。

Kubernetes前端部署健康检查

前端镜像使用nginx作为基础镜像,其健康检查方式与nginx镜像的健康检查方式一致。

kind: Deployment
apiVersion: apps/v1
spec:
  template:
    spec:
      containers:
        - name: designer-frontend
          livenessProbe:
            tcpSocket:
              port: 80
            initialDelaySeconds: 10
            timeoutSeconds: 5
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3
          readinessProbe:
            tcpSocket:
              port: 80
            initialDelaySeconds: 10
            timeoutSeconds: 5
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3

后端依赖

Oinone平台后端使用Maven管理工具对所有依赖包进行版本管理。

版本说明

下面是在每个版本升级说明中提供的所有依赖版本,最新版本请查看对应的最新升级说明文档。

版本更新日志

<!-- 平台基础 -->
<pamirs.middleware.version>5.0.3</pamirs.middleware.version>
<pamirs.k2.version>5.1.7</pamirs.k2.version>
<pamirs.framework.version>5.1.13</pamirs.framework.version>
<pamirs.boot.version>5.1.8</pamirs.boot.version>
<pamirs.distribution.version>5.1.7</pamirs.distribution.version>
<!-- 平台功能 -->
<pamirs.metadata.manager>5.1.2</pamirs.metadata.manager>
<pamirs.designer.metadata.version>5.1.3</pamirs.designer.metadata.version>
<pamirs.core.version>5.1.19</pamirs.core.version>
<pamirs.workflow.version>5.1.8</pamirs.workflow.version>
<pamirs.workbench.version>5.1.0</pamirs.workbench.version>
<pamirs.data.visualization.version>5.1.3</pamirs.data.visualization.version>
<!-- 设计器 -->
<pamirs.designer.common.version>5.1.2</pamirs.designer.common.version>
<pamirs.flow.designer.base.version>5.1.3</pamirs.flow.designer.base.version>
<pamirs.workflow.designer.version>5.1.2</pamirs.workflow.designer.version>
<pamirs.model.designer.version>5.1.4</pamirs.model.designer.version>
<pamirs.ui.designer.version>5.1.9</pamirs.ui.designer.version>
<pamirs.data.designer.version>5.1.2</pamirs.data.designer.version>
<pamirs.dataflow.designer.version>5.1.1</pamirs.dataflow.designer.version>
<pamirs.eip.designer.version>5.1.2</pamirs.eip.designer.version>

完整依赖管理示例

以下列举了除了设计器相关依赖外的全部依赖管理项,其通常使用在父POM中。

<dependency>
    <groupId>pro.shushi.pamirs</groupId>
    <artifactId>pamirs-k2</artifactId>
    <version>${pamirs.k2.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs</groupId>
    <artifactId>pamirs-framework</artifactId>
    <version>${pamirs.framework.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.boot</groupId>
    <artifactId>pamirs-boot-dependencies</artifactId>
    <version>${pamirs.boot.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-core-dependencies</artifactId>
    <version>${pamirs.core.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs</groupId>
    <artifactId>pamirs-distribution</artifactId>
    <version>${pamirs.distribution.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.middleware</groupId>
    <artifactId>pamirs-middleware-dependencies</artifactId>
    <version>${pamirs.middleware.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!--metadata manager-->
<dependency>
    <groupId>pro.shushi.pamirs.metadata.manager</groupId>
    <artifactId>pamirs-metadata-manager</artifactId>
    <version>${pamirs.metadata.manager}</version>
</dependency>

<!-- designer_metadata -->
<dependency>
    <groupId>pro.shushi.pamirs.designer</groupId>
    <artifactId>pamirs-designer-metadata</artifactId>
    <version>${pamirs.designer.metadata.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!--workflow-->
<dependency>
    <groupId>pro.shushi.pamirs.workflow</groupId>
    <artifactId>pamirs-workflow</artifactId>
    <version>${pamirs.workflow.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!--workbench-->
<dependency>
    <groupId>pro.shushi.pamirs.work.bench</groupId>
    <artifactId>pamirs-work-bench</artifactId>
    <version>${pamirs.workbench.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!--data-vi-->
<dependency>
    <groupId>pro.shushi.pamirs.data.visualization</groupId>
    <artifactId>pamirs-data-visualization</artifactId>
    <version>${pamirs.data.visualization.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

完整功能依赖示例

以下列举了除了设计器相关依赖外的全部依赖管理项,其通常使用在启动工程POM中。

<dependency>
    <groupId>pro.shushi.pamirs</groupId>
    <artifactId>a</artifactId>
</dependency>

<dependency>
    <groupId>pro.shushi.pamirs.boot</groupId>
    <artifactId>pamirs-boot-standard</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.metadata.manager</groupId>
    <artifactId>pamirs-metadata-manager</artifactId>
</dependency>

<dependency>
    <groupId>pro.shushi.pamirs.framework</groupId>
    <artifactId>pamirs-connectors-event-rocketmq</artifactId>
</dependency>
<!--<dependency>-->
<!--    <groupId>pro.shushi.pamirs.framework</groupId>-->
<!--    <artifactId>pamirs-connectors-event-kafka</artifactId>-->
<!--</dependency>-->
<!--<dependency>-->
<!--    <groupId>pro.shushi.pamirs.framework</groupId>-->
<!--    <artifactId>pamirs-connectors-event-rabbitmq</artifactId>-->
<!--</dependency>-->

<dependency>
    <groupId>pro.shushi.pamirs.boot</groupId>
    <artifactId>pamirs-distribution-id</artifactId>
</dependency>
<!--<dependency>-->
<!--    <groupId>pro.shushi.pamirs.distribution</groupId>-->
<!--    <artifactId>pamirs-distribution-faas</artifactId>-->
<!--</dependency>-->
<!--<dependency>-->
<!--    <groupId>pro.shushi.pamirs.distribution</groupId>-->
<!--    <artifactId>pamirs-distribution-gateway</artifactId>-->
<!--</dependency>-->
<!--<dependency>-->
<!--    <groupId>pro.shushi.pamirs.distribution</groupId>-->
<!--    <artifactId>pamirs-distribution-session</artifactId>-->
<!--</dependency>-->
<!--<dependency>-->
<!--    <groupId>pro.shushi.pamirs.distribution</groupId>-->
<!--    <artifactId>pamirs-distribution-session-cd</artifactId>-->
<!--</dependency>-->

<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-sequence</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-expression-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-core-common</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-resource-core</artifactId>
</dependency>
<!-- user -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-user-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-user-view</artifactId>
</dependency>
<!-- auth -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-auth3-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-auth3-view</artifactId>
</dependency>
<!-- auth rbac (since 5.1.14) -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-auth3-rbac-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-auth3-rbac-view</artifactId>
</dependency>
<!-- auth compatible -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-auth-compatible</artifactId>
</dependency>
<!-- business -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-business-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-business-view</artifactId>
</dependency>
<!-- management_center -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-management-center</artifactId>
</dependency>
<!-- message -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-message-core</artifactId>
</dependency>
<!-- translate -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-translate</artifactId>
</dependency>
<!-- file -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-file2-core</artifactId>
</dependency>
<!-- sql_record -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-sql-record-core</artifactId>
</dependency>
<!-- data_audit -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-data-audit-core</artifactId>
</dependency>
<!-- sys_setting -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-sys-setting-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-sys-setting-view</artifactId>
</dependency>
<!-- my_center -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-my-center-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-my-center-view</artifactId>
</dependency>
<!-- apps -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-apps-core</artifactId>
</dependency>
<!-- trigger -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-trigger-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-trigger-bridge-tbschedule</artifactId>
</dependency>
<!-- eip -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-eip2-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-eip2-view</artifactId>
</dependency>

<!-- designer_metadata -->
<dependency>
    <groupId>pro.shushi.pamirs.designer</groupId>
    <artifactId>pamirs-designer-metadata-core</artifactId>
</dependency>

<!-- workflow -->
<dependency>
    <groupId>pro.shushi.pamirs.workflow</groupId>
    <artifactId>pamirs-workflow-core</artifactId>
</dependency>
<!-- workbench -->
<dependency>
    <groupId>pro.shushi.pamirs.work.bench</groupId>
    <artifactId>pamirs-work-bench-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.work.bench</groupId>
    <artifactId>pamirs-work-bench-view</artifactId>
</dependency>
<!-- datavi -->
<dependency>
    <groupId>pro.shushi.pamirs.data.visualization</groupId>
    <artifactId>pamirs-data-visualization-core</artifactId>
</dependency>

对应的启动模块配置如下:

pamirs:
  boot:
    modules:
      - base # 基础模块(必须)
      - sequence # 序列(非应用)
      - expression # 表达式(非应用)
      - common # 公共资源
      - resource # 资源
      - user # 用户(非应用,管理页面入口迁移到管理中心)
      - auth # 权限(非应用,管理页面入口迁移到管理中心)
      - business # 合作伙伴 (非应用,管理页面入口迁移管理中心)
      - management_center # 管理中心
      - message # 消息
      - translate # 翻译
      - file # 文件
      - sql_record # SDC(非应用)
      - data_audit # 业务审计
      - sys_setting # 系统配置
      - my_center # 个人中心
      - apps # 应用中心
      - trigger # 触发器
      - eip # 集成接口
      - designer_metadata # 应用环境(元数据在线导入导出)
      - workflow # 工作流
      - workbench # 工作台
      - datavi # 数据可视化运行(非应用)

前端依赖

Oinone平台前端使用Npm管理工具对所有依赖包进行版本管理。

PS:前端更新最新版本仅需重新npm install即可获取最新版本。

完整依赖项示例

{
  "dependencies": {
    "@kunlun/dependencies": "~5.1.0",
    "@kunlun/vue-ui-antd": "~5.1.0",
    "@kunlun/vue-ui-el": "~5.1.0",
    "@kunlun/mobile-dependencies": "~5.1.0",
    "@kunlun/vue-ui-mobile-vant": "~5.1.0",
    "@kunlun/workflow": "~5.1.0",
    "@kunlun/designer-common": "~5.1.0",
    "@kunlun/ui-designer-dependencies": "~5.1.0",
    "@kunlun/data-designer": "~5.1.0",
    "@kunlun/data-designer-core": "~5.1.0",
    "@kunlun/data-designer-open-pc": "~5.1.0"
  }
}

前后端版本说明

Oinone平台前后端版本号管理基于以下原则:(以版本号z.y.x为例)

  • z:存在重大版本更新时;一般以年为单位进行升级。
  • y:功能迭代;
  • x:一般功能迭代;Bug修复;

PS:前后端版本总是以中版本进行完全兼容的,即5.1.x表示可以使用任意版本的前后端启动服务。

Oinone社区 作者:张博昊原创文章,如若转载,请注明出处:https://doc.oinone.top/yun-wei-shi-jian/17436.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(0)
张博昊的头像张博昊数式管理员
上一篇 1天前
下一篇 12小时前

相关推荐

  • MINIO无公网访问地址下OSS的配置

    在实际项目中,会存在MINIO外网不能访问,只能通过应用的机器进行转发才能访问的情况。该篇文章主要是为解决这种场景而写。 PS:如果MINIO外网可以直接访问,正常配置MINIO的OSS配置即可。 阅读之前 了解MINIO对endpoint的限制, As per S3 specification, path in the endpoint is not su…

    2024年5月9日
    36000
  • 开源日志平台:Graylog部署及接入

    一、部署Graylog Graylog总共需要3个服务:graylog服务端、mongodb(存储graylog的配置)、elasticSeach(存储日志)本文档部署方案介绍: graylog服务端、mongodb(存储graylog的配置)使用docker-compose部署 elasticSeach 引用外部地址 1. 安装docker、安装docke…

    2024年5月30日
    43300
  • 如何配置文件存储地址为相对路径

    介绍 大部分情况下,文件存储的配置都会配置uploadUrl和downloadUrl的值,这样图片和文件类型的业务字段会存储带域名的全路径文件地址,但是有些场景需要用户在专有内网的时候访问内网的文件存储地址,用户在公网的时候通过公网访问(一般情况下这个公网ip内部最后还是会转发到内网)文件存储地址,这个时候就要求存在数据库字段里的不能是全路径的地址,只能是想…

    2024年6月21日
    41100
  • Oinone平台部署及依赖说明(v5.0)

    概述 名词解释 业务工程包:指平台提供的内置基础包和内置功能包。 设计器工程包:指模型设计器、界面设计器、流程设计器等相关依赖包。 父POM:仅声明依赖包版本的pom文件 启动工程POM:仅声明具体依赖包的pom文件,一般不用于指定版本。 业务工程部署 Oinone平台向合作伙伴提供前后端业务工程所需的全部依赖,依赖项的具体说明下面会分别介绍。 设计器部署 …

    2024年6月21日
    54400
  • Maven包拉取:拉取Oinone包的配置

    1、方式一,配置数式仓库代理 创建一个proxy类型的仓库 点击"Repository"–>“Repositories”–>“Create repository”,选择maven2(proxy)。 Name:要代理的数式的maven,自定义maven-proxy-shushi-release Online:勾选,设置成在线 P…

    2024年2月20日
    14700

发表回复

登录后才能评论