背景
什么是TCE?
TCE(Tencent Cloud Enterprise),腾讯云企业版,基于腾讯公有云成熟产品体系推出的企业级云平台,为企业提供自主可控、弹性伸缩的全栈服务能力。
什么是TCE云管平台?
云管平台是TCE的门面,是客户使用TCE的界面,不可或缺。云管平台主要包括租户端(管理与审计)和运营端(平台运营、平台运维、平台管理),其中租户端为租户提供IaaS/PAAS/SAAS资源使用/监控等能力,运营端为运营管理员提供完整的管理能力,包括账号/鉴权/流程/审计/计费/报表等,以及IaaS垂直产品运维/专有云底座运维等。
运营端:
租户端:
技术架构
当前TCE整体技术架构如下图,其中云管平台紧密连接底座、IAAS/PAAS产品与各类用户,功能上覆盖基础平台(TCenter)、运营平台(BSP/BMPPro)及运维平台(OSP/OSPPro),基础平台能力主要覆盖账号、权限、网关、密钥等。
问题与挑战
- 运营端平台能力滞后于租户端,两端体验不同
- 当前项目驱动两端迭代,逻辑不统一、人力工作量double ,不利于平台持续演进
- 垂直FT接入两端流程不一致,低效且浪费人力
客户诉求两端基础平台产品能力与体验保持一致?
目标
统一两端基础平台产品能力与架构
两端现状对比
运营端基础平台为TCE侧从0到1迭代,租户端基础平台来自公有云自研,运营端平台产品能力、安全合规能力滞后于租户端。
综合考虑,重点补齐运营端缺失的特性,同时完善两端安全合规及定制化能力。
整体思路
如何快速对齐两端能力?
首先考虑两端能否各自独立迭代,长期来看不可持续;然后考虑两端能否选择性重写服务,这要求非常熟悉两端且需考虑各种现网兼容,成本其实也不低;最后考虑能否用租户端代码同时服务两端,需要注意两端实际功能场景不完全一致,需要各自定制开发维护特性;某些定制化组件如文档、消息考虑彻底重构。
分支策略
分支现状
- 运营端维护多个版本 for TCE运营端定制化需求开发
- 基于公有云拉出tce分支 for TCE租户端,公有云其他分支和tce分支独立迭代、必要时人工选择回合
两端不共用分支
大版本初期需从租户端最新tce分支拉新分支for运营端,大版本末期需要评估租户端改动是否能合入运营端
- 优点:运营端bugfix、定制需求无需同步到租户端
- 缺点:每个版本都需额外人力review并合入改动,始终由两拨人维护,导致分支灾难
两端共用分支
每个大版本,运营端总是与租户端共用TCE分支,改动需评估是否兼容两端,对定制化需求需加配置开关
- 优点:两端特性完全一致,无需额外人力定期review,人力备份,减轻运维负担
- 缺点:两端需感知对方通过配置开关引入的改动
综合对比考虑,最终选择两端共用分支,通过配置开关维护定制化特性。
大规模改动如何平滑升级至现网
挑战
- 现网生产环境其他产品组件强依赖平台产品,依赖关系复杂,故障影响范围广
- 平台侧待改动组件多
- 需跨部门团队协调公有云平台产品中心、平台产品质量中心、专有云产品中心以及其他周边依赖FT的产品、前后端、测试
应对策略
- 详尽梳理依赖关系,输出服务依赖、接口依赖
- 分析两端架构,输出架构对比图
- 考虑多地域升级场景,改造旧组件协议不变兼容周边调用,逐迭代推动周边组件切换依赖的服务
- 分析两端数据结构,整合账号、权限等元数据,输出可重入的数据迁移方案,写流量迁移到新服务,旧服务支持只读
- 按照组件依赖顺序,明确升级计划
收益分析
效果分析 | 之前 | 对齐后 | 效果 |
---|---|---|---|
产品能力 | 1、运营端缺角色,不支持多点登陆… 2、租户端不支持子账号配额,无菜单鉴权… | 1、运营端补齐缺失的平台产品能力 2、租户端完善了产品能力 | 1、拉齐了两端平台核心产品能力,部分改动回合租户端 2、垂直FT接入两端体验一致,接入耗时降低50% |
架构能力 | 运营端部分组件逻辑耦合 | 1、组件逻辑不再耦合 2、运营端控制台核心流量切换到新架构,改造旧架构逻辑兼容周边组件调用 | 1、对齐了两端组件架构 2、跨部门团队拉通产品、前后端、测试 |
客户价值 | 1、两端体验不一致 2、安全合规能力不完善 | 1、两端体验一致 | 1、增强安全合规能力 2、完成现网平滑升级 |
人力消耗 | 运营端4人,租户端3人 公有云平台产品中心支撑 | 两端人力互备,一端改动两端同时生效 | 1、两端总共需3~5人 2、研发与运维人力互备,共享共建 |
长期收益 | 项目驱动开发,无整体规划,无法持续演进迭代 | 有roadmap,考虑长期发展方向,平衡好迭代节奏 | 为后续逐步推动云原生、微服务化、性能优化及稳定性改造清理障碍 |
总结展望
本文针对客户侧和TCE云管平台内部演进诉求,回顾对比了TCE基础平台两端能力现状,确认使用租户端代码最终做到一份代码两端配置同时服务于两端,明确了整体演进迭代思路,确认了共用分支的策略,针对升级场景面临的挑战给出详细的应对策略,最后对比分析了改造前后的变化及收益。
当前基础平台大部分组件来自公有云,粒度拆分太细,导致平台服务调用链很长,排障困难,消耗大量物理资源,需要考虑专有云场景下是否有必要继续保持当前的拆分粒度,可以考虑进行适当的整合重构,增强云管平台的集成与被集成能力。