微服务API管理模式

18-08-19 banq
                   

微服务架构Micro Services Architecture(MSA)已经从MartinFowler网站上的一种理论发展到了一种实现REST服务的技术。当我们需要编写业务逻辑来实现后端核心服务时,大多数企业开发人员都正在转向MSA。但在现实中,还有许多其他系统在本质上并不适合于微服务领域。

如何实现高效的API管理策略将是大多数企业迫切需要解决的问题,这里将讨论解决这个问题的可能模式。

绿地MSA的API管理

如果你的企业只是一家初创公司,而且不希望在IT生态系统中使用高成本的软件,那么可以从完整的MSA开始。这被称为“绿地生态系统”,在这里,你可以完全控制需要开发什么服务以及如何开发这些服务。一旦将后端核心服务编写为微服务,就可以通过适当的API管理平台将它们作为API公开。

模式1-中央API管理器管理所有微服务

如下图所示,此设计模式可应用于新建的MSA,其中可以将微服务发现、身份验证和管理委托给中央API管理层。有一个用于异步服务间通信的消息代理。这个模式特点是中央管理层不但管理配置,还在运行时担任hub作用,存在单点风险。


模式2-服务网格模式与边车(微型网关)

此模式适用于新建的MSA,其中所有后端系统都是作为微服务实现的,但这种模式也可以应用于同时拥有微服务和只需稍作修改的单体应用程序场景。服务网格方式没有上面运行时的单点风险,服务是注册到底层k8s中,服务发现通过sidecar边车实现。


面向实际企业架构的API管理

正如本文开头所提到的,大多数现实世界的企业都使用单体软件和各种云服务来满足日常的业务需求。在这样的环境中,如果您正在实现MSA,您需要接受这样一个事实:现有的系统将存在很长一段时间,而MSA应该能够与这些系统一起生存。

该设计模式主要适用于具有单体系统和MSA的企业。该模式易于实现,并已被确定为适用于混合微服务生态系统的通用模式。也可以应用于没有任何微服务的企业,也就是说可以只适用于传统单块应用程序。


参考原文:https://dzone.com/articles/api-management-design-patterns-for-digital-transfo-1

                   

2