Kusion Watch:实时监控资源状态变更

2230d3d50d542547f1767b0ec98ae283.gif

KusionStack 是蚂蚁开源的云原生可编程技术栈!


文 | 袁昊(花名:浮鸢)

KusionStack 核心贡献者

蚂蚁 PaaS 核心团队高级研发工程师

一、KusionStack简介

KusionStack 是一个可编程、高灵活性的应用交付及运维技术栈,灵感源于融合(Fusion)一词,旨在帮助企业构建的应用运维配置管理平面及 DevOps 生态。基于 Platform as Code (平台服务即代码)理念,研发者可以快速收敛围绕应用运维生命周期的全量配置定义,面向混合技术体系及云环境,完成从应用运维研发到上线的端到端工作流程,真正做到一处编写,随处交付。

二、为何需要监控资源状态变更

在用户使用 kusion apply 命令创建、修改或者删除了资源后,只能得到操作成功或失败的及时反馈。而对于何时操作完成,却不得知。因此有了对实时监控资源状态变更的需求。kusion 的操作对象,从来都不是某个资源,或是某类资源,而是一个配置栈(Stack)。因此,对于 watch 能力,要求支持某个 Stack 中的全部资源。

9e0e4e195ee54a8b137efeb1c8ee62ce.png

Kusion 目前已经对接的 Runtime 有 Kubernetes 和 Terraform,对于 k8s 的资源,提供了 Watch 接口可以实时获取的资源变更;而对于 Terraform 生态,相关的并不存在所谓的 Live Manifest,Terraform 侧只是保存了操作执行成功后的资源清单,相当于是缓存。

三、设计目标和工作流

本次 Watch 特性虽然还处于开始阶段,目的在于快速打通 Watch 的工作流。而对 Runtime 的完整支持作为下个阶段的实现重心。以下列出了 开始 阶段的前提条件:

  • 仅支持 Kubernetes

  • 使用 Namespace、Deployment、Service 作为试点资源

目标明确后,我们看看整个工作流程:

73a9973e8dad687c17ba3ab92ba554d6.jpeg

大致对应以下五个步骤:

  1. 编译 Stack,获取资源列表

  2. 触发 Engine 接口,启动监听

  3. Engine 遍历资源列表,异步触发 Runtime Watch 接口

  4. Runtime 过滤资源相关 Event 对象,解析出字段变更信息,返回给 IaC Engine

  5. 以表格形式渲染实时刷新,直到资源全部 Ready

四、监控效果演示

虽然还是 Alpha 阶段,不过已经可以尝鲜了。使用方式也很简单,只需要在 kusion apply 命令后增加 --watch 参数。

以大库中的示例项目 base/examples/server/app_service 做演示:

1c8e52b0d9c7870fe23bb564df4c0c9f.gif

我们可以看到命令行输出以不同的颜色显示资源的不同状态,同时状态变化时将同步显示更新。下个阶段将继续完善对Runtime的完整支持。

五、了解更多

  • Kusion Github

    • https://github.com/KusionStack/kusion

  • KusionStack First Use Case: Code City

    • https://kusionstack.io/docs/user_docs/getting-started/usecase

  • KusionStack User Guides

    • https://kusionstack.io/docs/user_docs/guides/

  • KCL Quick Start

    • https://kusionstack.io/docs/user_docs/getting-started/kcl

  • Architecture & Concepts: Konfig Mono Repo

    • https://kusionstack.io/docs/user_docs/concepts/konfig

  • Architecture & Concepts: Kusion CLI

    • https://kusionstack.io/docs/user_docs/concepts/kusion

添加小助手进专属用户群

29bccefd730fbf33c7432bc4db0b0f0a.jpeg

8ba97553adfd358fbff4e04a5383f472.png

e17fb4a7545031ac5fe3c628c7051c21.png

595756afd8a99d41e39e5bf6da2f21b4.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值