参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

阅读数:4458 2019 年 8 月 17 日 00:00

参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

ArchSummit 深圳 2019 大会上,孙健波讲师做了《参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训》主题演讲,主要内容如下。

演讲简介

问题背景:阿里巴巴容器平台团队担负着阿里内部各种应用的云原生化工作,同时也需要解决一系列云上配置、部署、扩缩容、安全等复杂问题。在这个规模化的场景中,面对成千上万个散落在不同团队、不同开发机上的 YAML 文件,我们平常所熟知的 Kubernetes 声明式 API 和声明式应用管理机制是否依然适用?像 Helm 这样的项目是否能帮助我们解决大量应用的配置与管理问题?

解决方案:阿里巴巴为了能够解决规模化场景中 Kubernetes 应用管理与维护的复杂性问题,围绕着 Kubernetes API 构建了一套对应用进行标准化描述、定制、自动化管理的完整的云原生应用管理技术体系。这个方案的特点包括:

  1. 原生围绕 Kubernetes 的声明式 API 构建,不做 PaaS,不封装 API;
  2. 应用具备互联网场景下的、一定程度的自运维与自愈能力;
  3. 方便用户进行 PATCH 化的应用定制;
  4. 不同应用要有统一的、标准化的定义方式;
  5. 整套流程能够无缝与周边生态能力,包括安全、监控、CI/CD、 GitOps 等。

方案介绍:利用 Helm Charts 进行标准化的应用描述, 将海量 YAML 文件托管于云原生应用中心(App Hub);使用 Overlay 的方式进行 YAML 文件 PATCH 化定制,实现 YAML 文件复用、Rebase 与变更追踪;使用 Kubernetes 自动化工具 Kruise 代替社区 Deployment 进行阿里内部的应用管理,插件化的实现“原地升级”等互联网场景中的重要需求。

实施后效果说明:阿里规模化场景下的应用管理紧紧有条,大幅提高了开发效率和软件质量。

演讲提纲

  1. Kubernetes 声明式 API 与声明式应用管理机制解读
  2. 为什么需要应用标准?如何在不做 PaaS、不封装 API 的前提下实现这个标准?
  3. 应用在互联网场景下的自运维与自愈能力如何实现?比如:原地升级?
  4. 什么是 Kubernetes 应用管理的参数化陷阱与 DSL 缺陷?为什么我们要让用户进行 PATCH 化应用定制?
  5. 与周边系统如 CI/CD、 GitOps 等集成举例。

前沿亮点

  1. 阿里巴巴在规模化场景下实践云原生应用的一些经验和教训;
  2. 如何避开常见 Kubernetes 应用管理方式带来的参数化陷阱与 DSL 缺陷;
  3. Kubernetes 声明式 API 与声明式应用管理的设计内涵。

讲师介绍

孙健波

阿里巴巴集团 技术专家

Kubernetes 项目社区成员。2015 年参与编写《Docker 容器与容器云》技术书籍。曾任职于七牛,参与过时序数据库、流式计算、日志平台等项目相关应用上云过程。

参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

参数化陷阱与 DSL 缺陷:K8s 声明式应用管理的实践与教训

完整演讲 PPT 下载链接

https://archsummit.infoq.cn/2019/shenzhen/schedule

评论

发布