【问题标题】:Terminology: What "environment" is Team Foundation Server in?术语:Team Foundation Server 在什么“环境”中?
【发布时间】:2018-08-07 10:12:11
【问题描述】:

我开始学习 DevOps——尤其是 TFS(Team Foundation Server)——并希望确保我对术语有正确的理解。

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

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

【问题讨论】:

    标签: git tfs devops


    【解决方案1】:

    我通常不会将处于“已部署以执行”以外的状态的代码副本描述为“处于”该环境或该环境中。我并不是说这样描述它一定是错误。只是它的意义不大,很容易被误解。

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

    现在,如果您正在评估一个工具,或者为它编写扩展程序或插件,或者其他什么,那么您就可以将该工具的一个实例放入开发和/或测试环境中。同样,像 TFS 这样的工具也不例外。

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


    [1] :也许我应该说每个 server 部署的实例,因为您可能会注意到开发人员机器上的软件 - 您已定义为开发环境的一部分 - 已部署根据我的定义进行生产。本地环境通常被认为有点奇怪。 (或者,更多的时候,只是不以这种方式考虑。)

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-07
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 2015-07-23
      • 2010-09-09
      • 1970-01-01
      • 2010-09-05
      • 2011-02-11
      相关资源
      最近更新 更多