Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 应该';测试';环境消耗';测试';对外服务?_Wcf_Api_Development Environment_Production Environment_Dev To Production - Fatal编程技术网

Wcf 应该';测试';环境消耗';测试';对外服务?

Wcf 应该';测试';环境消耗';测试';对外服务?,wcf,api,development-environment,production-environment,dev-to-production,Wcf,Api,Development Environment,Production Environment,Dev To Production,作为一般操作的一部分,我们管理一个使用大量外部服务的应用程序。有些服务是Soap服务,有些是Restful API。一些服务也由我们管理,其他是第三方服务。一些服务是应用程序功能的核心,其他服务则更具辅助性/非强制性 每个外部服务都公开一个“测试”和“活动”环境。我们目前遵循的策略是,当我们的应用程序处于测试阶段(即开发、测试和登台阶段)时,它应该使用外部服务的测试版本。只有在我们的实时环境中,才会使用这些服务的实时版本 在管理不同环境之间使用哪个版本的服务时,会有相当大的开销,但这不是问题所在

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

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

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

在应用程序达到“实时”之前,我们还没有(尚未)因为不指向实时外部服务而被烧掉,但我承认我们的部分问题是我们的环境缺乏粒度——通过将开发、测试和阶段分组到“测试”伞下,我们失去了针对实时外部服务进行测试的能力

目前我所意识到的是,在测试环境中使用测试服务几乎没有什么好处。使用实时第三方外部服务的成本可以忽略不计。此外,我们自己的服务意识到客户在“测试”阶段正在使用这些服务也有潜在的影响,但这可能是可以接受的


我知道这种情况有点不确定,但似乎只有两种方法可以实现?

我担心的是,在运行应用程序的非生产实例时,可能会意外修改生产数据。一旦你做了一个SetX(),POST/PUT,insert-in/update,你就有麻烦了。这是一种鬼鬼祟祟的虫子,很难找到


如果你严格地说是在消费,那么从理论上讲,这没有什么区别。实际上,我还是会担心的。在你的位置上,我可能会很高兴有一个非现场选项。否则,我会考虑删除所有这些外部服务。

我担心的是在运行应用程序的非生产实例时会意外修改生产数据。一旦你做了一个SetX(),POST/PUT,insert-in/update,你就有麻烦了。这是一种鬼鬼祟祟的虫子,很难找到

如果你严格地说是在消费,那么从理论上讲,这没有什么区别。实际上,我还是会担心的。在你的位置上,我可能会很高兴有一个非现场选项。否则我会考虑取消所有的外部服务