【问题标题】:Should 'test' environments consume 'test' external services?“测试”环境是否应该使用“测试”外部服务?
【发布时间】:2013-08-11 07:31:45
【问题描述】:

我们管理一个应用程序,该应用程序使用大量外部服务作为其一般操作的一部分。有些服务是 Soap 服务,有些是 Restful API。有些服务也由我们管理,有些是第三方服务。一些服务是应用程序功能的核心,而另一些服务则更为辅助/非强制性。

每个外部服务都公开一个“测试”和“实时”环境。我们目前遵循的政策是,当我们的应用程序处于测试状态(即开发、测试和暂存阶段)时,它应该使用外部服务的测试版本。只有在我们的实时环境中才会使用实时版本的服务。

在管理不同环境之间使用哪个版本的服务时存在不小的开销,但这不是问题所在。我的问题是这个政策是否是一个好主意?总是使用实时版本的外部服务会更好地为我们服务吗?我们是否犯了暴露我们自己管理的外部服务的测试版本的错误,即测试环境是否应该保持私有?

在应用程序“上线”之前不指向活动的外部服务,我们还没有(还)被烧毁,但我承认我们的部分问题是我们的环境缺乏粒度 - 通过对开发、测试和阶段进行分组在“测试”保护伞下,我们失去了针对实时外部服务进行测试的能力。

我现在意识到的是,在测试环境中使用测试服务几乎没有什么好处。使用实时第三方外部服务所涉及的成本可以忽略不计。此外,我们自己的服务在“测试”阶段意识到它们正在被客户端使用,这可能会产生潜在影响,但这可能会得到解决。

我知道这个场景有点开放,但似乎只有两条路可以走?

【问题讨论】:

    标签: wcf api development-environment production-environment dev-to-production


    【解决方案1】:

    我担心在运行应用程序的非生产实例时会意外修改生产数据。一旦你执行了 SetX()、POST/PUT、插入/更新,你有什么,你就上河了。这是一种很难找到的鬼鬼祟祟的错误。

    如果您严格消费,那么理论上它不会产生影响。在实践中,我仍然会担心。在你的位置,我可能会很高兴有一个非现场选项。否则我会考虑删除所有这些外部服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多