ota go 服务搭建

整体设计:


ota 架构

golang&beego

在设计中,采用了golang 语言,使用了开源的beego , beego 有很多不完善的地方,也可以使用gin进行ota 服务器的搭建
beego开源

beego 核心route , 下面就设计了一个route ,不同的http 请求可以设计不同的route


route

服务器ota 逻辑

鉴于source code 不能公布,就写出基本思路

  • 本地服务器搭建jenkins, 然后jenkins 建立job, 制作ota的增量包与全量包,同时进行rsync 指令传送到ota 的阿里云服务器
  • 本地服务器搭建jenkins,能够启动ota 服务器的部署. 本地git pull push 修改ota 服务器的code
  • ota 服务器的code 处理逻辑,要考虑终端设备请求的情况,如果要升级,ota 服务器反馈 升级包的url 位置,这样终端设备能够下载,进行ota 升级

备注: ota 服务器其实主要就是处理,包的位置信息,终端设备请求,能正常返回即可
使用golang 编写双map 对应关系,类似二维数组
ex:

absOtaPackagePath map[string]string
fullOtaPackage map[string]string
deltaVersionSrcToVersionDes map[string]map[string]string
fileOtaPackagedByName map[string]map[string]*struct_indexInfo

route 部分code

package myroute
import (
    "github.com/astaxie/beego"
)
func init() {
    beego.Router("/", &controllers.MainController{})
    beego.Router("/upgrade_req", &controllers.upgradeReq{})
    beego.Router("/test_one_device_id", & controllers.testOneDeviceId{});
}

你可能感兴趣的:(ota go 服务搭建)