我们管理一个应用程序,该应用程序使用许多外部服务作为其一般操作的一部分。有些服务是肥皂服务,有些是 Restful APIs。有些服务也由我们管理,有些是第三方服务。一些服务是应用程序功能的核心,而其他服务则更为辅助/非强制性。
每个外部服务都公开一个“测试”和“实时”环境。我们目前遵循的政策是,当我们的应用程序处于测试状态(即开发、测试和暂存阶段)时,它应该使用外部服务的测试版本。只有在我们的实时环境中,服务的实时版本才会被使用。
在管理环境之间使用哪个版本的服务时,开销并不小,但这不是问题。我的问题是这个政策是否是一个好主意?总是使用实时版本的外部服务会更好地为我们服务吗?我们是否犯了暴露我们自己管理的外部服务的测试版本的错误,即测试环境是否应该保持私有?
我们还没有(还)因为在应用程序达到“活动”之前不指向活动的外部服务而被烧毁,但我承认我们的部分问题是我们的环境缺乏粒度 - 通过将开发、测试和阶段分组在“测试的保护伞,我们失去了针对实时外部服务进行测试的能力。
目前我所意识到的是,在测试环境中使用测试服务几乎没有什么好处。使用实时第三方外部服务所涉及的成本可以忽略不计。此外,我们自己的服务可能会在“测试”阶段意识到它们正在被客户端使用,但这可能会受到影响。
我知道这个场景有点开放,但似乎只有两条路可以走?