扼杀者无花果图案 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

扼杀者无花果图案

马丁·福勒(Martin Fowler)引入了扼杀者无花果模式,以此作为现代化或重写大型整体系统时管理风险的一种方式。这种模式比喻了一种植物,这种植物的生命始于藤蔓与一棵古老的树木一起生长。随着葡萄树的生长,它会蔓延到完全消耗并最终取代寄主树,取而代之的是新的扼杀性无花果树。在 ASP.NET Web 服务现代化的背景下,这种模式通过在其他系统依赖于 Web 服务的地方建立代理,逐步取代了系统功能。最初,您可以将这些代理视为具有直通行为,因为它们的实现是由现有的单体应用程序服务实现的。在自然的模拟中,这是扼杀者无花果最初向寄主树的树干发送一棵藤蔓的时候。然后,创建一个与单体结构分离的新服务,代理的实现将推迟到该新服务。在自然的模拟中,这是扼杀者无花果藤缠绕在树枝上的一根树枝并超越它的时候。这种代理然后将代理实现换成新服务的模式一直持续到所有旧系统的功能都迁移到新服务为止。此时,扼杀者无花果藤完全消耗了这棵树,遗留系统可以停用。

在使用 strangler fig 模式时,请遵循以下最佳实践,这样您就可以更顺畅地独立扩展和部署应用程序:

  • 选择具有良好测试覆盖率且与之相关的技术负担较少的组件。从这个组件开始可以让团队在现代化过程中充满信心。

  • 选择具有可扩展性要求的组件,然后从其中一个组件开始。

  • 选择业务需求频繁变化且部署频繁的组件。

  • 要大规模实现这种模式,请在运行在亚马逊Elastic Container Service (Amazon ECS) 的 Windows 容器中部署重构的 ASMX 服务,然后使用Amazon API Gateway 发布现代化的 REST API。AWS