区分生产环境与其他环境的良好做法是什么?

区分生产环境与其他环境的良好做法是什么?

我的主要工作领域是编程,有时我必须在生产服务器上执行某些操作(部署应用程序或配置某些东西时......)。

所以我的问题是,我应该怎么做才能确保我不会在生产服务器上搞砸我打算在我的机器/测试环境中做的事情?例如,清除一些数据库或删除日志。

我想到的是一些基本的事情,例如:

  • 让生产控制台只在我需要的时候打开,然后关闭它
  • 在生产服务器上配置控制台,使其与其他控制台截然不同 - 比如红色背景或类似的东西
  • 每个命令都需要额外的确认

还有其他吗规则这有助于保持理智并且不会搞乱生产服务器?

答案1

防止错误和妨碍工作之间总是存在着一线之隔。虽然我是一名专职管理员,但我们的组织规模很小,因此实施大型企业为确保生产安全而采用的所有额外开销和繁文缛节并不现实。

除了您的规则外,我们还有以下内容:

  • 永远不要对测试和生产(即登录、数据库)使用相同的凭据,如果您无法承担适当加强防火墙的责任,请针对常见错误设置删除规则,即从实时前端连接到测试后端等。
  • 尽可能多地实施变更管理/版本控制,不仅在应用程序级别,而且在操作系统级别。这里我们使用 cfengine,但还有很多其他选项,例如 puppet 或甚至可以开发您自己的。
  • 自动化所有日常任务,即你不应该定期在生产中手动删除任何内容
  • 保持所有事情的文档更新,在正确记录之前不要认为任务已经完成,结合 wiki 和错误跟踪系统。对于配置中的每个更改和每个奇怪之处,都必须有一个“为什么”。我知道这听起来像圣杯,但任何文档都比什么都没有好。

答案2

使用不同的密码:除了不同的用户可能具有访问权限之外,您无法登录到生产系统数据库(并且一些不好的事情) 如果密码不一样,则认为它是测试服务器数据库。

颜色编码:这也是一个好主意,因为很难错过。根据主机名设置命令行提示符的颜色,并设置 GUI 访问的桌面背景颜色。

答案3

我这样做的主要方法正如您所说的那样,更改背景颜色,更改布局,使其与开发服务器有显著不同。

您可以做的另一件事是将生产服务器上的密码更改为您必须考虑输入的密码,这样您就会意识到您正在登录到生产服务器。

我看到其他公司使用的另一种方法是使用 Web 界面或批处理脚本来实际推动工作从开发阶段到生产阶段,这样您实际上并不是在生产服务器上工作,而只是在工作准备就绪时推动工作。

答案4

我见过的一种做法是在运营网络和生产网络之间使用“中介”终端服务器,因此任何更改都必须在终端服务会话中进行(对于生产系统)。通过不对测试系统执行相同的操作,区别非常明显。

相关内容