通用业务平台设计(三):自动化打包平台建设

前言

在上家公司,随着业务的不断拓展,需要打多个包来支持业务的快速发展;这篇文章主要为大家分享在构建自动化打包平台过程中一些经验总结以及躺过的坑。

通用业务平台系列

自动化打包平台

  • 生成nginx接口混淆(55个老接口),并在测试和预生产环境进行部署

    • 数据库表-注意新的url加唯一索引(生成策略:每级:产品名首尾字母,加随机数),表结构 老接口地址->新接口地址;表结构如下
-- 基础配置表
CREATE TABLE `hx_url_config` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `config_no` varchar(64) DEFAULT '' COMMENT '配置编码',
  `config_name` varchar(80) NOT NULL DEFAULT '' COMMENT '配置名称',
  `file_name` varchar(80) NOT NULL DEFAULT '' COMMENT '文件名称',
  `config_url` varchar(80) NOT NULL DEFAULT '' COMMENT '配置地址',
  `type` int(2) DEFAULT NULL COMMENT '类型,(1:配置类型,2:配置地址)',
  `status` int(2) DEFAULT NULL COMMENT '环境(1:测试,2:预生产,3:生产1,4:生产2)',
  `sort` int(2) DEFAULT NULL COMMENT '权重',
  `create_uid` varchar(32) NOT NULL DEFAULT '-1' COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(32) DEFAULT '' COMMENT '预留字段4',
  `param5` varchar(64) DEFAULT '' COMMENT '预留字段5',
  `param6` varchar(128) DEFAULT '' COMMENT '预留字段6',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='配置表';

-- 原接口表
CREATE TABLE `hx_old_interface_url` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `old_url` varchar(80) NOT NULL DEFAULT '' COMMENT '访问地址',
  `create_uid` varchar(32) NOT NULL DEFAULT '-1' COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(32) DEFAULT '' COMMENT '预留字段4',
  `param5` varchar(64) DEFAULT '' COMMENT '预留字段5',
  `param6` varchar(128) DEFAULT '' COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_hx_old_interface_url_old_url` (`old_url`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='原接口表';

-- 新接口混淆表
CREATE TABLE `hx_new_interface_url` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `app_product_name` varchar(32) NOT NULL DEFAULT '' COMMENT '包产品名',
  `hx_old_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '原来接口的id',
  `new_url` varchar(80) NOT NULL DEFAULT '' COMMENT '访问地址',
  `create_uid` varchar(32) NOT NULL DEFAULT '-1' COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `param1` int(2) DEFAULT NULL COMMENT '预留字段1',
  `param2` int(4) DEFAULT NULL COMMENT '预留字段2',
  `param3` int(11) DEFAULT NULL COMMENT '预留字段3',
  `param4` varchar(32) DEFAULT '' COMMENT '预留字段4',
  `param5` varchar(64) DEFAULT '' COMMENT '预留字段5',
  `param6` varchar(128) DEFAULT '' COMMENT '预留字段6',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_hx_new_interface_url_new_url` (`new_url`),
  UNIQUE KEY `uk_hx_new_interface_url_appname_oldid` (`app_product_name`,`hx_old_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='新接口混淆表';


  • 三个环境的nginx配置文件,并上传至git

    location /ag/gdnf/gcoev {
    	 rewrite ^ /ag_gdnf_gcoev last;
    }
    location /ag_gdnf_gcoev {
    	proxy_pass http://192.168.168.62:8888/get/config/onoff;
    }
    
  • 调用测试环境shell脚本进行拉取并reload对应环境的nginx

  • 上传固定的 图片,秘钥文件,google的json文件

  • 形成新的包(APP开发人员通过swagger接口进行访问)

    • 从git上拉原始代码并复制到新的目录下

    • 对源代码的秘钥 进行进行替换(调用python进行替换)

    • 替换图片(调用python进行替换)

    • 执行混淆后的接口替换(调用python进行替换)

    • 对源代码产品名替换(调用python)

    • 增加无效资源(调用python)

    • 增加无效方法

    • 将新形成的代码提交git(调用shell)

    • 针对新的代码打不同环境的apk包并将包上传至oss(调用shell脚本)

    • 将新的包的资源地址发邮件给 开发及测试

  • 生产环境处理

    • APP开发用新的机器打 生产包(生产域名替换)
    • 发上线申请邮件,发需要混淆接口的产品名,附件APP包
    • 运维执行生产环境nginx混淆,并将新包上传生产环境的OSS
    • 测试进行验证
  • 效率提升

    手工方式自动化打包平台
    打包效率1个包/3人天1天/N个包(实际半年打包 412个,实际3个/1人天)
    受制约因素开发打包产品提供素材、测试、运营

总结

  • 本篇博文介绍了自动化打包平台的建设,建设该平台使得出包效率提高了10倍+;
  • 当我们在做重复工作时,一定要思考一下做成自动化,提高我们的工作效率,从而将自己的精力放到更具有创造性的工作中去;
  • 大家有相关经验也可以在评论区共享下。
  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

当年的春天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值