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
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
📆 背景
👉 关键点
❓ 为什么要采取 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