应该测试'环境消耗'测试'外部服务?

时间:2013-08-09 11:16:18

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

我们管理一个消耗大量外部服务的应用程序,作为其一般操作的一部分。一些服务是肥皂服务,其他服务是Restful Apis。有些服务也由我们管理,其他服务则是第三方服务。某些服务是应用程序功能的核心,其他服务则是辅助/非强制性的。

每个外部服务都会暴露“测试”和“实时”环境。我们目前遵循以下策略:当我们的应用程序处于测试阶段(即开发阶段,测试阶段和阶段阶段阶段)时,它应该使用外部服务的测试版本。仅在我们的实时环境中才会使用服务的实时版本。

管理环境之间要使用的服务版本的开销并不是很大,但这不是问题。我的问题是这个政策是否是一个好主意?我们是否会通过总是使用外部服务的实时版本来提供更好的服务?我们是否错误地暴露了我们自己管理的外部服务的测试版本,即测试环境是否应该保密?

在应用程序达到“实时”之前,我们还没有指向实时外部服务,但我接受了我们的问题部分是我们在环境中缺乏粒度 - 通过分组开发,测试和阶段在“测试”保护伞下,我们失去了对实时外部服务进行测试的能力。

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

据我所知,这种情况有点开放,但似乎还有两种方法可供选择?

1 个答案:

答案 0 :(得分:1)

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

如果您严格消费,那么从理论上讲它并没有什么不同。在实践中,我仍然担心。在你的位置上,我可能很乐意拥有一个非现场选项。否则,我会考虑删除所有这些外部服务。