无线交付平台设计

版权声明:本文为博主原创文章,欢迎转载,转载请注明博主和原文链接。 https://blog.csdn.net/u014077888/article/details/71480272

整体架构

  无线交付平台作为公司内部系统是连接代码、产品、研发(测试、运营等)人员三者的枢纽,保证产品持续稳定的产出。
  包含持续集成、测试(持续交付)、发布(持续部署)、监控、运营 五大子系统。

这里写图片描述

这里写图片描述


一、持续集成

  集成是指子模块(或分支)合并完整系统的过程。这一过程要随着各子模块的开发持续的集成在一起,而不是最后一次性集成。持续集成可以尽早的发现各子模块之间的兼容问题,并各自解决,直到集成成功。并进行静态代码检测和单元测试。
  这一部分还要增加如下必要功能:正式包、多渠道包、App加固(360加固宝提供了linux版的工具,可以实现自动化)等。

二、测试(持续交付)

将持续集成的结果进行自动化测试和供测试人员人肉测试。
  1. 设备集控系统
        统一线上管理公司移动设备,提供Web界面来操作设备。白天供测试测试人员选择机型进行人肉测试,晚上空闲时间跑自动化测试。
        例如:https://github.com/openstf/stf
  2. 自动化测试系统
    跑测试用例、UI测试、设备兼容测试等

三、发布(持续部署)

  将测试后的结果进行线上发布。只能做官方包的发布、新版本的升级发布。还做不到各应用市场的自动发布,还要靠运营人员手动上传。

  这一部分还要增加如下必要功能:灰度发布、App升级组件、Bundle系统(热修复、插件包、Weex\RN)等。

四、APM

主要包含如下子系统:Crash统计、Network统计

    开源项目:https://github.com/getsentry/sentry
    开源项目:https://github.com/naver/pinpoint

五、运营

主要包含如下子系统:反馈(APP内反馈、抓取市场评论)、在线配置

六、简单实现

对于中小公司持续集成是最迫切需要的功能,所以我优先实现了持续集成的功能。
  1. 目录:
    这里写图片描述
  2. 流程:
    1. Gitlab push event 通过 webhook 请求 MDP-server
    2. MDP-server 触发 jenkins job
    3. jenkins job 返回 数据和状态给 MDP-server
    4. MDP-Client 请求 MDP-server 接口 展示数据
  3. 注意:
    jenkins-android采用docker container 使用docker 方便做集群,jenkins-iOS只能采用mac真机。

  4. 界面:
    这里写图片描述


参考文章

http://blog.dataman-inc.com/98-shurenyun-cdci/
https://github.com/lynzz/element-admin
https://github.com/ycwalker/CMS-of-Blog

阅读更多

没有更多推荐了,返回首页