Files
ayatori/docs/vision.md

55 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 产品愿景
## 问题
当前 homelab 的期望状态散落在 Kubernetes manifests、Terraform state、Ansible、
Proxmox、libvirt、OpenBao、DNS、对象存储以及人工文档中。即使每一部分分别实现
IaC,跨系统变更仍需要人工安排顺序、复制状态并确认结果,容易产生遗漏、错误和漂移。
文档不能成为运行状态的权威来源:它只能解释设计和操作背景,无法持续观察现实并纠偏。
## 目标
Ayatori 提供统一、声明式、可组合的基础设施 API:
1. Git 保存经过 review 的长期期望状态。
2. Kubernetes API 保存当前意图、资源关系与状态摘要。
3. Controller 将请求翻译给成熟后端,并持续 observe/reconcile。
4. 机器和人通过统一任务协议执行动作。
5. 后端保存实际运行状态,数据面在控制面不可用时继续工作。
平台成功的直接标准是:新增 workload 时,使用者只需考虑它需要哪些资源,而不再回忆
需要依次修改哪些系统、文件和文档。
## 产品定位
Ayatori 是具有产品质量的内部平台,而非初期即面向公众的通用私有云。源码公开不等于
承担未知部署环境、任意后端和第三方兼容性的成本。
平台允许对当前环境形成明确意见:Proxmox、OpenSandbox、Envoy、GoBGP、OpenBao、
PostgreSQL、SeaweedFS、Samba AD DNS、Cloudflare 和 Flux 都可以是已知实现。
Ayatori 不以补齐传统私有云或公有云的产品目录为目标。一个资源只有同时满足以下条件,才进入
北向 API:
1. homelab 存在现实消费者和重复需求;
2. 现有后端 API 或 IaC 无法提供足够的管理体验;
3. 持续 observe/reconcile 明显优于一次性自动化;
4. 统一生命周期、状态、组合或权限能产生可验证的收益;
5. 收益足以承担长期 API 兼容、controller 和恢复测试成本。
当前最明确的管理缺口是 Database、LoadBalancer 与 Bucket/Object Storage。VirtualMachine 同样
具有明确价值:Proxmox 的 API 不能覆盖所需的全部生命周期,一部分操作必须在节点上通过 CLI
完成,因此 Ayatori 可以提供稳定北向 API,并在南向组合 Proxmox API、受限节点 Agent 与人工
任务。KaaS 只有在出现托管控制面的实际需求时才进入实现,不是产品路线的必达终点。
## 非目标
- 不替代 hypervisor、microVM runtime、数据库、对象存储或网络协议栈。
- 不从第一天构建通用 provider/plugin ABI。
- 不以隐藏全部后端信息或制造虚假多云可移植性为目标。
- 不创建理解所有应用需求的中央 Application controller。
- 不要求所有人工步骤立即自动化。
- 不因为已有 Run、OpenSandbox 或 microVM backend,就构建 FaaS、Cloud Run 或应用托管产品。
- 不预先承诺 KaaS;它是需求驱动的候选能力。