代码之家  ›  专栏  ›  技术社区  ›  JontyMC

使用多个解决方案部署分布式.NET系统

  •  0
  • JontyMC  · 技术社区  · 14 年前

    我们有一个分布式.NET系统,它由几个解决方案组成,每个解决方案都有不同的配置和部署需求。目前,所有代码都在一个TFS项目中,并且每个解决方案都有自己的构建。这些配置用于触发该解决方案源代码管理文件夹中的更改。

    我们将迁移到TeamCity、Git和Rake(由于易于分支和许可证成本),因此我们正在审查整个构建过程,并且无法找到有关这方面的良好信息。我们正在努力解决的问题是:

    1. 我们应该有单独的构建还是一个大型的构建?所有的解决方案都需要构建和部署,以使系统正常工作,但最好是有小的构建,因为它们快速且易于调试。有些解决方案比其他解决方案更“独立”。我们当前的实践主要是在我们想要部署到测试或生产环境时对所有构建进行排队,但有时我们只是对单个解决方案进行排队,如果这些都发生了变化的话。

    2. 我们应该将所有解决方案存储在一个存储库中,还是应该为每个存储库都提供一个存储库?我们使用一些共享项目和DLL,它们如何与单独的存储库一起工作?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Genius    14 年前

    存储库、执行构建和部署实例有很多不同的方法。他们中的许多人是对的。根据我的实践,您使用什么技术,使用什么工具进行构建和部署并不重要。因此,提出影响这些过程的问题很重要:

    • 防止解决方案/项目的混乱,这些解决方案/项目可以分开(作为独立的)。 如果一个项目在几个解决方案之间共享,那么最好为它创建一个单独的存储库。只需将依赖解决方案/项目的关系添加到这一点;
    • 以防止在为不同目的生成不同的构建过程中出现问题(换句话说,配置管理)。 您可以为此调整TeamCity(主要用于在每个“提交”或基于时间的计划之后构建和部署自动化),或者使用一些简单但功能强大的实用程序,如带有预定义配置的nant。

    所以我认为没有理由做一个大的构建(可能只有在发布时),但是单独的构建更容易使用(对于QA和只在某些部分上工作的开发人员)。第二个问题是时间。例如,要在一个解决方案中使用所有项目进行完整的构建,在四CPU 8GB RAM上大约需要10分钟,但是使用记帐部分或注册部分进行构建只需要1分钟——这对我来说很重要。试着想象一下这个过程,在一张纸上画画,它就变得清晰了——该做什么,为什么要做。

    所有的意见都是基于我的实践,在成功的项目中,每天/晚上都经历着变化,并且有几十种配置(您的构建)。