1、KubeMeet 开发者沙龙云原生应用管理专场2021/04/07 杭州阿里巴巴基于KubeVela的新一代应用交付管理系统实践主讲人姓名:王仁达阿里云-云原生应用平台2021/04/17目录云原生应用交付面临的问题与挑战基于KubeVela的标准化应用交付核心原理基于KubeVela的应用管理实践01云原生应用交付云原生应用交付面临的问题与挑战面临的问题与挑战云原生应用交付领域痛点云原生应用交付面临挑战多样化的交付环境 Workload 多样:对接不用集群环境、灰度发布、流量管理方案 部署环境多样:公共云、专有云、私有化部署,对接不同APM方案 云资源使用多样:对接不同Provider、云资
2、源管理方案,对接云产品差异化配置应用开发者 门槛高,学习各种K8s使用平台开发者 开发成本高,写各种Controller云原生应用交付领域痛点基于K8s资源组合 复杂、难懂、门槛高 能力局限、不同场景各不相同 不统一,每个模式需要重新编写发布对接Kubernetes/DeploymentKubernetes/StatefulSet云原生应用交付领域痛点K8s-sigs Application 只描述应用模型元数据,研发、运维无从入手 无人维护、缺乏活跃度 信息不足以对接发布kubernetes-sigs/application云原生应用交付领域痛点Helm Chart 黑盒,不明确内部有哪些资
3、源 缺失发布能力,helm upgrade没有灰度能力 无法使用/对接云资源云原生应用交付领域痛点基于CRD自定义实现 需要大量K8s经验 扩展性、灵活性、可移植性不足 增加用户心智某游戏公司自定义某游戏公司自定义workloadPinterest02基于基于KubeVelaKubeVela的的标准化应用交付系统核心原理标准化应用交付系统核心原理What is KubeVela?标准化的云原生应用平台构建引擎 基于 Kubernetes 和 OAM 模型构建 纯 Golang 编写 社区发起,社区构建 2021.03 KubeVela 1.0 发布 1.7k star,60+contribut
4、orsKubeVela 1.0 主要能力丰富的抽象模板能力(组合、转换、拆分、状态回流、数据传递等)渐进式发布能力应用云资源创建和绑定多集群、多环境的应用部署使用 Helm chart 对接 KubeVelaTraits 生态KubeCon NA发布发布KubeVela的Application对象 完整的应用描述文件(以应用为中心)灵活的“Schema”(能力模板自由组合)GitOps友好(放置于应用代码库中)无需学习K8s细节(完整的用户侧抽象)可适配任意K8s集群与部署环境(环境无关)镜像与启动参数多组件弹性扩缩组件类型可灵活扩展的其他能力KubeVela 的能力模板 组件类型抽象封装方式
5、K8s 对象模板CUE 模板工作负载类型Helm chart 封装其他封装使用方式(jsonschema)KubeVela 的能力模板 运维能力抽象封装方式抽象封装方式可作用的工作负载可作用的工作负载K8s对象模板对象模板CUE模板模板Helm chart封封装装其他封装其他封装Trait自身自身CRD对象对象使用方式使用方式(jsonschema)示例:上线新功能 metrics平台研发团队:开发了一个新 Operator 叫做 metrics(监控)编写一个 K8s 能力描述文件 metrics.yaml平台管理员:执行$kubectl apply-f metrics.yaml用户:立刻就
6、可以在 Application 中定义一个新的字段 metrics无需系统更新或重启Platform Builder 模型层能力注册查看“能力模板”的用法1.能力模板注册时,KubeVela 控制器会自动生成 OpenAPI v3 的 json schema 文件和文档。2.通过 vela 的命令行工具可以查看。3.用户也可以自己基于 json schema 去渲染集成进自己的前端KubeVela 为什么能对不同 Workload 做统一发布?工作负载类型工作负载类型 统一统一 类型注册和识别类型注册和识别健康检查健康检查 统一统一 状态检查和回流状态检查和回流发布模式发布模式 统一统一 发布