API网关如何补充ESB的不足

418 阅读10分钟

痴迷于客户的组织应该在企业服务总线的同时引入API网关,以优化服务连接。以下是方法。

对于现代企业来说,提供愉悦的客户体验可能是一项全方位的任务,但对客户的痴迷是非常值得努力的。Forrester研究显示,痴迷于客户的公司实现了2.5倍的收入增长和2.2倍的客户保持率。

实施以客户为中心的系统需要利用组织的所有资源,使其大于各部分之和。连接性是任何现代IT基础设施的一个关键部分,它变得比以往任何时候都更复杂和重要。

各个行业的企业正在接受分散化,用微服务取代单体,并放弃让整个组织使用单一技术栈的想法。相反,团队正在接受语言、平台和解决方案的多样性,他们正在使用API来解放孤立的数据并使传统的应用程序现代化。

在这篇文章中,我将比较连接的两个促成因素:企业服务总线(ESB)和API网关。我的目标是解释各自最适合的环境和用例,包括建议企业如何以深思熟虑、循序渐进的方式,最好地推进其API基础设施的现代化。

连接性是至高无上的

为了给客户提供良好的数字体验,必须将你的组织与客户的所有互动连接起来,包括营销、销售、IT和所有其他部门。只有通过这种完整的连接,你才能获得对客户更全面的了解--订单历史、人口统计信息、忠诚度数据、投诉历史等等。

为了产生这种360度视图和由此产生的全渠道体验,你必须把连接作为你的IT战略的核心。公司内的每个系统和业务流程都必须连接起来,并保持最新,以实现无缝的、个性化的、令人愉悦的客户体验。

连接性和ESB

在过去,公司在连接性方面的努力侧重于组织效率。企业服务总线(ESB)最初被设想为所有服务的连接器。在面向服务的架构(SOA)中--该架构仍在成长和发展--用不同的标准和协议连接不同的服务是一个重大的挑战,而ESB的出现就是为了迎接这一挑战。

在越来越集中的环境中,ESB是单体企业架构的一个重要推动者。由于需要连接大型的企业内部应用和数据库,ESB实现了这种连接。

ESB的功能

ESB的作用是把存在于基于SOA的IT环境中的服务和应用解耦。每个服务都必须建立与ESB的单一集成,而ESB使该服务对所有连接到ESB的其他服务可用。ESB是任何希望消费或发布数据的应用程序或服务的一站式商店。ESB通常处理:

  • 格式转换
  • 协议协商
  • 排队
  • 额外的业务逻辑(在某些情况下)

enterprise service bus香港

图1:企业服务总线。

ESB是所有服务与服务通信的中介。作为服务间通信的协商者和调解者,ESB倾向于成为IT基础设施的中心枢纽,提供许多功能,使其能够与几乎所有服务(包括传统服务)集成。

规模化的ESB

随着越来越多的服务通过ESB,通过ESB带来每一个新服务的动力也在增加。有一种类似于大型社交网络应用的 "网络效应"。网络上的人越多,对其他人加入的吸引力就越大。

ESB最终成为自己的一个基本的单体服务。每一次与ESB的整合都会走得更远,包含更多的逻辑。不久之后,业务逻辑就不再存在于各个服务中,而是在ESB中。

随着ESB的发展,它自然需要更多的维护和关注。这个责任通常由一个专门的IT团队来承担。因为ESB作为所有服务间通信的集中枢纽,ESB团队必须发挥类似的功能,与各个应用团队进行沟通和合作。协调新的功能和推出,避免破坏下游的依赖关系。

ESB在现代环境中的弊端

在现代IT环境中,服务开发已经转向API优先和规格优先的方法。IT环境也正变得越来越分散。毕竟,企业不再是在企业内部,甚至不再是纯云,而是在混合云和多云环境中工作。而且他们的团队在物理上也是分布的。因此,集成点必须能够跨越各种类型的环境。

向微服务的发展从根本上与传统的、单体的ESB相抵触。通过将ESB单体分解成多个重点服务,你可以保留ESB的许多优势,同时提高灵活性和敏捷性。

在了解了ESB和现代企业正在发生的转变后,让我们看看作为集成模型的API网关

API网关

API网关是客户和服务之间的一个现代基础设施组件。API网关作为客户的单一入口点,与处理所有服务间通信的ESB相反。

api gateway香港

图2:API网关。

与ESB类似,API网关连接不同的服务并整合这些信息。然而,随着API的兴起,连接的任务更加集中。

从服务优先(ESB观点)到API优先的转变

API提供了SOAP环境中所缺少的标准化契约。在其最初的形式中,ESB是对以前的标准问题的技术解决方案。此外,随着规格优先的API开发的出现,客户和服务之间的合同不再需要等待服务的开发,进一步解耦了开发团队。API优先的设计为业务主导的 "产品 "带来了更好的重用性和相关性。

API网关允许你简化连接到任何API的任务。API网关处理跨领域的问题,如认证、日志和监控,以及协调以减少往返,并为每个客户提供正确的API。

API网关提供了许多好处,包括以下几点:

  • 更精简的微服务允许集中通用功能以减少开销。与其为每个服务重新发明轮子,不如在网关层面上处理交叉问题,如认证、日志和监控。这也降低了整个系统的复杂性,因为这些交叉性问题可以在网关中实现一次。
  • 解耦的客户端和服务允许将多个微服务协调成一个客户端API。同样,不同的客户可以收到根据他们的需求定制的不同的API,这是 "后端对前端 "模式的一种变化。
  • 加速的API发现加快了新客户和功能的开发。
  • 所需请求的数量减少,提高了性能。通过协调,后端的几个API调用可以聚合成客户端到API网关之间的一次往返。这可以改善用户体验。
  • 通过插件的一致性可以实现最佳实践治理、安全、可观察性和处理所有其他交叉问题。

比较API网关和ESB

API网关和ESB之间的相似之处很明显。这两种解决方案在架构中都占据了类似的位置:作为与服务进行通信的集中式中介。然而,API网关提供了优势以及更现代的方法来实现这些优势。

主要的优势是,API网关有一个明确的范围。ESB被设想为所有应用程序和服务之间通信的万能解决方案。当它们成长为这个角色时,额外的功能被添加进来,允许业务规则和逻辑被纳入系统中。因此,ESB变得过于方便。一开始是一个降低系统复杂性的项目,后来演变成了自己的一个大规模的复杂系统。

另一方面,API网关扮演着一个更集中的角色。首先,API网关不负责(那么多)转换和协议协商。随着API标准的成熟,API网关可以比ESB更精简,专门关注跨领域的问题。此外,API网关主要集中在客户-服务通信上,而不是所有的服务-服务通信。

这种范围的特殊性使API网关能够避免范围蠕变,使它们不至于成为另一个需要被分解的单体。在选择API网关时,重要的是找到一个具有明确身份的产品,而不是一个广泛的功能集。

与ESB的集中化和高度耦合的性质相比,API网关允许分散化和分布。这方面使两种企业--那些正在走向云的企业和那些采取混合方式的企业--都能得到授权。

何时使用API网关

API网关很适合专注于更快发展和实现创新的企业,这是通过具有独立性和工作能力的分布式团队来实现的。

ESB不符合这一标准,因为它们是大型的、集中的单体,增加了团队之间的耦合或相互依赖,降低了独立性。

API网关和开发者门户网站也促进了对API的设计优先方法,并促进了以发现为导向的消费方法。通过为每个客户提供正确的API,API网关可以提高采用率、重复使用和迭代速度。API网关还促进了整个组织对API的消费和发现,并实现了无代码或低代码工具的使用。同样,重点是使独立的团队,而不是与API网关团队的耦合。

现代企业的ESB和API网关

现代企业的旅程包括实现敏捷性和快速创新,以取悦客户。这个旅程取决于提高团队的独立性,并使这些团队保持精简和专注。

要做到这一点,IT组织必须成为技术上的异质性和多样性,而不是同质性。他们必须接受每个用例的最佳解决方案。这种转变需要技术解决方案和方法的多样性。毕竟,方向上的转变是多方面的。这里有一些例子:

  • 企业内部或纯云环境 ➡ 混合云和/或多云环境
  • 集中式 ➡ 分布式
  • 单片式架构 ➡ 微服务
  • 服务器 ➡ 无服务器、功能、Kubernetes、容器
  • 全组织语言 ➡ 多语言团队和组织

关于集成平台,现在的重点应该转移到API上。API连接是新的竞争战场,而API网关是专门用于此目的的解决方案。

在大多数情况下,渐进式的混合方法是最好的起点。从实施带有新API的API网关开始,在机会和时间允许的情况下,慢慢引入更多服务。随着时间的推移,这种渐进的方法将打破ESB单体。抓住机会,提取ESB内部的业务逻辑,并将其分配到新的微服务中。

我们的目标不是要完全取代ESB,因为它在可能永远不会被升级的遗留服务中仍有一席之地。重点是将ESB从新开发的关键路径中移出。然而,从中期来看,通过在其上建立业务层面的依赖关系,API合同的寿命会更长。因此,对API连接的关注将为现代企业产生价值。