作者:陈列昂(SKG)、昕辰、龙琛、黛忻
项目背景
未来穿戴健康科技股份有限公司(SKG)是一家专注为个人与家庭提供智能可穿戴健康产品的高新技术企业,专业从事 SKG 品牌可穿戴健康产品和便携式健康产品的研发、设计、生产及销售。
随着市场需求的迅速变化,SKG 的 IT 系统也逐渐面临着库存不准确、线上线下渠道无法协同、部署架构不灵活、IT 响应速度过慢等问题,为了能适配销售拓展、提高效率、加强规模化运营,SKG 同阿里云达成战略合作,打造基于线上线下打通,并覆盖全渠道应用场景的渠道中台项目。
本次渠道中台建设面向 SKG 线上、线下、礼品等渠道的营销管理,打通经销商、导购、后端 SAP 多端业务数据,同时整合面向C端会员数据和渠道零售终端销售数据,以全新的互联网架构云化系统能力支撑业务快速发展。
基于底层渠道中台构建的营销运营管理平台、经销商门户、导购终端小程序,需要有多端触达能力,同时满足不同端的个性化业务诉求和访问特点,要求中台有灵活的扩展定制能力、以及适配不同渠道流量需求的弹性能力。
现状问题&分析:
在渠道中台建设之前、SKG 主要是租用 IDC 机房部署应用,也有业务跑在云上,整体是 IDC 机房+ECS 自建应用配套RDS等云产品的混合云架构。整套系统架构需要手工维护的地方比较多,比如:应用发布、开源产品搭建接入、云服务集成、集群维护等基本都是单点管理、手工操作。老系统交付过程中和转维后痛点有:
敏捷协同、DevOps等的成熟度低:过去项目迭代缺少全生命周期管控,对问题和任务进度的跟进主要靠线下沟通、缺少在线化追踪工具;DevOps 流程缺少自动化的工具支撑,如业务应用的发布上线,基本都是人肉发布,发布耗时长、流程低效、且容易产生线上安全故障。
应用上线部署繁琐: 上线需进行资源评估、应用服务器购买、安装配套软件初始化等操作流程较长;此外还需要搭配集群监控、发布&调度脚本服务治理、配置管理、日志备份等能力,都需要单独部署配套组件或系统。
自行实施容器化存在上手成本:开发对 K8s 等容器管理平台底层细节不熟悉、相对比较黑盒,出现问题排查进度较慢。
弹性伸缩不方便:业务侧有一定的峰谷,而在低谷期资源利用率很低;扩容需要重新走一套上线流程、且扩容后不容易下机器; 后续中台上线之后、预计会拆出更多的微服务应用、但这些应用因承接的业务场景不同流量不均匀,需要有更灵活的弹性策略。
后期运维成本高:不单需要维护应用本身、还需要维护整套基础设施及对应的配套系统;需要投入较多的额外人力
技术选型&对比:
基于以上痛点以及其他中台项目的实施经验,项目组在渠道中台项目前期做技术选型、架构设计时,一开始就否决了在 ECS 或 K8s 上直接部署应用的方案,希望有一个省事的“容器托管平台”。尽量减少运维成本、屏蔽底层细节,对开发上手友好、且能较大化提高部署发布效率,具体来说,主要希望达到以下几个目标:
- 希望有统一的管理平台进行在线化交付,全生命周期管控,以此来提高项目实施效率,该平台需具备敏捷协同、DevOps、质量保障等能力,尤其是具备CI/CD流水线自动化部署至选型的容器托管平台的能力,用于保障项目交付质量、提升项目交付效率、同时降低交付成本。
- 项目采用基于Spring Cloud的微服务架构、需要容器平台能无缝兼容
- 希望平台能屏蔽底层ECS和K8s的运维工作,开发大部分工作可以在控制台完成,不需要投太多精力在运维上面,可以专注在业务功能开发上
- 有一定的弹性伸缩能力、扩缩容比较方便、能够定制性的做一些资源优化
- 微服务应用的配套设施要完备:如灰度发布、流量控制、远程调式、监控等等,能够方便的集成
基于以上的一些诉求,我们推荐了基于 SAE(Serverless 应用引擎)的无服务器化容器平台方案、并做了一个两者的对比(如下表格):
ECS或K8s直接部署 |
使用SAE后 |
|
应用服务器购置 |
单独选配ECS、需要一堆规格选择、网络&操作系统选择&配置、监控组件安装等 |
无需单独购买ECS等IaaS层设施;直接选定CPU&内存规格及一些简单的网络配置即可 |
应用创建&部署 |
需做集群规划、应用初始化、编写应用部署脚本、灰度发布脚本等工作;镜像需要登录服务器直接操作 |
打包镜像或上传JAR包WAR包可直接在控制台部署、集成灰度发布能力;无需编写脚本或登录服务器 |
弹性伸缩 |
服务器购置、创建应用&部署等流程需要重新走一遍;机器加入集群或者剔除集群都需要运维操作;效率不高,无法应对突发流量的弹性扩容需求,只能提前准备;资源利用率不高 |
可实现快速弹性伸缩能力、扩缩容可在控制台直接操作生效;同时支持按照多维度策略的自动扩缩容能力、能够应对突发流量的弹性需求;扩缩容时可随意调整所需的CPU&内容资源,实现精细化控制、资源利用率高 |
无损上下线 |
需要额外集成、自己写相关脚本 |
控制台可集成 |
限流降级 |
需自己搭建开源工具或购买云服务自行接入 |
可通过集成AHAS在控制台直接操作、但需额外购买AHAS服务 |
监控 |
自行搭建监控组件&插件、单独运维 |
已集成基础监控和应用监控能力 |
配置中心管理 |
基于开源自建或购买云服务自行做集成 |
已集成Nacos注册中心、同时做了一层封装方便使用 |
集群后期运维 |
使用ECS或K8s部署、需要专人做集群运维、如操作系统升级、容器管理、网络维护、服务器更换等一系列操作 |
基本免运维、无需专门配运维可由开发在控制台直接操作 |
项目交付进展
项目在实施过程中深度使用了阿里云飞天技术服务平台——大禹进行在线化交付,通过平台进行统一的管控和赋能。
目前SKG渠道中台已上线包括微服务网关、微服务中心、前台 Portal、终端小程序、前端Node 应用等前中台所属 20 多个应用全部部署在 SAE 上;上线过程不需要花太多额外的时间做系统改造或适配,只需要在控制台做一些必要的配置即可,且上线后平台运行平稳。
渠道中台业务系统的研发态和运行态大图如下所示:
SKG渠道中台研发态&运行态大图
项目交付过程中的直观感受:
- CI/CD 自动化部署至 SAE:通过大禹提供的 CI/CD 流水线能力将业务应用自动化部署至 SAE,彻底替换原来的人工部署、人肉运维的低效方式,在提升应用部署效率的同时,也有效降低了应用发布变更的风险,实现了可控部署、安全生产的效果。
- 免运维&聚焦业务:以往类似规模的集群和应用数、至少需要配置 2 个专门的运维;使用 SAE 后基本免运维、省去专门运维投入;一些 SAE 控制台配置操作基本由开发兼职即可;以往维护应用集群、经常需要排查 K8s 集群和 ECS 底层的一些问题;使用 SAE 这块基本不用关注
- 良好兼容各类微服务框架:对基于 Springboot、Spring Cloud、Dubbo 等微服务框架开发的应用兼容较好、同时很方便的集成了 ACM、ARMS 等云产品;屏蔽了部分底层细节,可以做到一键低配置部署
- 弹性伸缩、快速扩缩容:弹性策略灵活、在做资源优化的时候较为方便调整
项目交付效果
SAE指标
全部 20+应用初始化配置-创建-部署到 SAE 上只需要 2-3个小时;资源成本比单独购买机器节省 30% 以上;由于 SAE 支持 0.5core 的规格,开发测试环境资源开销得以降低 50% 以上;扩容效率则从按天计提高到分钟级。
大禹指标
通过大禹平台共计交付了近20+应用,提交定开代码超过180万+行,流水线自动化发布应用超过3000次,平均发布时间在100S内;CI/CD自动化部署效率提升300%,零发布故障
产品提升建议
任何云产品都不可能 100% 满足用户的所有诉求、项目组在使用大禹 & SAE 的过程中、也发现了一些可以改进和提升的点:
- 平台开放能力:大禹平台提供更开放的能力,提供更多 OpenAPI 供用户同步项目交付过程中产生的数据,如需求、任务、缺陷、人天工时、文档等数据。
- 微服务治理:支持基于 Feign、Dubbo、Hsf 等框架微服务接口的在线调试,服务 Mock,以消费者视角查看服务等能力
- 监控:目前 SAE 的监控都是单应用的,但从用户视角来说、由于中台往往会包含较多拆分很细的微服务应用、希望有一个全局视角的运维监控视图;方便用户查看集群整体运行情况
- 同 SLB 集成优化:当 SLB 被删除或失效后、在SAE应用首页仍会显示、并且还可以挂载端口(有可能挂载问题已修复、但肯定还可以显示),需要手动删除
- 支持一定的动态热部署能力,进一步提高开发部署迭代效率
- 对 NAS 存储的集成优化:支持在镜像中指定账号登录访问 NAS(目前会报错)
数字化是企业提升效能和创新的舞台和重大机遇,相信 SKG 将在渠道中台的赋能下,依托大禹 & SAE 等 PaaS 层基础设施,通过领先的数字化云化解决方案实现价值升级,开拓更大的市场!
SKG 简介
SKG 产品设计不仅获得国家级、省级设计奖项,并且屡次斩获德国红点设计(Red Dot)奖、汉诺威工业(iF)设计奖等众多国际大奖。并且,SKG 通过持续的研发投入构筑了核心技术护城河,并成功将其转化为知识产权,已拥有全球 1000+项专利,2021年研发投入占营业收入比重超 7%,持续高强度的研发投入为公司业务可持续发展夯实根基并构建核心竞争优势。
欧睿咨询按 2021 年 B2C 渠道零售额计,SKG 品牌在智能可穿戴颈椎按摩仪销售额全国第一,在行业中树立了良好的品牌形象及较高的品牌认可度。SKG 牵头起草了《家用和类似用途低频按摩仪》行业标准,为行业的健康发展贡献坚实力量。