代码即操作系统(UpgradeAll 2 开发计划)
作者讨论了当前系统配置备份和恢复实践的局限性,指出像 Linux 和 Android 这样的系统并未真正理解它们处理的数据。作者批评了当前的基础设施即代码(Infrastructure-as-Code)工具如 Ansible 和 Terraform,因为它们无法处理操作系统在 IaC 过程完成后仍然存在的”副作用”。
作者提出了一个新的构建系统的想法,该系统旨在从程序员的角度进行运维,为所有可回滚的操作添加支持。并认为安装软件,维护系统的经验应作为群体智慧通过编程方式保存下来,而不是让人们一次次重复学习简单的劳动。作者希望未来的运维像 NixOS 那样面向功能,而不是面向软件和包。
该系统应具有以下特性:面向目标,可回滚,首要支持单机运行,与现有的运维技术兼容,可以自动检查现有的已配置的操作系统并生成配置代码,逻辑代码灵活。在 Android 上,该系统将体现在 UpgradeAll 上。