大规模部署

本指南介绍在您的环境中大规模部署 Clear Linux* OS 时的部署注意事项和部署策略。

概述

在本指南中,“端点”指的是安装 Clear Linux OS 的目标系统,而不论它是数据中心系统还是现场部署的单元。

注解

本指南并不能取代您自己的 IT 操作环境设计方案,也不能用作您的 IT 操作环境设计蓝图。

大规模部署的实施细节超出了本指南的讨论范围。

您的 Clear Linux OS 部署应该作为您的现有环境和可用工具的有益补充。本指南假设您的环境中的核心 IT 基础设施(如网络)运行状况良好,并可根据部署需要加以扩展。

选择使用和更新策略

不同的业务场景需要不同的部署方法。Clear Linux OS 十分灵活,既可继续使用上游 Clear Linux OS 发行版,也可在 Clear Linux OS 发行版的基础上分叉,让您自己成为 OSV

以下概述了一些注意事项。

创建您自己的 Linux 发行版(混合版)

此方法是指利用 mixer 过程在 Clear Linux OS 基础上创建自定义映像,从而在上游 Clear Linux OS 的基础上分叉,让您自己成为 OSV。此举需要采用更多基础设施和过程, 但回报是您可以对 Linux 发行版拥有极高的掌控和定制能力。注意事项:

  • 生成捆绑包和更新的开发系统应该有足够的性能来完成任务,并独立于为生产计算机提供更新内容的 swupd 更新 Web 服务器。

  • 为生产计算机提供更新内容的 swupd 更新 Web 服务器应该进行适当扩展。可扩展的弹性 Web 服务器的具体实现细节超出了本文的讨论范围。

    (有关更新服务器的更多信息,请参阅 mixer。)

采用敏捷方法

云部署和其他大规模部署的关键在于灵活性和速度。任何 Clear Linux OS 部署策略都应该遵循这两项要求。

对大规模部署来说,为每个版本手动重建您自己的捆绑包或混合版是不可持续的。Clear Linux OS 部署流程应该足够敏捷,能够快速验证和快速生成新版本。是否将这些更新实际应用到生产环境属于独立的业务决策。但是,是否有能力将新版本软件频繁滚动推出到端点是一个重要的先决条件。

您应负责验证操作系统并确定操作系统的生命周期,而且应该像对待任何其他软件开发生命周期一样对待它。以下是一些建议:

  • 充分了解您需要与 Clear Linux OS 集成并维护的自定义软件包及其依赖关系。
  • 为构建基于 Clear Linux OS 的映像设置生产路径。这至少应包括:
    • 一个开发 clr-on-clr 环境,用于测试 Clear Linux OS 系统的构建包和捆绑包。
    • 一个生产前环境,用于在生产前部署 Clear Linux OS 版本
  • 采用持续集成和持续部署 (CI/CD) 理念,以便:
    • 在上游项目或供应商推出更新时,自动提取自定义软件包。
    • 根据您的自定义设置(如果有的话),生成 Clear Linux OS 捆绑包和可引导映像(如果需要的话)。
    • 根据与业务有关的度量和指标(例如性能、功率等),评估不同版本的表现。
    • 与您所在组织的治理流程(例如变更控制)集成。

版本控制基础设施

Clear Linux OS 版本号非常重要,因为它们适用于从操作系统组件到库和应用程序在内的整个基础设施堆栈。

妥善保存记录很重要,因此您应该维护一个详细的登记表,记录下以前部署的各个版本及其内容。

只要看一眼所部署的 Clear Linux OS 版本号,您就应该知道您的 Clear Linux OS 是否为特定安全漏洞打上了补丁或者是否纳入了重要的新功能。

选择映像分发策略

定下了使用和更新策略后,您就应该知道 Clear Linux OS 将如何部署到您的端点。在大规模部署中,应该避免使用交互式安装程序,而是倾向于使用自动化安装或预构建映像。

大规模安装操作系统有许多广为人知的方法。每种方法都有其优势,但根据您的环境中可用的资源不同,有的方法在您的环境中可能更容易使用。

请参阅可用的 Clear Linux* OS image types

以下是大规模安装 Clear Linux OS 的一些常见方法:

裸机

将 Clear Linux OS 分发到 LAN 上物理裸机系统的一种方式是使用预引导执行环境 (PXE) 或其他带外引导选项。

如果您的自定义软件包非常小,并且使用的是无状态基础设施,那么这种分发方式可取得不错的效果。

如果您的环境中并没有可供部署的映像,您可以访问 Clear Linux OS Downloads 页面下载一个实时映像,并将其部署为 PXE 引导服务器。另请参阅关于如何 使用实时服务器将 Clear Linux* OS 安装在裸机上 的文档。

云实例或虚拟机

无论是在内部部署环境中还是在云解决方案提供商 (CSP) 托管环境中,可克隆磁盘形式的映像模板都是在虚拟机环境中分发 Clear Linux OS 的有效方法。

与云虚拟机迁移功能配合使用时,此分发方式效果极佳,可实现极高的应用程序可用性和工作负载移动性;届时,虚拟机可以在虚拟机管理程序主机集群上重启,也可以在数据中心之间无缝迁移。

Clear Linux OS Downloads 页面提供了预构建虚拟机映像示例,它可以在主流 CSP 的云环境中即刻部署。另请参阅有关如何 在虚拟机上安装 的文档。

容器

容器化平台支持从存储库中提取映像,然后将其作为独立的容器反复部署。

含有 Clear Linux OS 映像的容器是一个不错的分发方式,它可以将应用程序(包括其所有依赖项)设计为蓝图,然后作为对象进行分发,同时也支持您或您的客户动态编排和扩展应用程序。

Clear Linux OS 能够运行 Docker 主机,具有可以从 DockerHub 中提取的容器映像,或者可以构建为自定义容器。有关详细信息,请访问 Containers 页面。

有关无状态系统的注意事项

Clear Linux OS 的一个重要概念是无状态以及区分用户数据和系统数据。此概念可能会改变您对大规模部署的认识。

备份策略

Clear Linux OS 系统及其基础设施应被视为一种商品,而且这种商品很容易复制。避免将注意力放在备份操作系统本身或默认值上,

而是应该将注意力放在备份重要且独特的应用程序和数据上。换句话说,只关注备份关键区域,如 /home/etc/var

日志记录和遥测十分有用

将日志记录和遥测数据从端点分流到外部服务器,从而确保它们持久存在,而且在发生问题时便于从另一台服务器访问。

  • Clear Linux OS 中的远程系统日志记录可通过 systemd-journal-remote.service 获得

  • Clear Linux OS 提供了 遥测,这是一个强大的工具,可用于在大规模部署时以众包的方式快速解决相关问题。利用此功能时需要仔细考虑目标受众以及哪些类型的数据是有价值的,还要适当地公开事件。

    像任何 Web 服务器一样,遥测服务器也应该可以适当地扩展并具有适当的弹性。可扩展的弹性 Web 服务器的具体实现细节超出了本文的讨论范围。

编排和配置管理

在云环境中,系统的生命周期可能很短暂,因此是否有能力配置和维护通用实例十分重要。

Clear Linux OS 通过 os-cloudguest 捆绑包提供了一个高效的云初始化解决方案 micro-config-drive,支持在引导时自动执行许多上线第一天任务,例如设置主机名、创建用户或放置 SSH 密钥。有关在 Clear Linux OS 端点部署期间自动配置的更多信息,请参阅 批量供应 指南。

配置管理工具对于维护一致的系统和应用程序级配置非常有用。sysadmin-hostmgmt 捆绑包提供了 Ansible* 作为配置管理和自动化工具。

云原生应用程序

基础设施操作系统可以将各种操作和行为都设计得井井有条,但设计是否敏捷最终还是取决于应用程序。部署在 Clear Linux OS 上的应用程序应该能够识别主机,但不依赖于任何特定的主机来运行。如果条件允许,应该使用相对和动态引用。

应用程序架构应该针对基础设施中断具有适当的容错能力。不要仅仅将无状态设计作为一个显著特征。持续测试其使用情况;通过在新主机上反复部署 Clear Linux OS 和应用程序来将其使用自动化。这自然会最大限度减少配置偏差,并给监控系统和业务连续性计划带来挑战。