术语:Team Foundation Server的“环境”是什么?

时间:2018-02-27 17:06:07

标签: git tfs devops

我开始了解DevOps - 特别是TFS(Team Foundation Server) - 并希望确保我对术语有正确的理解。

如果我的C#和SQL项目的本地副本是“开发环境”,并且用户与之交互的已发布项目是“生产环境”,那么我们如何描述被推送到TFS的“主副本” ?

或者,考虑一下GItHub上可用的存储库。当您克隆存储库时,您正在从该“主副本”复制到您的PC(然后进入开发环境),但该存储库在GitHub中属于哪个环境?

1 个答案:

答案 0 :(得分:2)

我通常不会将“部署执行”以外的状态的代码副本描述为“在”此环境或该环境中。我不是说用这种方式描述它一定是错误的;只是它并没有多大意义,很容易被误解。

现在,已部署的软件 - 包括您为支持开发团队而部署的软件 - 当然确实属于各种意义上的环境。每个用于开展业务的已部署实例[1] - 即使它专门帮助您的开发人员编写软件 - 也处于生产环境中。因此,如果您的服务器被环境划分(由于许多原因,这是非常明智的事情),那么您应该在生产服务器上有一个TFS实例(因此“在生产环境中”)以执行实际的软件开发

现在,如果您正在评估某个工具,或为其编写扩展或插件,或者其他任何内容,那么您将在开发和/或测试环境中放置该工具的实例。而且,像TFS这样的工具也不例外。

所以我的生产环境中有我的TFS服务器,我开始为MySuperWidget.dll编写代码;我在该TFS实例中的回购中托管。现在我有了代码的副本,并且代码副本被写入生产服务器上的磁盘(因为那是TFS所在的位置); “生产中的代码是什么?”不是我称之为有用的任何定义,因为你不会执行生产中的特定代码。如果您将其称为“正在生产中”,那么您暗示每次签入都可能需要遵循您的部署到生产的程序。这就是为什么我不认为未部署的代码副本是“在”任何环境中,即使它们所在的磁盘肯定是由服务器运行的,服务器本身也是在某些环境中或其他

[1]:也许我应该说每个 server -deployed实例,因为您可能会注意到开发人员计算机上的软件 - 您已定义为开发环境的一部分 - 已部署按我的定义生产。通常认为局部环境有点奇怪。 (或者,更常见的是,它不会以这种方式考虑。)

考虑一下:我声称你的直播TFS服务器是一个生产服务器。必须允许您的工作站连接到它,因此使用典型的跨环境连接规则,将您的工作站视为开发环境的一部分是不合适的。

然而,您必须能够在本地部署您的软件的WIP版本以进行调试,因此您肯定不能完全根据“生产环境”的规则考虑工作站。