Skip to content
跳到项目内容
全部项目
SDK 与交付/私有化交付

营销云私有化交付

小程序 API、管理后台与数据面板在客户集群的独立部署

Spring BootKubernetesNacosRedisMySQL微信生态
3 个
部署单元
3 条
健康检查
4 类
验收对象
6 步
交付流程
  1. 01盘点POM · YAML

    核对源码模块、部署清单和外部依赖

  2. 02环境Namespace · Registry

    命名空间、拉取权限、配置、数据库与消息

  3. 03配置Nacos · ConfigMap

    环境值注入,镜像保持可晋级

  4. 04发布Deployment

    三个服务分别部署,检查容器与日志

  5. 05就绪ready · live

    探针通过后才接流量

  6. 06入口Service · Ingress

    域名、证书和前端访问路径

  7. 07回读业务用例

    授权、报名、支付、权限、统计和导出

  8. 08留档镜像 · 配置版本

    数据库变更、验收记录和回滚入口

项目速览

业务背景

营销云面向地产营销团队:前台承接微信小程序和公众号触达,后台管理项目、活动、经纪人、客户与内容,数据面板把到访、活动、物料和渠道事实汇总成经营视图。私有化交付的难点不是把一个 Spring Boot 包复制到服务器,而是把四个代码单元、配置中心、数据库与缓存、消息组件、域名入口和健康检查组合成客户环境可以独立验收的部署边界。

负责范围
  • 拆分小程序 API、管理后台 API、数据面板和公共 Maven 模块的部署职责
  • 核对微信、支付、短信、OSS、消息与数据分析等外部依赖
  • 定义 Kubernetes Deployment、Service、Ingress、ConfigMap 与探针边界
  • 把镜像、配置、数据库初始化、域名接入、日志和回滚纳入交付验收
3 个

部署单元

小程序 API、管理后台 API 和数据面板分别有 Kubernetes 运行单元、端口与探针。

3 条

健康检查路径

小程序 API 的 ready / live 与数据面板的 readinessProbe 路径,接流量前必须通过。

4 类

验收对象

运行状态、配置与依赖、接口与权限、业务数据与报表分别检查。

01

核心业务

营销云面向地产营销团队:微信小程序和公众号负责用户触达与项目浏览,PC 管理后台负责项目、活动、客户、经纪人、内容和运营配置,数据面板汇总活动、到访、访客、物料、渠道和排行分析。私有化版本由小程序 API、管理后台 API、数据面板和公共 Maven 模块组成,部署在客户自己的 Kubernetes 集群中。

私有化交付要解决的是“这套系统在客户环境里能稳定运行,并且能被验收”。所以交付范围不只是镜像,还包括服务职责、配置注入、数据库和缓存、消息协作、Ingress 路由、健康探针、日志和回滚;容量和 SLA 则以目标环境的实测为准。

01小程序与用户触达
小程序 API 提供授权登录、手机号绑定、公众号授权、楼盘与项目浏览、活动报名、访客和分享等入口,并连接微信支付、短信与对象存储。
02管理后台与营销运营
管理后台 API 面向管理员、角色、权限、项目、品牌、文章、知识库、活动、优惠券、抽奖、报名、顾问、客户和报表配置,使用 Nacos 和动态数据源适配目标环境。
03数据面板与经营分析
数据面板汇总活动概览、趋势、排行、到访来源、访客画像、项目 / 品牌 / 物料 / 渠道排行,提供 Redis 统计、定时汇总和 Excel 导出。
04公共模块与运行依赖
公共模块提供订阅消息、品牌和基础能力;MySQL、Redis、RabbitMQ、Kafka、OSS、邮件和第三方平台由客户环境提供并单独验收。
02

部署单元

小程序 API

:8092

承接微信小程序和公众号:授权登录、手机号绑定、项目浏览、活动报名、支付和分享。

实现
配置挂载到 /config,依赖 MySQL、Redis、消息组件、微信支付、短信和 OSS;ready / live 两条探针分开判断。
输出
用户侧全部交互入口,以及支付成功等业务事实。
边界
微信授权和支付回调依赖客户的公众号、商户号与域名备案,需要在目标环境逐项回归。

管理后台 API

:8380

管理员、角色、权限,以及项目、品牌、文章、活动、优惠券、抽奖、顾问和客户等运营配置。

实现
Service 80 → 8380,Ingress 按路径前缀暴露;Nacos 配置经 ConfigMap 注入,动态数据源适配目标库。
输出
运营配置和权限范围,驱动小程序侧的内容与活动。
边界
权限范围和角色数据随客户组织结构初始化,迁移后需按真实账号核对。

数据面板

:8083

活动概览、趋势、排行、到访来源、访客画像,以及项目、品牌、物料、渠道排行与 Excel 导出。

实现
业务事实经统计适配和定时汇总写入 Redis,面板只读汇总模型;context path 为 /data-panel/,镜像由 Jib 构建。
输出
运营侧的经营视图和导出文件。
边界
汇总有时间窗口,数据延迟、重算和导出完整性要和业务方约定口径。
03

技术栈

业务服务
Java 8Spring BootMyBatis-PlusMaven
接入与数据
微信小程序 / 公众号MySQLRedisOSS短信
异步协作
RabbitMQKafkaWebSocket@Async
后台与分析
NacosEasyExcelSpring MailXXL-JOBPrometheus
运行与交付
DockerJibKubernetesConfigMapIngress私有镜像仓库
04

系统架构与部署

小程序 API、管理后台 API 和数据面板分别部署并经 Ingress 接流量,公共模块只在构建期复用;配置、数据、消息和外部平台由客户环境提供。

小程序 API

Spring Boot / Deployment / 8092

配置挂载到 /config;readiness 与 liveness 分别检查 /api/health/ready、/api/health/live,就绪后才接流量。

管理后台 API

Spring Boot / Deployment / 8380

Service 将 80 转发到 8380,Ingress 以独立路径前缀暴露;Nacos 配置由 ConfigMap 注入。

数据面板

Spring Boot / Deployment / 8083

context path 为 /data-panel/,探针使用带 readinessProbe 参数的健康检查;镜像由 Jib 构建。

公共模块

Maven modules / Java 8 / Spring Boot 2.1.4

订阅消息、品牌和基础能力在构建期被业务服务依赖,不单独接收公网流量。

配置与基础设施

Nacos / ConfigMap / MySQL / Redis / MQ / OSS

客户环境提供连接地址、账号、密钥、消息和存储能力;敏感值只在目标环境管理,不进入镜像。

镜像与入口

Docker / Kubernetes / Ingress / 私有 Registry

三个服务各自有镜像与发布边界,镜像按环境晋级;入口、证书和域名由客户集群验收。

05

客户环境提供:交付前要先确认的四类依赖

应用镜像只包含代码和依赖,下列能力由客户环境提供,每一类都单独验收后才发布服务。

配置
Nacos / ConfigMap

连接地址、账号、业务开关和密钥,只在目标环境管理。

数据
MySQL / Redis

业务库初始化、迁移脚本、缓存与分布式锁。

消息
RabbitMQ / Kafka

支付通知、活动事件和统计汇总的异步协作。

外部
微信 / 支付 / 短信 / OSS

公众号、商户号、短信签名和对象存储桶。

容量和 SLA 取决于客户集群规格,以目标环境压测与验收为准。

06

核心业务链路

用户从微信入口进入活动并完成交易

  1. 1微信授权
  2. 2用户身份
  3. 3项目 / 活动
  4. 4报名
  5. 5支付下单
  6. 6渠道回调
  7. 7业务事件

小程序 API 把静默登录、手机号绑定、项目浏览、活动报名和支付接口放在同一条业务链路中。支付中心负责渠道差异和流水记录,库存预减与活动处理通过 Redis、消息和业务记录协作;回调成功后再由业务事实推动后续通知和统计。验收覆盖授权、重复报名、库存边界、支付回调和失败重试。

运营人员在后台配置项目并查看数据

  1. 1PC 后台
  2. 2项目 / 客户 / 活动配置
  3. 3业务事实
  4. 4统计汇总
  5. 5数据面板 / 导出

管理后台 API 收敛管理员、角色、权限和项目运营配置,业务服务产生的活动、访客、物料和渠道事实进入统计与汇总链路,数据面板负责查询、排行和 Excel 导出。验收把权限范围、时间口径、汇总延迟和导出内容一起核对。

私有环境发布后接入流量

  1. 1镜像
  2. 2ConfigMap / Nacos
  3. 3Deployment
  4. 4探针
  5. 5Service / Ingress
  6. 6业务回读

发布先确认镜像版本和配置来源,再检查容器启动、依赖连接和健康探针。探针通过后才允许 Service 和 Ingress 接流量,随后用真实业务路径回读,而不是只用 HTTP 200 判断交付完成。异常时按镜像、配置、数据库迁移、域名和业务数据分别回滚或修复。

07

关键机制与取舍

01服务边界:按入口和事实拆分

约束
小程序请求、后台运营和分析查询的流量模式不同,全部塞进一个部署单元会让权限、发布和故障定位互相影响。
做法
小程序 API 负责移动端和微信生态入口,管理后台 API 负责运营配置,数据面板负责统计查询;公共模块通过 Maven 依赖共享,服务之间用明确的接口、事件和数据边界连接。
效果
可以分别发布和扩容,登录或报表问题不会等同于全部业务不可用,验收也能按服务单元拆开。

02环境配置:构建与运行分离

约束
客户环境的数据库、缓存、消息、对象存储和第三方凭据各不相同,把配置打进镜像会阻断晋级并扩大泄露面。
做法
镜像只包含应用和依赖,Nacos、ConfigMap 和挂载目录负责注入环境配置;交付清单记录配置项、来源、变更方式和回滚版本,敏感值只在目标环境管理。
效果
同一应用制品可以进入不同环境,配置变更有独立审计边界,交付材料不包含真实密钥。

03支付协作:回调确认事实

约束
支付请求、库存预减和渠道回调不在同一个事务里,网络重试或重复回调可能导致重复处理或提前释放库存。
做法
订单和支付流水使用业务标识关联,Redis 参与库存预减,RabbitMQ / Kafka 承担异步通知;回调先校验渠道事实和幂等记录,再发布支付成功事件,订阅方按业务标识处理。
效果
支付、库存和通知状态可以分别解释,重复回调不会触发第二次业务处理;目标环境仍按渠道沙箱或生产规则回归。

04数据面板:事实与查询模型分离

约束
活动和访客明细持续增长,报表请求如果每次都扫描业务表,会把运营查询和交易写入耦合在一起。
做法
业务事实与埋点进入统计适配和定时汇总,Redis 保存统计结果,数据面板按活动、访客、项目、品牌、物料和渠道提供查询与导出;汇总任务与页面查询分别记录时间口径。
效果
报表围绕稳定的查询模型组织,运营能看到趋势和排行;数据延迟、重算和导出完整性列入交付验收。

05探针与验收:运行就绪不等于业务完成

约束
进程启动且探针通过,只说明应用具备接流量的基础条件,不能证明微信授权、权限、支付或报表口径正确。
做法
先验证端口、配置、依赖和 readiness / liveness,再执行登录、项目、活动、报名、支付回调、后台权限、统计和导出回读;每个服务保存镜像、配置和业务验证记录。
效果
发布故障能快速定位在运行层还是业务层,私有化交付的标准从“容器启动”提升到“业务闭环可验收”。
08

私有化交付

交付以目标环境为准:代码说明模块和部署契约,客户环境提供依赖和真实配置,业务验收确认链路可用。每个服务都绑定镜像版本、配置来源、探针结果和关键流程回读。

  1. 1资产盘点核对源码模块、POM、Docker / Kubernetes 清单和外部依赖
  2. 2环境准备建立命名空间、镜像拉取权限、配置来源、数据库与消息资源
  3. 3服务发布按小程序 API、管理后台、数据面板分别部署并检查容器、日志与探针
  4. 4入口接入配置 Service、Ingress、域名、证书和前端访问路径
  5. 5业务回读执行授权、项目、活动、报名、支付、权限、统计和导出用例
  6. 6交付留档保存镜像摘要、配置版本、数据库变更、验收记录和回滚入口
4 类

验收对象

运行状态、配置与依赖、接口与权限、业务数据与报表分别检查。

3 条

健康路径

小程序 API 的 ready / live 与数据面板的 readinessProbe 路径,需与 Service 接流量前的配置一致。

1 份

交付记录

镜像、配置、数据库变更、域名入口和回滚版本放在同一份记录中,便于复盘。

不能替代验收的信号

  • 容器启动成功只能证明进程完成启动,不能证明权限、支付回调或报表口径正确。
  • readiness 通过只说明达到基础接流量条件,仍需执行真实业务路径和外部依赖回读。
  • 源码能编译不能证明客户配置、数据库迁移、域名、证书和消息组件已准备好。
  • 已有部署 YAML只说明设计过部署结构,不能推断目标集群的容量或运行状态。
09

部署架构

部署单元与客户环境依赖三个部署单元经 Ingress 接流量,配置与数据依赖由客户环境提供。
10

阶段成果

  • 四个代码单元对应清晰的部署边界:哪些服务接流量、哪些模块只在构建期复用、哪些依赖由客户环境提供。
  • 镜像构建、配置注入、Kubernetes 发布、业务回读和回滚形成固定的交付检查顺序。
  • 从微信触达、活动与支付到数据分析的链路可以按服务单元逐段排障。

继续浏览

营销云私有化交付 · 部署单元与客户环境依赖
100%
营销云私有化交付放大预览

部署单元与客户环境依赖

别急,先让缓存热一下。