基于Linux的企业自动化实践:服务器的构建、部署与管理
上QQ阅读APP看书,第一时间看更新

4.3.1 让你的构建保持简单

让我们从前面讨论的SOE对Linux构建过程的重要性的一些实际应用开始。无论选择什么路线,也不管你的环境是什么样子,都应该保持你的构建标准尽可能简单和简洁。

没有两个完全相同的企业环境,因此每个企业的构建需求肯定是不同的。尽管如此,这里给出了一组常见的示例需求:

·监控代理

·日志转发配置

·安全加固

·核心企业软件需求

·时间同步的NTP配置

此列表只是一个开始,每个企业都会有所不同,但它会让你对构建过程中要用到的东西有一个概念。不过,让我们开始看看构建过程中的一些边缘案例。公平地说,每台Linux服务器的构建都会考虑到一个用途,因此,它将运行某种形式的应用程序栈。

同样,应用程序栈在企业之间肯定会有所不同,但通常需要的应用程序类型示例如下:

·Web服务器(如Apache或nginx)

·运行Java工作负载的OpenJDK环境

·MariaDB数据库服务器

·PostgreSQL数据库服务器

·NFS文件共享工具和内核扩展

现在,在标准化过程中,当最初定义SOE时,你可能已经竭尽全力指定了OpenJDK 8和MariaDB 10.1的用途(仅作为示例)。这是否意味着在构建过程中包含这些应用程序呢?

答案几乎总是否定的。很简单,添加这些应用程序会增加构建的复杂性以及增加安装后的配置和调试工作。它也会降低安全性,而且不久之后会有更多的问题。

假设我们在MariaDB 10.1上进行了标准化,并将其包含在基本操作系统映像中(因此部署的每台Linux机器都包含该映像),我们知道只有一部分正在运行的机器会真正使用它。

不将MariaDB包含在基本映像中有如下几个原因:

·仅安装MariaDB 10.1的服务器组件大约需要120 MB的空间,这取决于你的操作系统和打包,也依赖软件包。尽管现在存储空间便宜且充足,但如果在整个环境中部署100台服务器(实际上对于大多数企业来说,这只是一个很小的数字),那么对于你不需要的软件包来说,大约需要11.7 GB的空间。实际的数字会高得多,因为还会有依赖软件包需要安装。

·这也可能会对备份和备份所需的存储产生连锁反应,如果你在企业中使用虚拟机快照,甚至会对任何虚拟机快照都产生连锁反应。

·如果一个应用程序需要MariaDB 10.3(或者实际上,企业决定将其标准更新为10.3),那么在安装10.3之前,需要升级映像或者卸载版本10.1。当一个最小的Linux映像可能刚收到一个更新的MariaDB工作负载时,这带来了不必要的复杂性。

·你需要确保在不需要时关闭MariaDB和防火墙,以防止任何误用,这是一个额外的审计和强制执行要求,它们在许多没有使用MariaDB的服务器上也是不必要的。

还有其他安全方面的考虑,但这里的关键信息是它浪费了资源和时间。当然,这不仅仅适用于MariaDB 10.1,这只是一个示例,但它表明,作为一项规则,应用程序工作负载不应包含在基本操作系统定义中。现在让我们更详细地了解一下构建的安全需求。