laf next 重构计划说明 #352
Locked
maslow
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
📆 背景
👉 关键点
❓ 为什么要采取 kubernetes 架构?
现版本(v0.8)迭代的过程,在没有考虑使用 kubernetes 架构之前,就已经在向「datastore + controller」的方向演进了,如 gateway-controller、instance-controller),迫于越来越多的需求和迭代效率压力,有日益强烈的解耦愿望。
现版本的 laf #是没有经过顶层设计的,他的开发过程是自下而上的,工程中需要什么功能,就开发什么功能,每个按钮都是被开发者催出来的,这个在初期务实的,但是在接下来的需求和定位上,已经无法匹配和满足了。 laf 的发展背景和方向讨论 #178
laf 接下来的设计原则和优先级是, api -> cli -> web client -> ide plugin,对一套抽象、扩展、良好设计、稳定的API 的需求是迫切的,选择 kubernetes api 的第一原因是这条。
选择 kube api 后, laf 和 sealos 的关系,未来会有更多可能性, 这两个产品是孪生,不可不考虑。
❓ 为什么采取 go 语言?
选择 kubernetes crd 的实现方式,使用 kubebuilder 开发 crd 实在太方便和成熟,并且没有替代品(在了解 kubebuilder 之前,我是打算用 node.js 写 crd 的,那样工作量要翻数倍了,仅因为 kubebuilder 是 go 语言生态)
主要原因就是上一条, 此条是附加的,laf 和 sealos 是孪生项目,选择 go / crd / kube 之后,团队的技术栈高度统一,消除了社区和团队的隔裂,能从 sealos 社区获取大量帮助,共同沉淀。
❓ 为什么现在分精力去做重构,而非聚焦用户产品需求?
有 laf 用户发出质疑:
本次重构,看似是不务正业,搁置现版本迭代去“推新版”,实际上是为了更快速的迭代,为了后面的无摩擦迭代,能省出更多的精力去做用户体验、做产品生态。
这个质疑中的观点,我是极度赞成的,laf 一定是始终围绕用户需求的,从开始、现在到未来都会是。 其实做架构的调整,就是为了从架构上省时省力,一劳永逸的解决掉一部分问题。从而让我们能更专注的考虑和满足“所谓小白”的需求。
这个立场是很明确的, 这样说更容易明白:
这是我做 laf 的初衷,为了能让我早日从 laf 的开发工作中解脱出来,和大家一起开发各种小程序。 才做了这次架构大调整,
同时,良好的设计,也更有利于协作和吸引更多的贡献者。
❓ 怎么参与/跟进 laf next 的开发?
controllers
目录下❓ 哪里可以了解 laf next 的架构原理?
👉 laf 架构说明文档
❓ 哪里能看到 roadmap ?
👉 laf roadmap
Beta Was this translation helpful? Give feedback.
All reactions