我有一个用 PHP 编写的复杂 appengine 服务,现在我想将它部分迁移到 Python。
假设我的服务有 2 个部分:/signIn/....
和/data/...
. 我只想先迁移/signIn/
部分,然后再迁移/data/
。
但是,由于我的服务很大,所以我想/signIn/
在 Python 中构建新的部分,然后使用流量拆分对这部分进行一些 A/B 测试。
我的问题是流量拆分只能应用于版本,所以我的旧版本和新版本必须在同一个模块中,而同一个模块意味着它们必须用相同的语言编写(我错了,请参阅更新部分)。但我正在从 PHP 迁移到 Python。
对我来说最好的解决方案是什么?
谢谢,
解决方案
在 Dan Cornilescu 的帮助下,这就是我所做的:
- 将应用程序拆分为 2 个模块:默认和旧版本。
- 调度
/signIn/
到默认模块,其余到旧版本模块。 - 在 Python中制作另一个版本的
/signIn/
(默认模块) - 配置流量拆分以缓慢增加 Python 部分的请求百分比。这将使我们能够测试并确保没有发生严重的错误。
注意:该/signIn/
部分必须是默认模块,因为 GAE 的流量拆分仅在默认模块下工作。
我确认我们可以为一个模块制作两个不同语言的版本。