关于服务
翻译您的配置已经超出了普通 YAML 和模板 JSON 的范围。重复的块、微妙的拼写错误以及逐渐偏离的环境导致停机和冗长的审查。我将配置描述为 Nickel 中的真实类型代码——这是来自 Tweag 的一种语言——并生成您的工具已经理解的 JSON 或 YAML。
您将获得:
— 一个 Nickel 代码库,其中环境(开发、预发布、生产)被描述为可组合的记录:共享的默认值与特定环境的覆盖合并,而不是复制粘贴。
— 在渲染之前验证每个值的合同:区域和实例类型的枚举、复制和超时的边界、强制字段、正确的主机和端口。错误的配置在构建时会失败,并给出清晰的消息,而不是在生产环境中夜间出错。
— 可重用的函数和库模块:典型实体(服务、部署、入口)只需描述一次并参数化。
— 导出管道,提供干净的 JSON 或 YAML 供 Kubernetes、Terraform、Nomad、systemd、GitHub Actions 和任何读取结构化配置的工具使用。
— 从现有的 Jsonnet、Dhall、Helm-values 或手动 YAML 的迁移路径,带有差异证明生成的输出与您现在使用的内容匹配。
— 测试、Makefile 或 justfile 的目标,以及文档,以便您的团队可以在没有我的情况下扩展架构。
我还将 Nickel 集成到 CI 中:每个合并请求自动通过类型和合同检查。描述您当前的架构和目标格式——我将准确估算任务。
您将获得:
— 一个 Nickel 代码库,其中环境(开发、预发布、生产)被描述为可组合的记录:共享的默认值与特定环境的覆盖合并,而不是复制粘贴。
— 在渲染之前验证每个值的合同:区域和实例类型的枚举、复制和超时的边界、强制字段、正确的主机和端口。错误的配置在构建时会失败,并给出清晰的消息,而不是在生产环境中夜间出错。
— 可重用的函数和库模块:典型实体(服务、部署、入口)只需描述一次并参数化。
— 导出管道,提供干净的 JSON 或 YAML 供 Kubernetes、Terraform、Nomad、systemd、GitHub Actions 和任何读取结构化配置的工具使用。
— 从现有的 Jsonnet、Dhall、Helm-values 或手动 YAML 的迁移路径,带有差异证明生成的输出与您现在使用的内容匹配。
— 测试、Makefile 或 justfile 的目标,以及文档,以便您的团队可以在没有我的情况下扩展架构。
我还将 Nickel 集成到 CI 中:每个合并请求自动通过类型和合同检查。描述您当前的架构和目标格式——我将准确估算任务。