相互依赖软件(一家公司的服务器架构)

相互依赖软件(一家公司的服务器架构)

在网络世界中,很多小事都可能破坏一个网站(更新库、代码等)。

我们公司也遇到了这个问题,没有充分检查更新后会发生什么)。

这个主题是为了向您解释我们正在寻找什么:软件/您的建议,以便轻松检查可能引发新代码/库的新更新/等的所有影响。

以下有两个示例:

示例 1:

我们已经在其中一台服务器上安装了 NewRelic,但是,我们不知道 NewRelic(显然)为每个请求包含了很多 PHP 文件。

发生了以下情况:已达到 PHP 最大包含文件限制,并且某些页面崩溃(E_WARNING 错误)。

示例 2:

我们改变了两台 MySQL 服务器之间的复制类型 (从主服务器 -> 从服务器到主服务器 <-> 主服务器)。

事情是这样的:我们使用了 Percona,由于配置错误,两台服务器本身被禁止(由于大量的 SQL 查询)。

我们的问题:

我们希望尽可能详细地描述我们当前的结构。然后,我们希望依赖所有服务器、每个服务器使用的库、我们自制代码的特性等,并在我们想要升级任何东西时使用这些数据。

我们可以说“我要在此服务器上更新一小段 PHP 代码”。该软件可以帮助我们了解所有可能的问题/影响。

答案1

非常简单:它被称为测试或暂存环境。

您将其配置得与生产环境完全相同,然后以部署到生产环境的相同方式将其部署到该环境,然后对其进行广泛的测试。

没有分析的方法可以做到这一点;你必须它。/编辑 - 对此进行扩展。单靠软件是不可能做到这一点的,尤其是在你自己的产品混杂其中的情况下。你必须建立一个基于详细阅读的规则集每一个一套发行说明,以及可能的错误数据库,适用于所涉及的每个产品 - 假设它们是公开和完整的,但这是永远不值得依赖的。因此,唯一真正的测试是执行计划的升级和测试功能——最好包括类似生产负载的东西。

这与您进行备份/恢复测试和 DR 测试的原因完全相同 - 除非被迫进行,否则您不会知道自己错过了什么,或者配置不当。最好在计划下进行测试,然后在生产中即兴发挥。

相关内容