我们穿越 Linux/Unix 领域的旅程

这是一篇关于从 Arch 到 Alpine 的 Linux 之旅的文章,主要内容如下:

  • 背景:作者到加拿大迪拜大学寻找新人才,询问他们使用的操作系统,对不同操作系统有不同评价,如认为 Windows 使用者可能不适合、Kali 使用者是脚本小子等,进而引发对操作系统选择的思考。
  • 为什么改变操作系统重要及影响:运行服务业务,目标是让客户满意,重点关注产品质量和可靠性。可靠性涵盖多个方面,减少人为干预可降低错误风险,提高系统效率和一致性,同时注重能源和资源的节约。
  • 如何评估操作系统

    • 自己构建软件包:通过构建自己的软件,能够控制软件版本和剔除不必要的组件,如针对 NGINX 去除生产系统中不需要的邮件网关功能。
    • 优先上游:操作系统应尽可能靠近上游源,以获取最新功能、安全更新和社区支持,避免不必要的修改,如 Debian 随机插入修改的情况。
    • 保持更新:操作系统的内核和核心组件应保持更新,以利用最新的性能改进、安全补丁和硬件支持,如过时的内核会影响系统性能。
  • 考虑的操作系统及原因

    • Debian:过时,不遵循上游,进行疯狂的回溯,不是最新的。
    • Ubuntu:与 Debian 类似但稍好,且有自动启动服务等“魔法”,不够可靠。
    • Fedora:较新但体积大、使用 RPM 包管理系统,较为臃肿。
    • OpenSuse:比 Fedora 好但仍使用 RPM,较混乱。
    • NixOS:技术上很棒但学习曲线高。
  • 现在的选择:已放弃 Ubuntu、Alma、Rocky Linux 和 Arch Linux 用于服务器,转而使用 Alpine Linux 和 FreeBSD。

    • FreeBSD

      • ZFS:类似瑞士军刀的文件系统和逻辑卷管理器,数据完整性高,支持快照、克隆、扩容等,有 tier 1 支持。
      • PF:强大的防火墙和网络地址转换工具,简单、性能高、灵活,能处理复杂过滤规则。
      • sysrc 和 sysinit:方便管理系统服务配置,确保系统配置一致。
      • pkg 和 poudriere:包管理格式可读可靠,可定制和本地构建包并分发。
      • 缺点:软件更新有时不及时,无 Docker 支持,部分工具兼容性差。
    • Alpine

      • ISO 定制:可轻松定制 ISO,添加软件或创建特定变体,如“virt”变体,社区和文档资源丰富。
      • 无盘模式:支持无盘运行,从内存运行,减少磁盘 I/O,提高性能,适用于特定环境。
      • 速度快:启动快,VM 启动不到 3 秒,自定义 ISO 仅 75MB,部署快,重启不到 5 秒,安装不到 1 分钟。
      • 易于镜像:通过简单的 rsync 脚本可创建本地镜像,目标架构的 repo 仅 71GB。
      • 自定义仓库:创建和强制安装自定义仓库容易。
      • 极简主义:避免预装不必要的服务,节省资源,VM 仅使用 175MB RAM。
      • 缺点:使用 Musl 库,较 GLibC 更轻量、简单,但部分工具可能不支持。
  • 一些指标

    • 存储效率:FreeBSD 使存储大小减少至少 25%,提高数据管理效率和成本效益。
    • 漏洞减少:减少 50%的软件部署,降低漏洞数量,提高系统安全性。
    • 维护时间:将维护基础设施的人工时间减少 50%,让团队更专注于战略任务。
  • 下一步:将继续使用 FreeBSD,同时关注 Void Linux、Chimera Linux 和 EweOS 等操作系统,以进一步提升基础设施。

总之,文章介绍了不同操作系统的特点和选择原因,以及作者团队在操作系统迁移过程中的经验和成果。

阅读 25
0 条评论