我有一个关于为 .NET 项目构建服务器的问题。目前,我将 TeamBuild 与 TFS 2010 结合使用,在 .NET 世界中进行自动化构建。一些较旧的项目是使用普通的旧 MSBuild 脚本构建的。
为了摆脱管理工作,我目前正在将我的资源移动到 github。与许多其他站点一样,Github 提供了服务挂钩来触发构建服务器以进行自动化构建,例如 CI 或夜间构建。
当然,我可以使用 TeamCity OnPremise 并使用 VMRole 和虚拟磁盘在 Windows Azure 中动态创建构建代理,但我认为这种混合解决方案有点愚蠢。
那么您对以下架构理念有何看法?
假设您使用 github 作为源代码控制平台。将源提交到您的存储库时,将触发托管 WCF 服务的 Azure WebRole。WebRole 本身将仅使用 Azure API 来启动自定义 Azure VMRole 的新实例。
Azure VMRole 本身将使用某种构建脚本(例如 Rake 或 MSBuild)来根据需要在构建代理上安装尽可能少的开发人员工具。构建整个项目后,工件将发布到 Azure BlobStorage,并且将再次调用托管 WCF 服务的 WebRole,但现在 Azure WebRole 将终止 BuildAgent。
使用这种设置时,您可以最大限度地降低构建代理的成本,并构建几乎任何类型的项目,只要您能够使用 PowerShell 安装构建所需的元素。
所以归根结底:你对这个架构有什么想法?其他想法?是否有提供此类解决方案的现有服务?
托尔斯滕