关于服务
翻译我是一名 Nix 和 NixOS 工程师,我的全部工作是使构建可重现。如果你的团队因“在我的机器上可以运行”的问题、庞大的 Docker 镜像和耗费整整一天的入职培训而感到疲惫,我会将你的环境转变为声明式代码。使用 flakes,我将每个依赖项固定到确切的哈希值,因此新员工今天打开的 shell 与你的 CI 运行的和你的服务器交付的完全一致。没有隐藏的全局状态,没有意外的版本更新,没有独特的“雪花”笔记本电脑。
我的工作涵盖整个路径 — 从原始项目到在 NixOS 上运行的机器。我编写开发环境,每个项目都有自己的一套工具,声明性地将你的应用程序和服务打包为派生物,并使用 Nix 构建紧凑的 OCI 镜像,而不是手动调整的 Dockerfile。在操作方面,我将 NixOS 主机描述为代码,启动 systemd 服务、秘密和网络,配置 CI 管道,使用共享的二进制缓存,使构建下载而不是重复。当一切都真正可重现时,回滚变得微不足道,部署不再令人恐惧。
我有意识地专注于可重现的构建,而不是通用的 DevOps 或 Kubernetes 专家 — Nix 是我首选的工具,我了解它的尖锐边角:交叉编译、覆盖、从上游修补包以及如何强迫顽固的语言生态系统干净构建。告诉我你的技术栈和痛点 — 我会为你的团队提出一个务实的采用路径,而不需要你重写所有内容。
— 基于 flakes 和 dev-shell 的可重现开发环境
— 将应用程序和服务声明性打包为 Nix 派生物
— NixOS 服务器配置、systemd 服务、秘密和网络
— 带有二进制缓存和可重现工件的 CI/CD 管道
— 使用 Nix 构建的紧凑 OCI/Docker 镜像
— 覆盖、交叉编译和修补上游包
— 现有项目平滑迁移到 Nix
我的工作涵盖整个路径 — 从原始项目到在 NixOS 上运行的机器。我编写开发环境,每个项目都有自己的一套工具,声明性地将你的应用程序和服务打包为派生物,并使用 Nix 构建紧凑的 OCI 镜像,而不是手动调整的 Dockerfile。在操作方面,我将 NixOS 主机描述为代码,启动 systemd 服务、秘密和网络,配置 CI 管道,使用共享的二进制缓存,使构建下载而不是重复。当一切都真正可重现时,回滚变得微不足道,部署不再令人恐惧。
我有意识地专注于可重现的构建,而不是通用的 DevOps 或 Kubernetes 专家 — Nix 是我首选的工具,我了解它的尖锐边角:交叉编译、覆盖、从上游修补包以及如何强迫顽固的语言生态系统干净构建。告诉我你的技术栈和痛点 — 我会为你的团队提出一个务实的采用路径,而不需要你重写所有内容。
— 基于 flakes 和 dev-shell 的可重现开发环境
— 将应用程序和服务声明性打包为 Nix 派生物
— NixOS 服务器配置、systemd 服务、秘密和网络
— 带有二进制缓存和可重现工件的 CI/CD 管道
— 使用 Nix 构建的紧凑 OCI/Docker 镜像
— 覆盖、交叉编译和修补上游包
— 现有项目平滑迁移到 Nix