Show HN: Distr 2.0 – 一年学习如何向客户环境交付
Source: Hacker News
Introduction
一年前我们推出了 Distr,帮助软件供应商远程管理客户部署。我们提供了拉取更新的代理、带 GUI 的中心枢纽,以及许多关于本地部署需求的假设。
很快我们发现,当软件运行在无法直接 SSH 进入的环境时,情况会变得非常混乱。
在过去的一年里,我们还帮助现代化了许多自研解决方案:
- 通过电子邮件发送更新失败信息的 Bash 脚本
- 没有人信任的 Excel 表格,用来跟踪客户版本
- 工程师开车去客户现场现场解决问题
- 通过电子邮件进行调试会话(“能把日志截图发给我吗?”)
- 客户能够访问内部的 AWS 或 GCP 注册表,因为没有更好的方案
- 部署落后两个主要版本,没人愿意动手
Breaking change: Customer organizations
我们等了一年才进行第一次重大变更,这导致了一次显著的 SemVer 升级。此变更是必要的:我们彻底重写了客户组织的管理方式。
- 供应商 是想要分发软件/AI 应用的作者。
- 客户 现在属于 客户组织,该组织管理其内部用户和 RBAC(基于角色的访问控制)。
之前每个客户仅是拥有一个部署的单一用户。新模型需要对我们的 API 进行迁移。云客户迁移顺利,但基于我们 API 构建的自定义解决方案需要更新。
Notable features since launch
- OCI 容器注册表 – 基于改编自 google/go‑container‑registry 的版本,直接嵌入代码库,并通过单个 Docker 镜像的独立端口提供服务。它让供应商能够分发 Docker 镜像及其他 OCI 工件,用于自托管部署。
- License Management – 限制哪些客户可以访问哪些应用或工件版本。它将合同协议(例如对特定软件版本的基于时间的访问)进行代码化。
- Container logs and metrics – 在没有 SSH 访问的情况下也能查看。我们曾在使用时序数据库与将日志存储在 Postgres 之间进行争论;经过对 Postgres 索引的大量调优后,方案现在运行稳定。
- Secret Management – 确保数据库密码不会出现在配置步骤或日志中。
Adoption
Distr 目前已被 200+ 供应商 使用,包括《财富》500 强公司,覆盖本地、GovCloud、AWS 和 GCP 环境。我们的用户遍及健康科技、金融科技、安全和 AI 领域。我们也已经开始着手第一个空气隔离环境的工作。
Future plans (Distr 3.0)
我们正在开发原生 Terraform / OpenTofu 和 Zarf 支持,以在客户的云账户和物理环境中进行基础设施的供应和更新。这将使供应商能够通过单一平台提供 BYOC(自带云)和空气隔离的使用场景。
Open source & documentation
- Repository:
- Docs:
我们是 YC S24。欢迎就本地部署提出问题,也很期待听到您在复杂客户部署方面的经验。