Deploy Platform

项目运维平台。

Scripts

npm install
make build
make up
npm run dev
npm run build
npm run lint
npm run test

Docs

Standalone Deploy

构建后可一键运行 distdeploy API

npm run deploy:run

已有 dist 时直接启动:

npm run deploy:serve

默认地址:http://127.0.0.1:29200

也可以用 Makefile 一键运行:

make up

部署模板和 TAT 脚本见 deploy/README.md

数据资源

  • APIGET /deploy/api/hyapp/resources?remote=1
  • 链路Tencent TAT -> deploy 机器
  • MySQL、Redis、MQ腾讯云托管资源
  • 业务服务器配置:优先 SSH失败后 TAT 兜底
  • 前端状态TAT 未返回前保持加载
  • 禁止:生产 SQL/Mongo 查询入口

微服务

  • 列表:GET /deploy/api/hyapp/discover?remote=1
  • 详情 YAMLGET /deploy/api/hyapp/discover?remote=1&includeConfig=1
  • 链路Tencent TAT -> deploy 机器 43.164.75.199 -> SSH 业务机器
  • 数据来源SSH 读取 systemd、Docker、镜像、资源、日志和配置
  • YAML 入口:列表右侧三点、详情配置区
  • 禁止:静态假数据兜底展示运行态

生产特殊服务

admin-servercron-service 当前不是标准 hyapp-services.inventory.prod.example.json 里的同一种滚动服务,更新前必须先按真实机器确认运行态。

admin-server

  • 机器:公网 134.175.160.86,内网 172.16.0.6
  • systemdhyapp-admin-server
  • 二进制:/opt/hyapp/admin-server/admin-server
  • 配置:/etc/hyapp/admin-server/config.yaml
  • 启动参数:/opt/hyapp/admin-server/admin-server -config /etc/hyapp/admin-server/config.yaml
  • 监听:172.16.0.6:13100
  • 验证:systemctl is-active hyapp-admin-serverss -lntp | grep 13100

admin-server 更新走独立机器发布:本地或 deploy 机构建 Linux 二进制,上传到 134.175.160.86,替换 /opt/hyapp/admin-server/admin-server 后重启 hyapp-admin-server。发布后必须确认 systemd active、端口监听、healthz/readyz 正常。

cron-service

  • 当前线上 HyApp cron-service 部署在 Saudi 主服务机器 new-app-1
  • 区域:me-saudi-arabia
  • 实例:ins-fi5zufpk
  • 内网:10.2.1.4
  • systemdhyapp-cron-service
  • 容器:hyapp-cron-service
  • 配置:/etc/hyapp/cron-service/config.yaml
  • Docker env/etc/hyapp/cron-service/docker.env
  • 监听::13007
  • 验证:systemctl is-active hyapp-cron-servicedocker ps -a | grep hyapp-cron-servicess -lntp | grep 13007

cron-service 当前不在标准 prod inventory 的 services 清单里。更新时先构建并推送 10.2.1.3:18082/hyapp/cron-service:<tag>,再通过 Tencent TAT 到 new-app-1 修改 /etc/hyapp/cron-service/docker.env 中的 IMAGE 并重启 hyapp-cron-service。发布后必须确认容器镜像 tag、Docker health、systemd active13007 监听。

腾讯云 ap-singapore 有一台实例名为 cron 的机器:

  • 实例:ins-nt6bsay0
  • 内网:10.3.1.14

这台新加坡 cron 机器当前没有 HyApp 的 hyapp-cron-service。最近一次核实时 hyapp-cron-serviceinactiveDocker 里只有 likei-cron-sg-1-week-star-job

测试 Server

这里的测试 server 指 HyApp 后端测试机 testbox不是生产业务机。

  • 测试机:43.165.195.39 / 10.11.0.2
  • CVM 实例:lhins-q0m38zc6
  • 区域:ap-jakarta
  • 根目录:/opt/hyapp-server-test
  • 代码目录:/opt/hyapp-server-test/source
  • 部署脚本:/opt/hyapp-server-test/bin/deploy.sh
  • 自动更新 timerhyapp-server-test-deploy.timer
  • 部署完成标记:/opt/hyapp-server-test/.deployed_commit
  • 后台前端:http://1.14.164.2:7001/

当前测试机不走生产镜像仓库,也不摘 CLB。部署模式是测试机自己拉取远端 test 分支,hyapp-server-test-deploy.timer 每分钟触发一次部署检查;部署成功且 Compose 服务全部 healthy 后,才写入 .deployed_commit

平台里的“测试服务”页面通过 deploy-platform API 调用 deploy/tencent_tat/hyapp_testbox_config.py,再通过 Tencent TAT 到测试机执行固定动作。页面不开放任意 shell

  • GET /deploy/api/hyapp/testbox/status:读取 test 分支、远端 test commit、已部署 commit、timer 和服务状态。
  • GET /deploy/api/hyapp/testbox/configs:读取测试机服务 YAML默认脱敏密钥字段。
  • POST /deploy/api/hyapp/testbox/service:固定服务操作 update/start/stop/restart
  • POST /deploy/api/hyapp/testbox/timer:固定 timer 操作 start/stop/restart/status
  • POST /deploy/api/hyapp/testbox/config:写入单个服务配置,先备份旧文件,可选保存后重启。
  • GET /deploy/api/hyapp/testbox/migrations:只列出 source/server/admin/migrations/*.sql
  • POST /deploy/api/hyapp/testbox/migrations/apply:只执行测试机仓库里的 migration 文件。

本地或 deploy-platform 机器上确认状态:

curl -fsS "http://127.0.0.1:29200/deploy/api/hyapp/testbox/status?services=gateway-service,room-service,admin-server"

直接走脚本确认状态:

python3 deploy/tencent_tat/hyapp_testbox_config.py status \
  --env-file /opt/hy-app-monitor/.env \
  --services gateway-service,room-service,admin-server

测试 Server 日志 Debug

先看平台状态,再看测试机日志。

  1. 在“测试服务”页面刷新,确认 test 分支已部署 commit远端 committimerState、服务 state/health/restartCount
  2. 如果页面或 API 报错,先看 deploy-platform 自身日志:
journalctl -u hyapp-deploy-platform -n 200 --no-pager
docker logs --tail=200 -f hyapp-deploy-platform
  1. 如果 TAT 到测试机成功但服务异常,登录测试机或通过腾讯云 TAT 执行同等只读命令:
ssh root@43.165.195.39

systemctl status hyapp-server-test-deploy.timer --no-pager
journalctl -u hyapp-server-test-deploy.timer -n 100 --no-pager
journalctl -u hyapp-server-test-deploy.service -n 200 --no-pager

cd /opt/hyapp-server-test/source
docker compose -p hyapp-test -f docker-compose.yml -f /opt/hyapp-server-test/docker-compose.testbox.yml ps
docker compose -p hyapp-test -f docker-compose.yml -f /opt/hyapp-server-test/docker-compose.testbox.yml logs --tail=200 -f gateway-service
docker inspect gateway-service

git -C /opt/hyapp-server-test/source status
git -C /opt/hyapp-server-test/source rev-parse HEAD
git -C /opt/hyapp-server-test/source ls-remote origin refs/heads/test
cat /opt/hyapp-server-test/.deployed_commit

如果 /opt/hyapp-server-test/docker-compose.testbox.yml 不存在,去掉第二个 -f。Debug 时优先查具体异常服务的 Compose 日志,例如 room-servicewallet-serviceadmin-server。配置问题先通过页面查看脱敏 YAML需要保存配置时必须补齐真实密钥包含 *** 的配置禁止保存。

Description
No description provided
Readme 524 KiB
Languages
TypeScript 36.9%
Python 36.2%
CSS 21.9%
JavaScript 4.7%
Dockerfile 0.1%