云原生落地实践:山西数智时代基于 Rainbond 实现智慧景区
· 阅读需 1 分钟
云原生落地实践:山西数智时代基于 Rainbond 实现智慧景区
大家好,我是山西数智时代科技有限公司的赵佳鹏,我们公司成立于2018年,专注于智慧旅游、景区信息化建设。公司目前的主要产品有小悠出行管理系统、景区数字化运行管理系统、鼎云校园摆渡车运营管理系统、行车信息管理及流转系统、觅四方商城系统等,是集智慧旅游规划、设计、建设、运营为一体的旅游全产业链服务商。
智慧景区的整体架构

最早我们的业务是单体服务,单体服务最大的问题就是业务无法解耦,抗并发能力不高。业务升级为微服务架构之后解决了业务之间的解耦,提升了业务的抗并发能力,升级微服务架构之后也增加了很多新功能,比如实时分账、套票的支持,多种渠道的购票 融合,支付安全性、抢购、活动等都带来了一定的复杂度,在检票的时候要保证多个渠道的库存、票状态要实时同步等对技术上有一定的要求。 单体服务到微服务也是一次巨大的挑战,服务器成本、人员成本、单体业务解耦、服务划分、运维等方面都存在很多问题。
存在的技术问题:
- 资源利用率,以前服务器都是每台上边部署几个项目,比如有台服务器 CPU、内存、磁盘等资源很多,但另一台服务器资源又很少,资源多的服务器没法完全利用起来,资源少的服务器满了之后就没办法再部署业务,这会导致大量资源无法有效的完全利用。
- 运维方式不统一,以前部署项目的时候多个项目组都是各自部署各自项目,各自部署方式不一样一会用主机方式,一会用镜像方式,每次需要找日志的时候都要查找半天,服务器上边的文件夹也是创建的乱七八糟的,没有统一的部署方式导致出问题后需要巨大的成本。
- 项目环境重复部署,之前服务器上会部署多个项目,每个项目环境都是各自项目组成员负责,导致环境不统一,有的中间件需要部署好几遍,Nginx 也是部署了很多不同的版本,浪费了大量的时间去做了相同的事情,加大了运维成本。
- 部署成本高,之前用 GitLab CI/CD 部署项目时需要写大量的 YAML 配置,同时还要解决 HTTP、HTTPS 访问,证书每次都需要去手动生成,然后再拷贝到服务器上,出现问题再一遍一遍的去改配置,YAML 语法也需要每个项目组的成员去学习,导致项目的成本提高。