云原生应用管理在阿里云的实践和挑战

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 云原生应用管理在阿里 云的实践和挑战 阿里巴巴高级技术专家-胡志广
2.
3. 自我介绍 胡志广(花名:独鳌) 阿里巴巴云原生 – 高级技术专家 负责工作: • 曾担任云原生PaaS Core 核心架构师,参与早期KubeVela孵化设计 • 负责阿里云单机方向,完美保障了2021双十一 • 负责阿里云云原生应用管理架构 曾就职百度和京东,曾在百度负责HHVM、PaaS、机器管理,支持春晚红包
4. 大纲 • 云原生应用管理的问题和挑战 • 阿里云云原生如何解决应用管理问题 • 阿里云云原生应用管理实践
5. 云原生应用管理的问题和挑战
6. 云原生应用管理4大核心问题 应用配置 应用资源 应用发布 应用隔离
7. 复杂的应用配置差异性问题 2.配置内容太多 1.⻆色关注点不同 3.集群、地域、环境差异性 集群 研发 我该写哪些? 运维 ? 我该怎么写? Cluser1: replica: 2 .... Cluser2: replica: 4 .... 地域 beijing: replica: 2 .... hangzhou: replica: 4 .... 环境 production: cpu: 4 mem: 16g .... testing: cpu:2 mem:1g .... 配置数量=N*N*N*..
8. 云资源使用与应用生命周期不一致 开始 云资源购买 核心问题: • 云资源购买和使用和应用生命周期的割裂 • 应用管理和使用云资源复杂 • 关注点问题,谁管理云资源,谁管理应用? 应用部署 应用绑定 云账号 annotatioin 配置 云账号、网络 网络 SLB RDS ... Ingress 配置SLB env配置rds ...
9. 应用复杂的发布场景 1.原生支持扩展性差 • Flagger 部分workload 支持 • Argo-rollout 无法直接使用原生 3.资源消耗大 2.原生侵入性高 修改用户定义的deployment name和pod label Deployment workload Workload 1 更新用户定义内容 Pod Deployment Workload Argo-rollout 自实现Rollout 进行发布, StatefulSet Workload 2 但不支持原生workload 3 Rollout Operator 50% V1 -50% V1 Deployment2 Workload Deployment1 Workload Workload V1 Deployment1 Workload Deployment1 Workload 原生 ..... Workload 双Deployment 消耗资源 Deployment2 Workload 50% V2 0% V1 100% V2
10. 应用各种隔离问题 • • Application-A Operator-A 多应用operator 共用同一Master 冲突问题 Pod内存储、网络、资源等更好隔离 resource Pod Pod Pod Application-B Operator-B Kubernates resource Pod Pod Pod Application-C Operator-C resource Pod Pod Pod
11. 阿里云云原生如何解决应用管理的问题
12. 应用配置和模型-单集群 K8S:原生管理 OAM:关注点分离通用模型 Application Deployment Component StatefulSet Service Ingress PaaS:用户态傻瓜化使用 AppUserDefinition Traits 基础项 Deployment Service Strategy cpu mem disk StatefulSet Ingress istio env replica ... Monitor ... attach .... 高级项(可选) .... 安全 运行时 容器 高级运维 ... 运维关注 研发关注 配置多,生命周期不一致 网络 基于OAM 开源框架解耦研发和运维配置 抽象用户定义模板,尽量降低参数透出 Traits Component Web型 Trait1 attach 计算型 基础项->必选项 Trait2 Trait3 Trait4 存储型 ... 高级项->默认值
13. 应用配置和模型-单集群-OAM Component ApplicationConfiguration
14. 应用配置和模型-多集群、多地域、多环境 代码式解决差异性问题 经验点: • • • User Layer OAM 开源模型解决关注点分离问题 差异性配置管理解决高速发展企业的 多集群、地域、环境等问题 用户侧暴露参数越少管理越简单 Cluster1 Cluster2 Application Definition (Common)90% override 代码式 Application Definition (Different)10% Values Values Template 声明式 cluser Conditional region env Cluster3 AppPublishVersion 差异项:10% (Application Definition Different) Translation Service Layer 相同项:90% (Application Definition Common) Application(OAM) Compoent s Traits Cluster1 Application(OAM) Compoent s Traits Cluster2 Application(OAM) Compoent s Kubernetes Runtime Layer Traits Cluster3
15. 应用多环境和云资源场景 • • • 一套定义多处环境运行 云资源和应用生命周期一致 Trait 可插拔和动态兼容多环境 Developer 公有云 SRE ApplicationDefinition CloudOpenApi SLB Monitor VPC Rds Log ... CloudResourceManager 生产 绑定 专有云 CloudOpenApi Monitor OAM VPC Rds Traits Log ... 专有云 公有云 Kubernetes SLB OAM Traits adapter(公有云) Kubernetes adapter(专有云) 消费
16. OpenKruise 处理复杂的应用发布问题 • 兼容扩展性好,支持各种workload • 非浸入性实现,保持原生workload的纯净性 • 渐进式滚动升级,不浪费资源 钉钉社区交流
17. Kubernetes 多租架构解决安全隔离问题 控制面多租: • • 租户独享Kubernetes Master 资源节约(Kubernetes 完全 部署4件套,Tenant Master 只部署api server) 数据面多租: • 网络隔离:租户独立VPC • 计算隔离:安全容器隔离 • 存储隔离:云盘
18. 阿里云云原生应用管理平台架构 应用管理平台 外部依赖 应用产品层 Aone CI UI层 应用管理 应用部署 应用弹性 应用环境管理 应用集群管理 应用诊断 产品管理 云资源管理 基础设施管理 配置中心 可观测 … 流水线 用户管理 逻辑层 权限管理 应用逻辑层 账号平台 变更系统 阿里云服务 镜像服务 应用服务层 API Server 应用扩展服务 应用元数据 云资源管理 应用诊断 应用环境管理 应用集群管理 基础设施管理 配置中心 变更管理 可观测 运维能力 数据转换 应用部署 可观测服务 应用弹性 应用生命周期 应用回滚 应用暂停 … 应用内核层 Kubernetes Kubernetes-VC Default-Traits Cloud-Traits Default-Traits Cloud-Traits OAM Kruise-manager OAM Kruise-manager Kruise-daemonset … Kubernetes-Super Kruise-manager Kruise-daemonset …
19. 阿里云云原生应用管理实践
20. 应用管理全生命周期
21. 应用管理中IaC和产品化的取舍 IaC+GitOps 优势 • • • 灵活 版本和审计 集成部署 劣势 • • IaC学习成本高 答疑成本高 • • 场景 标准化的IaC非自定义 应用项差异性高 IaC & GitOps Kubernetes pipline • 90% 普通应用通过产品化接入 • 10% 复杂应用采用IaC 接入 产品化界面 优势 • • 易使用 规范化 劣势 • • 灵活度低 研发成本高 场景 • • 公司应用项标准程度高 研发基础薄弱 研发 运维
22. 应用管理效率管理 应用效率 弹性 资源效率 客户(易用) 人效 发布 流式非阻塞发布和SLO监控双重优化 平台(少答疑) 应用可观测建设、诊断能力建设,降低平台人员投入
23. 经验和小结 应用发布 应用配置 • • • • Flagger、Argo-rollout、OpenKruise 适合最重要 • OpenKruise Rollout 扩展性好、非侵入性、渐进式升级 OAM 解决关注点分离 用户侧尽量少暴露参数 差异性配置解决多集群、环境、地域问题 应用资源和多环境 • 一套定义多处运行 • 应用和云资源生命周期一致 应用隔离 • Virtual Cluster 架构解决控制面operator冲突和资源问题 应用实践 • • • • IaC + GitOps :标准化IaC语法和差异性高的应用 产品化:适用于规范化企业进行统一标准接入 产品化+IaC:90% 接入产品化,10%复杂应用接入IaC 应用效率:资源效率+人效
24.
25.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 22:45
浙ICP备14020137号-1 $Map of visitor$