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

概述

名词解释

  • 业务工程包:指平台提供的内置基础包和内置功能包。
  • 设计器工程包:指模型设计器、界面设计器、流程设计器等相关依赖包。
  • 父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.3:TAG

前后端一体部署镜像

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

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

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

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

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

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

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

后端部署镜像

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

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

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

前端部署镜像

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

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

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

镜像拉取

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

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

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

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

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

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

JAR包获取

  • $VERSION:对应镜像版本号

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

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

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

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

后端依赖

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

版本说明

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

版本更新日志

<!-- 平台基础 -->
<oinone.version>5.3.5</oinone.version>
<!-- 设计器 -->
<pamirs.workflow.designer.version>5.3.0</pamirs.workflow.designer.version>
<pamirs.model.designer.version>5.3.2</pamirs.model.designer.version>
<pamirs.ui.designer.version>5.3.3</pamirs.ui.designer.version>
<pamirs.data.designer.version>5.3.0</pamirs.data.designer.version>
<pamirs.dataflow.designer.version>5.3.0</pamirs.dataflow.designer.version>
<pamirs.eip.designer.version>5.3.0</pamirs.eip.designer.version>
<pamirs.microflow.designer.version>5.3.0</pamirs.microflow.designer.version>

依赖版本管理

为了方便合作伙伴更方便的对平台版本进行管理,平台提供了一体化的依赖管理依赖包oinone-bom

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>pro.shushi</groupId>
            <artifactId>oinone-bom</artifactId>
            <version>${oinone.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

完整功能依赖示例

以下列举了除了设计器相关依赖外的全部依赖管理项,其通常使用在启动工程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 run clean && npm install即可获取最新版本。

完整依赖项示例

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

前后端版本说明

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

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

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

健康检查

平台提供了健康检查的统一请求接口/ruok

  • 启动完成返回imok字符串
  • 未启动完成返回no字符串
  • 其他情况返回对应的HTTP状态码,如404、500等。
curl -s http://127.0.0.1:${port}/ruok

PS: 端口号${port}server.port配置端口

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: 3
          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: 3

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社区 作者:张博昊原创文章,如若转载,请注明出处:https://doc.oinone.top/yun-wei-shi-jian/20240.html

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

(0)
张博昊的头像张博昊数式管理员
上一篇 6天前
下一篇 5天前

相关推荐

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

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

    2024年6月21日
    1.2K00
  • 开源日志平台:Graylog部署及接入

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

    2024年5月30日
    1.2K00
  • Oinone平台部署及依赖说明(v4.7)

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

    2024年9月3日
    33900
  • Maven包拉取:拉取Oinone包的配置

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

    2024年2月20日
    44800
  • 如何配置文件存储地址为相对路径

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

    2024年6月21日
    75400

发表回复

登录后才能评论