Skip to content

docs: kubecon 2024 blog #453

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Aug 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions blog/2024-08-29-kubecon2024/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
slug: 2024-08-29-kubecon2024
title: KCL at KubeCon China 2024
authors:
name: KCL Team
title: KCL Team
tags: [KCL, Newsletter]
image: /img/biweekly-newsletter.png
---

# KCL at KubeCon China 2024

At KubeCon China 2024, held from August 21st to 23rd, a 3-day event in Hong Kong, KCL participated in the event and shared its efforts in simplifying Kubernetes manifests management.

## Lighting Talk: KCL: Simplifying Kubernetes Manifests Management

In this event, KCL introduced its efforts in simplifying Kubernetes manifests management, improving configuration management efficiency and stability through a Lighting Talk.

![kcllightingtalk](/img/blog/2024-08-29-kubecon2024/kcllightingtalk.png)

KCL is a domain-specific language (DSL) in IaC, mainly solving common issues such as **configuration scale explosion, high cognitive load, lack of effective dynamic configuration management, and configuration reliability assurance**, and can easily integrate with the community ecosystem.

For the effective reduction of configuration scale, KCL provides a **Schema to abstract common configuration structures**, and supports the distribution and reuse of configuration structures through package management mechanisms. Moreover, KCL can **merge the content of the same configuration in multiple files** to shield developers from unnecessary unfamiliar concepts and reduce cognitive load. As a language project, the **rich toolchain and powerful IDE** also greatly improve the development experience of developers.

![ppt1](/img/blog/2024-08-29-kubecon2024/ppt1.png)

KCL supports dynamic configuration management and provides two ways of **declarative** and **imperative** configuration management. Developers can write imperative code generation configurations in the code through **if/for/lambda expressions**.

![ppt2](/img/blog/2024-08-29-kubecon2024/ppt2.png)

KCL also supports **declarative configuration merge/override operators** to merge and override different configuration blocks and fields.

![ppt3](/img/blog/2024-08-29-kubecon2024/ppt3.png)

KCL improves the reliability of configuration through **type system**, **testing**, and **rule verification**. KCL, as a **type-safe configuration language**, can expose a large number of type errors in advance at the compilation stage, and developers can get error in the IDE.

![ppt4](/img/blog/2024-08-29-kubecon2024/ppt4.png)
![ppt5](/img/blog/2024-08-29-kubecon2024/ppt5.png)

At the same time, the most simple and effective method of software reliability assurance, **testing**, is also supported in KCL, and you can write unit tests for configuration content through lambda.

![ppt6](/img/blog/2024-08-29-kubecon2024/ppt6.png)
![ppt7](/img/blog/2024-08-29-kubecon2024/ppt7.png)

At last, **writing validation rules to check the configuration content** has always been a common topic in IaC, and KCL supports writing corresponding configuration verification rules through **Assert/Check/Rule** features to verify the configuration content.

![ppt8](/img/blog/2024-08-29-kubecon2024/ppt8.png)

KCL provides SDKs for 12 languages, supports integration with most projects, and supports extension of KCL language capabilities through plugin mechanisms. KCL also provides KCL-Operator to support validation, update, and generation of resources in Kubernetes clusters through KCL language. With the above capabilities, KCL can easily integrate with community tools such as Crossplane and ArgoCD, etc.

## KCL & Crossplane: A Very Nice Conversation

KCL also had a very nice conversation with partners from the Crossplane community, who also brought us wonderful sharing.

Crossplane is an open-source project designed to extend Kubernetes with the capability to manage not only containerized applications but also cloud resources across multiple providers. It acts as a universal control plane, enabling users to provision and manage infrastructure using Kubernetes-native APIs.

![crossplaneppt1](/img/blog/2024-08-29-kubecon2024/crossplaneppt1.png)

In this sharing, Crossplane mentioned the importance of exposing problems as early as possible in the software development lifecycle.

![crossplaneppt2](/img/blog/2024-08-29-kubecon2024/crossplaneppt2.png)

Crossplane also mentioned how to use KCL to improve the reliability of configuration in the process of ensuring configuration reliability.

![crossplaneppt3](/img/blog/2024-08-29-kubecon2024/crossplaneppt3.png)

KCL can be used to write corresponding test cases for configuration through KCL to expose problems in the configuration as early as possible.

![crossplaneppt4](/img/blog/2024-08-29-kubecon2024/crossplaneppt4.png)

KCL and Kusionstack communities also had a nice conversation with the Crossplane community, and look forward to more cooperations in the future.

![photo](/img/blog/2024-08-29-kubecon2024/photo.png)

## Other Resources

For more information about KCL, please refer to:

- [KCL HomePage](https://kcl-lang.io/)
- [KCL GitHub Repo](https://github.com/kcl-lang/)
- [KusionStack HomePage](https://kusionstack.io/)
- [KusionStack GitHub Repo](https://github.com/KusionStack/)
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---
slug: 2024-08-29-kubecon2024
title: kubecon HK 2024 会议回顾
authors:
name: KCL 团队
title: KCL 团队
tags: [KCL, Newsletter]
image: /img/biweekly-newsletter.png
---

# kubecon 2024 活动回顾

2024 年 8 月 21 日至 23 日,为期 3 日的 KubeCon + CloudNativeCon + Open Source Summit + AI_dev China 2024 大会在香港圆满落幕。期间,众多国内外社区领袖和技术专家,共同带来了超过 140 场精彩的演讲,分享了他们在各自领域的深刻洞察和宝贵经验。KCL 社区也在这次活动中与来自各个社区的小伙伴们进行了交流与分享。

## Lighting Talk: KCL: Simplifying Kubernetes Manifests Management

在这次活动中,KCL 通过一场 Lighting Talk 为大家介绍了 KCL 在简化 kubernetes 项目配置管理,提升配置管理效率和稳定性方面作出的努力。

![kcllightingtalk](/img/blog/2024-08-29-kubecon2024/kcllightingtalk.png)

KCL 作为一种 IaC 领域的领域特定语言(DSL),主要解决 IaC 领域中常见的**配置规模爆炸,认知成本过高,缺乏有效的动态配置管理,配置可靠性保证**等问题,并且能够轻松的与社区生态进行集成。

为了有效的降低配置规模,KCL 提供了 **Schema 用来抽象通用的配置结构**,**借助包管理机制支持可重用结构的分发和复用**。并且,KCL 通过**多文件的同名配置合并**能够将一份配置中的内容分隔在不同文件中编写,对不同的配置开发人员屏蔽不必要的陌生概念,降低开发人员的认知负担。同时,作为一个语言项目,**丰富的工具链和功能强大 IDE** 也极大程度上提高了开发人员开发体验。

![ppt1](/img/blog/2024-08-29-kubecon2024/ppt1.png)

KCL 支持动态配置管理,提供了**声明式**和**命令式**两种方式。开发者既可以通过 **if/for/lambda 等表达式** 在代码中编写命令式的代码生成配置。

![ppt2](/img/blog/2024-08-29-kubecon2024/ppt2.png)

也可以通过 **声明式的配置合并/覆盖运算符** 对不同的配置块和配置字段进行合并与覆盖。

![ppt3](/img/blog/2024-08-29-kubecon2024/ppt3.png)

KCL 通过**类型系统**,**测试**和**规则校验**三板斧来提高配置的可靠性。KCL 作为一种**类型安全的配置语言**,能够在编译阶段提前暴露大量类型错误,开发者在 IDE 中就能够得到错误提示。

![ppt4](/img/blog/2024-08-29-kubecon2024/ppt4.png)
![ppt5](/img/blog/2024-08-29-kubecon2024/ppt5.png)

同时,最简单也**最有效的软件可靠性保证的方法“测试”**,在 KCL 中也得到了支持,你可以通过 lambda 编写为配置内容编写单元测试。

![ppt6](/img/blog/2024-08-29-kubecon2024/ppt6.png)
![ppt7](/img/blog/2024-08-29-kubecon2024/ppt7.png)

最后,**编写验证规则对配置内容进行检查**一直是 IaC 领域一个常见的议题,KCL 支持通过**Assert/Check/Rule**等特性编写对应的配置校验规则对配置内容进行检查。

![ppt8](/img/blog/2024-08-29-kubecon2024/ppt8.png)

KCL 提供了 12 种语言的 SDK,支持与大多数项目进行集成;并且支持通过插件机制扩展 KCL 语言的能力。KCL 还提供了 KCL-Operator 支持通过 KCL 语言校验,更新和生成 kubernetes 集群中的资源。借助上述能力,KCL 能够轻松的与 Crossplane,ArgoCD 等社区工具完成集成。

## KCL & Crossplane 一次令人开心的线下交流

在这次 kubecon 活动中,KCL 也与 Crossplane 社区的伙伴进行了交流,来自 Crossplane 社区伙伴也为我们带来了精彩的分享。

Crossplane 是一个开源项目,旨在为云原生应用程序提供基础设施即代码的能力。它允许开发者和运维团队以与 Kubernetes 相似的方式管理各种云资源,支持多云环境和混合云架构。

![crossplaneppt1](/img/blog/2024-08-29-kubecon2024/crossplaneppt1.png)

在这次分享中,Crossplane 在演讲中提到了关于在软件开发的生命周期中尽早暴露问题的重要性。

![crossplaneppt2](/img/blog/2024-08-29-kubecon2024/crossplaneppt2.png)

Crossplane 在介绍他们保证配置可靠性的过程中也提到了如何使用 KCL 来提升配置的可靠性。

![crossplaneppt3](/img/blog/2024-08-29-kubecon2024/crossplaneppt3.png)

通过 KCL 来为配置编写对应的测试用例,以尽早暴露配置中出现的问题。

![crossplaneppt4](/img/blog/2024-08-29-kubecon2024/crossplaneppt4.png)

KCL 和 kusionstack 社区也同 crossplane 社区的同时进行了令人开心的线下沟通,也期待后续能够展开更加深入的合作。

![photo](/img/blog/2024-08-29-kubecon2024/photo.png)

## 其他资源

感谢所有 KCL 用户在此次版本更新过程中提出的宝贵的反馈与建议。更多其他资源请参考:

- [KCL 网站](https://kcl-lang.io/)
- [Kusion 网站](https://kusionstack.io/)
- [KCL Github 仓库](https://github.com/kcl-lang/kcl)
- [Kusion Github 仓库](https://github.com/KusionStack/kusion)
- [Konfig Github 仓库](https://github.com/KusionStack/konfig)

欢迎加入我们的社区进行交流 👏👏👏:[https://github.com/kcl-lang/community](https://github.com/kcl-lang/community)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/blog/2024-08-29-kubecon2024/photo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/blog/2024-08-29-kubecon2024/ppt1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/blog/2024-08-29-kubecon2024/ppt2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/blog/2024-08-29-kubecon2024/ppt3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/blog/2024-08-29-kubecon2024/ppt4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/blog/2024-08-29-kubecon2024/ppt5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/blog/2024-08-29-kubecon2024/ppt7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/blog/2024-08-29-kubecon2024/ppt8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading