微服务应用现代化交付与管理一体化实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 微服务应用现代化交付与管理 一体化实践 阿里云/曾庆国
2.
3. 个人简介 曾庆国(悦达),KubeVela 社区 Maintainer。阿 里云技术专家。长期从事应用持续交付、可观测、 基础设施管理等领域,积累大量基于 Kubernetes 的云原生应用管理平台建设经验。曾帮助多个行业 头部用户完成云原生 DevOps 转型。 个人微信 (加入社区群)
4. 目录 • 微服务交付和管理的技术背景和挑战; • 社区及阿里云的实践方案; • 社区下一步计划;
5. 什么是服务? CDN SLB 第三方 API 基础设施服务(基础团队/云厂商) Ingress Gateway User Service Cache Server Order Service Mysql Payment Service MQ OSS 传统意义的微服务(业务团队) 中间件服务(中间件团队/云厂商) 常见的基础互联网应用的基础架构 业务应用、中间件、基础设施和第三方应用都是服务 统一交付、统一管理、统一衡量成本
6. 微服务管理的挑战 服务数量的爆炸性增长带来管理难题 敏捷开发 业务快速 增长 需求快速 变化 技术不断 迭代 新业务不 断尝试 服务化 多样化的服务不断产生 1. 传统交互式流水线维护的困难; 流水线 需求/环境差异 目标状态 不确定 交互式 决策压力/谁是决策人 2. 多样性配置变更管理的困难; 环境变量 进程参数 配置中心 动态配置匹配 多样化 工作负载 3. 异构的基础设施实施的困难; CPU/Memory/GPU/Disk 资源需求差异 Cache/DB/MQ/Gateway 中间件需求差异 4. 成本难以衡量和控制; 服务资源/管理成本 无法预估 全链路成本 很难监测 闲置资源能否 及时回收 多地域实施的 巨大环境差异
7. 微服务管理的挑战 运维(平台)团队在云原生转型中负重前行 cat access.log | grep "/gateway/api" | grep "\" 500" | rev | cut –d " " –f4 | rev | sort | uniq 自研发布平台 搭建自动化流水线:业务团队难以接手 容器化&平台化:肩负平台研发和业务运维重任 面向系统的命令编排:重复且大量的工作 网关 网关 API 网关 服务 专注于标准化 平台能力 服务 服务 把服务标准化管理权力 转移给服务创造者 服务 服务 服务 服务 任务 任务 任务 任务 任务 数据库 平台开发者 服务 服务 服务 异步任务 大数据平台 业务开发者
8. 企业服务发布平台的发展 宝 塔 灵活组合的云原生能力 CI/CD 流水线 & IaaS 容器云 & 传统 PaaS 云原生化 面向开发者的一站式平台 平台工程化 PaaS 封装: 特性: a) a) 业务开发者体验优先,提供标准化服务管理能力; 易于使用,但管控能力的扩充主要依靠平台本身升级实现; b) 封闭、锁定、黑盒化的 API; b) 流程标准化,向业界统一发展; c) 一旦平台层人力投入不足便跟不上研发诉求; c) 低成本跟进云原生能力,新型应用交付技术; 容器 PaaS: a) b) 复杂资源概念暴露给业务开发者,复杂,学习成本高; 开发者难以从众多资源中定位业务故障; d) 研发、发布、管理一站式统一,数据驱动,相互支撑;
9. 平台工程 Gartner “Top Strategic Technology Trends 2023”” 企业平台一直存在, 今天为啥再提 “平台工程”?  业务微服务化、云原生化发展到今天,需求更加复杂;  充分重视业务开发者的诉求:Serverless体验;  技术生态在持续演进,对平台的建设提出新要求:标准、统一;
10. KubeVela: 企业实践平台工程的好帮手 KubeVela 里程碑 •2019 年 阿里联合微软发布 OAM 应用规范; •2020 年 KubeVela 作为 OAM 的官方实现发布; •2021.3 KubeVela 发布 v1.0.0 GA 版本; •2021.6 KubeVela 正式捐赠成为 CNCF 项目; •2021.6 OAM 规范成为 信通院《开放应用模型》核心行业标准; •2022 年 以招行、百度、钉钉、京东云、理想汽车等行业标杆用户出现并向社区分享了其实践案例; •2023.2 KubeVela 正式成为 CNCF Incubating 项目; • 截止至 2023.2 累计: • 200+ 社区企业用户,5+ 生态合作伙伴,220+ 位贡献者来自 60+ 组织,Maintainer 10+ 人, 涵盖云服务PaaS、AI、游戏、金融支付、电商、物联网、音视频等众多场景和领域 • 镜像下载250w+, Star 4.8k+,Issue/PR 5.5K+, 社区成员 4400+ 面向混合环境的应用交付控制平面 标准应用模型 OAM Application Engine Platform Framework  支撑“开发者平台”建设;  以应用为中心标准化衔接生态能力;  对接差异化基础设施; 项目地址:https://github.com/kubevela/kubevela
11. 统一应用模型-OAM Kubernetes 提出了面向资源的声明式终态描述模型 Component 工作负载抽象,可根据企业业务团队实际情况进 行设计,暴露必要的参数给开发者。可覆盖业 务、中间件、虚拟机应用、外部API 服务等; Trait 组件运维能力抽象,例如设置副本数、HPA、注 册 Metric 端点、日志分析、网关规则等 抽象 渲染 Policy 应用交付策略抽象,用于定义应用部署区域,差 异化,回收策略,状态维持策略等。 Workflow 内置应用交付工作流,定义应用交付的具体流程 和终态。实现声明式的灰度发布、分批发布等。
12. 应用模型OAM 粘合云原生生态能力 角色/责任分离
13. 声明式工作流技术 面向终态为啥还是需要工作流? 应用交付声明式工作流技术的要点?  与传统 CI 流水线不同,需要更轻量级的(线程级)运行模 式; 应用完整描述  能够低成本的方式扩展,匹配各种流程场景需求; 应用需求描述 到达终态过程描述  与应用声明式需要天然的契合,围绕着 Kubernetes 生态;  统一控制面,对目标环境无依赖(Serverless);  能够以并行、串行综合的方式执行; 多集群/多环境部署 高级发布策略 资源回收 碎片化的复杂应用交付场景 安全控制
14. 声明式工作流技术 丰富的能力和 强大的流程控制 https://github.com/kubevela/workflow Declined Or Timeout 数据传递 Image ID Output Input Step A 步骤组 Step G 生产环境 A 部署 Timeout: 24h Step B 构建镜像 可扩展, 可编程,可复用 参数校验和 安全执行 高效且 轻量 Step C 推送镜像 镜像扫描 Step H Step F Step E 等待条件满足 开发环境部署 If: C.failed Metrics Check 生产环境 B 部署 If: Always Step J 消息通知 Step I 生产环境 C 部署 Step D 镜像清理 Workflow Step Definition (IaC 抽象) 注册内置/自定义函数 内置函数 自定义函数 HTTP 请求,多集群资源管理,流程控制等… CI 集成 ACR 扫描插件 多环境部署 Cluster Gateway 多集群 Cloud Providers IOT / Edge 可观测能力 … HTTP 请求
15. 声明式工作流技术 Provider 调用 Provider 实现 流程控制 Workflow Spec(YAML) Workflow Step Definition (CUE)
16. 应用场景-自动化灰度发布 获取系统 Metric 服务端点信息 下发新工作负载, 生成 20% 副本和承接 20% 流量 基于 Metric 指标变化决策是否继续 方案优势  灵活对接社区原子能力: 应用观测、工作负载控制、流量调节;  灵活对接企业已有平台:通知、审批;  工作流与应用工作负载协同,负载类型灵活定义;  不再是固定的模式,应对需求变化; 自动检查失败,通知人工确认 全量发布完成
17. 基础设施对接 Kubernetes 多集群技术与声明式使用 KubeVela Controller KubeVela API CLI 原生支持多集群代理访问 技术侧: Kubernetes APIServer  大多数场景采用直连模式,不用 Cluster Gateway X509 Certificate/ ServiceAccount 安装 Agent;  无状态网关模式,可水平伸缩; User/Group Mapping OCM Proxy Tunnel  多种用户鉴权方式,托管/透传 用户侧:  集群灵活编排;  应用和资源灵活匹配; On-premise Cloud Edge  工作流串行/并行交付;  屏蔽了底层复杂性;
18. 基础设施对接 Kubernetes 资源风格衔接其他基础设施 Kubernetes API 请求 Kubernetes APIServer Aggregated API 请求转发 MTLS 身份互验 注册 鉴权 KubeVela Prism (Dynamic API) APIService Dynamic Server Package Controller APIService o11y.prism.oam.dev/v1alpha1 vector.prism.oam.dev/v1alpha1 自动创建 Package GrafanaDashboard (CUE Template) Package NginxConfig (CUE Template) 集成  无需开发 CRD 控制器,转化传统服务为面向资源终态描述
19. 可观测流水线全栈声明式 Agent Gateway Store & Analyze Report Logs/Metrics/Traces ETL Tools Data Warehouse Dashboard Collect Transform Aggregation Rewrite 数据就近处理 异构数据处理  数据发现;  过滤、格式化;  转化:Log2Metric, Recording Rule  数据安全  数据分类,转存;  数据合并、重写; Logs Rule Store Analyze 存储&查询  匹配合适的存储服务类似; Metric Rule Tracing Rule Dashboard/Alert Rule Dynamic API Observability Traits Application View Alert 数据利用  进一步数据聚合;  综合可视化大盘;  数据报警规则;
20. 高扩展性平台开发框架 Addon OAM API Component Definition RuntimeApp 工作负载资源自定义渲染,也适用于 其他资源。 Views Trait Definition 生成旁路资源,或对工作负载资源做修正。 Policy Definition 主要影响控制面的工作流程, 或根据环境修正资源。 Workflow Step Definition 定义步骤执行逻辑,处理数据输入/输出。 Definitions UI Components 动态加载 Vela Core VelaUX 社区已发布的开箱即用的生态扩展
21. SAE:基于 KubeVela 的阿里云 Serverless 应用管理平台 面向开发者友好的一站式应用托管平台 微服务应用 Web 应用 容器工作负载 批任务处理 镜像加速 低门槛、零改造 GB 级镜像 秒级启动 Spring 应用零代码改造迁移 微服务治理 优雅上线/下线+全链路灰度 JVM 极致优化 定时任务 企业级特性 核心优势 使用场景 大数据 ETL 启动加速40%,线程占用省 20% 微服务架构转型 安全稳定 一键启停、降本增效 核心业务打磨、合规安全可观 测 低门槛容器化转型 智能弹性 秒级弹性扩缩、100% 资源利用 轻松应对流量洪峰脉冲 Serverless 应用引擎 SAE 应用交付 控制面 工作负载定义 内置运维能力 多 Region 交付 应用观测 平台提供的全托管 Kubernetes 集群(多 Region) Serverless 基础设施 应用交付工作流 神龙裸金属服务器 盘古 2.0 存储 洛神网络 袋鼠安全容器
22. 钉钉混合云交付平台实践 专属钉混合部署云业务(应用市场) 钉钉 交付平台 衔 接 行 业 应 用 上 云 云控制面 直播加速 视频 SIP 高校数智课堂 服务 网络代理 存储网关 数据库 网关 零信任网关 ISV 厂商应用 OAM 应用规范 VelaUX (Framework) VelaUX API (Framework) 应用观测 应用交付/管理 平台管理 通用 UI 模块 多租/项目管理 流水线 钉钉 自研 云基础设施 专属钉 服务交付流程 API 代理/鉴 权 钉钉 自研 交付 派单 单点 认证 边缘节点 管理 Kubernetes API Vela Core Terraform Controller RDS VPC Cluster Gateway ACK ACK Edge FluxCD ( 及 addon 仓库其他插件 ) 客户边缘节点
23. KubeVela 社区下一步计划 如何帮助更多企业解决平台研发难题? 项目建设  围绕应用交付提供平台研发框架和对应开发者工 具,支撑企业升级改造已有平台或快速研发新平 台;  进一步提升核心应用引擎的性能、稳定性和体 验;基于大规模应用交付场景优化;  力争 2 年内成为 CNCF 毕业项目; 项目地址: https://github.com/kubevela/kubevela 社区生态  推动 OAM 行业规范在 钉钉(企业办公)、招行(金融)、 京东云(云厂商)等行业充分落地;  带动社区打造更多的开箱即用的标准平台插件能力,企业可 以按需组装。
24.

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-24 21:46
浙ICP备14020137号-1 $访客地图$