技术架构

KOGUN 建立在成熟开源组件之上。下面是当前实际运行的技术栈、规划引入的分布式算力组件,以及同类开源参考实现 —— 均附许可证与官方仓库,可直接核对。

分层结构

任务从提交到交付经过四层,每层职责单一、可独立替换。

接入层
Nginx 反代与 TLS 终止 → FastAPI 提供 REST 与 WebSocket。节点心跳、任务状态、控制台均走同一入口。
调度层
任务拆解为子任务写入池,按 算力评分 与合规区域匹配节点;结果经 哈希重算 + 抽检 双重复核后计入结算。
执行层
贡献者节点在沙箱内认领执行,全程本地运行;命名空间与资源限额隔离,数据不越出内网边界。
数据层
PostgreSQL 存节点、任务与账务;缓存与幂等键降低重复查询;每笔任务留来源 URL 与批次号,可回溯审计。

当前技术栈

线上已运行的开源组件。

组件作用仓库许可
FastAPIREST 接口与 WebSocket 服务框架fastapi/fastapiMIT
uvicornASGI 服务器,承载 API 进程encode/uvicornBSD-3
PostgreSQL节点、任务、账务与审计数据存储postgres/postgresPostgreSQL
asyncpg异步数据库驱动MagicStack/asyncpgApache-2.0
SQLAlchemyORM 与数据访问层sqlalchemy/sqlalchemyMIT
Nginx反向代理、TLS 终止与静态资源nginx/nginxBSD-2
Leaflet算力节点分布地图(OSM / Esri 底图)Leaflet/LeafletBSD-2
systemd服务守护、健康重启与自愈systemd/systemdLGPL-2.1

规划引入

按「单机可跑、渐进引入」原则筛选,先解真实瓶颈再上规模,不做过度设计。

调度与编排
组件解决的问题仓库许可
Ray子任务并行编排与跨节点调度,替代进程内自研调度ray-project/rayApache-2.0
K3s轻量 Kubernetes,单机即可起,为多节点横向扩展留口k3s-io/k3sApache-2.0
VolcanoK8s 上的批任务与 GPU 队列调度、gang schedulingvolcano-sh/volcanoApache-2.0
消息与队列
组件解决的问题仓库许可
NATS轻量消息总线,承载心跳与任务派发,替掉轮询nats-io/nats-serverApache-2.0
ValkeyBSD 分支的高性能缓存与 Streams 队列(开源许可无变更风险)valkey-io/valkeyBSD-3
Celery成熟的 Python 异步任务队列,处理离线批作业celery/celeryBSD-3
可观测与治理
组件解决的问题仓库许可
Prometheus指标采集与时序存储,节点在线率与任务成功率可视化prometheus/prometheusApache-2.0
Grafana监控面板与告警,替代人工巡检grafana/grafanaAGPL-3.0
etcd服务注册与选主,为多实例部署提供一致性基础etcd-io/etcdApache-2.0
推理与存储
组件解决的问题仓库许可
vLLM高吞吐推理引擎,批量向量化与模型服务后端vllm-project/vllmApache-2.0
SGLang结构化输出与高并发推理,降低单条成本sgl-project/sglangApache-2.0
Triton Inference Server多框架模型统一部署与服务化triton-inference-server/serverBSD-3
SeaweedFS海量小文件对象存储,承载采集语料与向量文件seaweedfs/seaweedfsApache-2.0
隔离与身份
组件解决的问题仓库许可
FirecrackermicroVM 级强隔离,贡献者节点执行不可信子任务firecracker-microvm/firecrackerApache-2.0
gVisor用户态内核沙箱,隔离度介于容器与虚拟机之间google/gvisorApache-2.0
Keycloak统一身份与权限,面向企业客户的 SSO 与子账号keycloak/keycloakApache-2.0
数据质量与计量
组件解决的问题仓库许可
Great Expectations数据质量契约,交付前自动校验字段完整率与格式great-expectations/great_expectationsApache-2.0
OpenMeter用量计量与按量计费,结算口径与账单一致openmeterio/openmeterApache-2.0

同类开源参考

分布式算力领域已有成熟实现,架构与容错设计可直接借鉴。

项目参考价值仓库许可
exo用消费级设备组集群做分布式推理,设备发现、分片与容错机制可直接参考exo-explore/exoGPL-3.0
Bacalhau「数据优先」的计算调度:任务移动到数据所在节点执行bacalhau-project/bacalhauApache-2.0
SlurmHPC 批调度的事实标准,队列与公平性算法成熟SchedMD/slurmGPL-2.0
引入原则:单机可跑优先,先解决真实瓶颈再谈规模。KubeRay、Consul、Kafka、RabbitMQ 等项目对当前体量属过度设计,暂不引入。

引入优先级

P0可观测性(Prometheus + Grafana)与消息总线(NATS / Valkey)—— 先让系统状态可见、心跳不再靠轮询。
P1推理服务化(vLLM / SGLang)与对象存储(SeaweedFS)—— 撑住批量向量化与海量小文件交付。
P2容器编排(K3s + Volcano)与强隔离(Firecracker / gVisor)—— 节点规模上千后再引入。
全部组件均为开源项目,许可证与仓库地址可在上方逐一核对。KOGUN 不重复造轮子,只把成熟组件组合成可交付的数据任务网络。