Deployment 您如何跟踪在生产中发布的内容?

Deployment 您如何跟踪在生产中发布的内容?,deployment,release-management,Deployment,Release Management,典型地,生产中的部署不仅仅涉及源代码更新(构建),还需要许多其他重要任务,例如: 数据库脚本 配置文件(与测试\生产不同) 按计划批处理 要移动到正确路径的可执行文件 等等等等 在我们公司,我们只需向“发布电子邮件地址”发送一封电子邮件,按顺序描述任务、需要发布哪个变更集()、需要更新哪个SP、数据库脚本等等 我相信没有一个神奇的工具可以自动按顺序完成这些任务,包括回滚;但也许有比电子邮件更好的东西可以帮助跟踪生产中的发布 你有什么工具可以推荐或分享吗?像SVN这样的东西怎么样?您可以将所有代码

典型地,生产中的部署不仅仅涉及源代码更新(构建),还需要许多其他重要任务,例如:

  • 数据库脚本
  • 配置文件(与测试\生产不同)
  • 按计划批处理
  • 要移动到正确路径的可执行文件
  • 等等等等
  • 在我们公司,我们只需向“发布电子邮件地址”发送一封电子邮件,按顺序描述任务、需要发布哪个变更集()、需要更新哪个SP、数据库脚本等等

    我相信没有一个神奇的工具可以自动按顺序完成这些任务,包括回滚;但也许有比电子邮件更好的东西可以帮助跟踪生产中的发布


    你有什么工具可以推荐或分享吗?

    像SVN这样的东西怎么样?您可以将所有代码放在一个存储库中,然后当您准备从生产中发布时,将您的东西从测试中带过来。然后,您将有非常具体的修订,其中包含有关所发生情况的信息。SVN会跟踪所有这些任务。

    当需要多个任务来支持完整的项目部署时(根据我的经验,这种情况经常发生),我建议使用构建/部署工具。我过去使用Ant取得了巨大成功,但我知道其他人对Capistrano、Maven和其他人发誓

    使用Ant,我编写了一个脚本:

  • 从我的VCS中获取我想要的特定版本
  • 在远程计算机上创建目标目录的tarball(以防需要回滚)
  • 创建数据库的MySQL转储文件(也用于回滚目的)
  • 删除远程目录并SSH刚刚从VCS中提取的新内容
  • 执行各种其他后勤操作(设置文件排列、所有权等)
  • 在VCS本身上创建发布分支
  • 创建一个带有适当版本信息的标记,这样在部署时我就可以随时获得代码库的快照
  • 希望这能帮助一些人。我写了一些关于这方面的博客文章,可能有用(也可能没用)。它们现在已经过时了,但总体信息应该仍然足够可靠


    您可能对该网站感兴趣,该网站展示了一些使用SDC任务库和库开发的构建脚本。

    @wilbbe01我们使用TFS作为版本控制系统。我在这里要问的是如何跟踪所有部署任务。@Rob感谢您的详细回答;你不保存你的ant脚本的历史记录吗?我的脚本的历史记录吗?对于每个项目,我都有一个
    \u meta/
    目录,在那里我存储相关组件,如部署脚本(Ant)、数据库DDL脚本等。这样,是的,我保留了一个历史记录。我为每个部署使用更改的属性文件。+1用于回答有关TFS的问题。我们使用MSBuild自动化整个构建(从获取源代码的干净副本、构建源代码到生成最终安装程序)。发布时,我们(a)将安装程序复制到客户发布文件夹中,这样我们就可以将安装程序的副本与生成系统分开,并保存一个描述生成、变更集以及发布到哪个客户的文本文件,以及(b)标记TFS,这样我们就可以轻松地返回生成的变更集。(MSBuild会自动为每个构建添加标签,但对于实际发布版,最好有自己的标签)