我知道可以使用功能切换,但是我想知道是否还有其他功能“非功能”的技巧。例如,您是否会为错误修正构建功能切换?可能不是,而且有人可能会争辩说应尽快部署错误修正,因为它只会变得更好。而且,在发布错误修正后,我当然不想再将其关闭。
是这种情况吗?您想以受控方式发布可能是一项冒险的更改。而且,如果有意外的副作用,最好将其回滚。那么,每个更改的功能标志呢?
视觉更改又如何呢?例如,您可以在CSS中实现类似功能标记的功能吗?甚至有道理吗?
#1 楼
对于网络应用类别中的软件,取决于您的基础设施/托管提供商,这种解耦可能会在软件的不同部署版本之间切换传入流量(或在它们之间进行拆分),实际上涵盖了您提到的任何更改:错误修正,视觉效果等等。这种支持通常不需要功能切换。不管应用程序是单块的还是在微服务中拆分的,它都可能适用。例如,Google的App Engine Paas产品支持流量拆分和迁移。
来自拆分流量:
您可以使用流量拆分指定服务中两个或多个版本中
流量的百分比分布。拆分流量
使您可以在各个版本之间进行A / B测试
,并控制发布功能时的进度。
来自迁移流量:
流量迁移可在应用程序服务中的版本之间切换请求路由
,将流量从一个或多个
版本转移到单个新版本。
评论
皮特·霍奇森(Pete Hodgson)广泛撰写了有关功能切换的各种类别的文章,包括错误修正以及适用的其他情况。 martinfowler.com/articles/feature-toggles.html