1

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

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

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

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

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

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

4

1 回答 1

1

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

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

于 2013-08-09T11:42:22.707 回答