AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 392473
Accepted
arex1337
arex1337
Asked: 2012-05-25 17:40:22 +0800 CST2012-05-25 17:40:22 +0800 CST 2012-05-25 17:40:22 +0800 CST

您如何将版本控制、测试和持续集成/部署等开发实践应用到系统管理中?

  • 772

想象一下,您要管理许多服务器,这些服务器具有许多人使用的许多不同服务。现在假设您要重新配置或替换其中一台服务器上的某些软件。显然,您不想在生产中的服务器上工作。

如果这是代码更改,作为开发人员,我会在我的本地开发机器上进行更改,在本地测试它并将更改提交到版本控制系统。然后可以将更改部署到暂存环境中,进一步测试并最终部署到生产环境中。如有必要,我也很容易回滚。

一般而言,或者具体来说,您如何在系统管理中实现这一点?

(首先想到的是使用虚拟机并将虚拟机映像置于版本控制中,但我确信有很多文献和巧妙的解决方案我目前还不知道。)

windows backup linux testing version-control
  • 3 3 个回答
  • 1022 Views

3 个回答

  • Voted
  1. Daniel Pittman
    2012-05-25T17:43:59+08:002012-05-25T17:43:59+08:00

    免责声明:我是 Puppet 的开发者之一。

    显而易见的方法是仅应用这些概念:定义开发/测试/生产的周期,并通过它们推动更改。使用版本控制来跟踪系统。

    简而言之,沿着这条路走下去会发现您确实需要能够自动化这些事情的工具 - 本质上,您想要自动化系统管理,这样您就不会在机器上使用这些技术,而是在系统上使用它们管理机器。

    Chef、Puppet、Salt和CFEngine等工具都是满足第二个需求的流行工具。他们的工作总体方向是将系统管理转变为您可以进行版本控制和测试的中央解决方案。

    DevOps运动是关于如何做到这一点的另一个良好信息来源。虽然规则是开发人员和运营人员之间更好的合作,但它也朝着同一方向发展。

    • 16
  2. Best Answer
    nearora
    2012-05-25T18:20:08+08:002012-05-25T18:20:08+08:00

    简短的回答是“操作系统部署管理”、“配置管理”和“软件打包”。长答案如下。

    我想在丹尼尔·皮特曼 (Daniel Pittman) 的回复中添加对系统管理中“系统”构成要素的细分。

    一个系统或环境将包括:

    • 服务器
    • 操作系统
    • 配置
    • 供应商包;和
    • 本地包

    包括这些将是过程,例如:

    • 操作系统部署或映像
    • 配置管理
    • 软件包管理
    • 审计/记录
    • 监控
    • 备份

    并且您希望将这些结合在一起以帮助您实现非功能性目标,例如:

    • 重复性
    • 可维护性
    • 可测量性
    • 表现
    • 可追踪性
    • 可测试性
    • 可变性

    这是一个快速的大脑转储。我相信可以将更多内容添加到所有列表中。

    您的问题涉及其中一些,但没有使用特定的词。例如,您希望能够轻松部署和恢复,即需要可维护性;你想在测试环境中进行测试,直到它通过即可重复性、可测试性和可测量性;您正在考虑将 vm 映像置于版本控制中,因为您希望操作系统和配置部署具有可重复性。

    有很多工具可以帮助您完成这项工作,其中一些是 Daniel 提到的。其他一些是:

    • Kickstarts(基于 RedHat)、Preseed(基于 Debian)、WDS (MS Windows),用于部署已知的操作系统环境
    • Spacewalk/Satellite(基于 RedHat),用于配置和包管理的组策略(MS Windows)
    • YUM 和 APT 打包系统,用于生成、部署、升级和删除包(一组二进制文件、数据和配置组成一个软件)
    • 用于监控的 Nagios、OpenNMS 和 SCOM
    • 用于备份的 Amanda、Bacula 和 Windows Backup Server
    • Munin、PCP 和 Hyperic 用于性能监控
    • 用于版本控制的 CVS、SVN、GIT 或 Bazaar
    • Hudson 和 Jenkins 用于构建管理
    • Selenium 和用于测试的机器人
    • Bugzilla、Request Tracker 和 Jira 用于记录、通信和跟踪

    同样,这不是一个完整的列表,但我一直在脑海中为我提供指导,希望它也能帮助你。

    • 15
  3. Richard B
    2012-05-26T15:04:42+08:002012-05-26T15:04:42+08:00

    在 Windows 世界中,这些围绕应用程序生命周期管理的问题正在通过 System Center 2012 得到解决。

    在 System Center Virtual Machine Manager (SCVMM) 中,服务使用“服务模板”(例如经典的三层服务)定义,执行环境定义为“云”(例如开发、暂存、生产)。服务模板可以进行版本控制并(以自动化方式)推出到不同的云。在幕后,SCVMM 负责提供、部署和配置虚拟化硬件(VM 等)和软件(操作系统、应用程序组件等)。

    System Center Service Manager 是从流程的角度将它们联系在一起的部分。例如,问题管理和变更控制。

    • 1

相关问题

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

  • 在 Windows Server 2003 下使用 wscipt 从 .asp 文件运行 .exe

  • 最佳混合环境(OS X + Windows)备份?[关闭]

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve