清理和升级旧式基础设施

清理和升级旧式基础设施

我是一家小公司的全栈工程师,负责与技术相关的一切工作,从基础设施到代码。

几个月前我刚来,很快就意识到有很多问题,既有代码问题,也有基础设施问题,因为自从第一个创建整个基础设施的技术人员离开(两年前)以来,公司没有进行任何更新或升级

由于我打算留在公司,我知道升级服务器是强制性的,但基础设施不是我的强项,所以我希望您能给我一些建议。

由于问题很广泛,下面我将介绍如何缩小范围,这就是我现在所拥有的

Ubuntu 16.04.5 上的 3 台服务器:2 台作为后端,1 台充当负载均衡器 这些服务器是 mongoDB 集群的一部分(如果重要的话) 当前所有服务器使用的 apache2 版本是 2.4.18(构建于 2018/06/07) 应用程序使用 Ansible 部署在服务器上,这是一件好事。

但是许多两年前设置的东西现在已经坏了,比如 Nagios、Jenkins 或 SonarQube,问题是没有关于如何/何时/为何设置这些东西的文档。

因此对于这个问题:

我正在研究清理无用的库,修复/安装所有必要的监控工具,通过升级等方式修补漏洞......但不会中断服务器上运行的应用程序。

你们中有人遇到过类似的情况吗?你有什么建议吗?你有任何有用的指南/工具*命令可供参考/使用吗?

附言:我知道这个问题相当广泛,因为我被这个问题弄得不知所措,我还不知道如何正确地把它分成简洁的问题,但如果我能得到一个指向我全球方向的答案,我可能会针对每个问题更精确地写出其他后续问题。

答案1

好消息是该操作系统仍然受支持,但不会持续太久(Ubuntu 16.04 将于 2021 年 4 月终止支持)。

我首先要确保所有系统都是最新的。

然后我会确保我有一个可用的备份,包括恢复程序的测试(理想情况下这是第一点,但两年后如果没有更新,很有可能您将无法轻松安装备份解决方案)。

接下来,我会检查每项服务(Nagios、Jenkins 等),检查其状态,决定是否要继续使用它,还是要切换到我更熟悉的东西。如果是前者,我会修复它,如果是后者(或者如果它处于非常糟糕的状态),我会用最新版本的 Ubuntu 重新安装系统,并从头开始重新安装我需要的东西。

之后,我会开始将系统更新到较新版本的操作系统,最好是更新到 20.04。


需要计划的一些事项:

  • 运行系统更新将导致短时间中断(服务在软件包更新期间重新启动,需要重新启动)。如果可以,请将其安排在使用率较低的时间
  • 对于形成集群的系统,请确保节点之间有足够的时间,以便集群可以恢复(由于我不熟悉 MongoDB,因此无法更具体)。
  • 选择一个维护窗口并将其传达给您的用户,以便他们提前知道将会发生中断。
  • 如果可以,请在生产系统上运行主要升级之前设置一个测试环境来测试它们。

答案2

如果可能的话,请对服务器进行快照,启动您最喜欢的虚拟化软件,然后首先尝试对其进行任何升级。

你说其中一些是通过 ansible 安装的。假设你可以得到一个虚拟机来测试,尝试 ansible 代码(首先--check

相关内容