API架构的七级成熟度模型,看看你家的应用属于哪一个级别? - Sensedia

19-12-26 banq

成熟度模型分为7个级别,分为3个常规分类:

  • 不基于API:  系统和集成体系结构不基于正式API,在某些情况下没有通信,而其他通常共享文件,使用队列,非结构化Web服务甚至制作一些TCP / Socket技术以提供应用程序之间的通信。
  • 部分基于API:  系统和集成体系结构部分基于API,这意味着使用Service Repository和Developer Portal等资源对SOAP和RESTful Web服务进行了广泛使用,但治理程度低,标准化和关注点分离(API和服务之间)。
  • 完全基于API:  系统和集成体系结构完全基于API,这意味着在API,服务和应用程序等层之间存在关注点分离。从业务角度看,API是新业务模型的基础,或者业务本身依赖于API。还观察到其他技术特征和功能,例如强大的安全机制,API治理,监视,分析措施以及改进的API开发人员体验。

级别1:隔离的应用程序

在这种情况下,系统架构基于无/低集成的隔离应用程序。应用程序的主要类型为:整体应用程序,现成的应用程序(如ERP或CRM)。

级别2:非结构化集成

应用程序之间有集成,但是它们是非结构化的,这意味着没有消息结构甚至使用技术的标准。此外,集成渠道是分散的(点对点),没有集线器或某种总线-集成是临时创建的,可以解决特定问题。通常使用的技术有:

  • 消息队列
  • Socket连接
  • 数据库复制
  • 文件共享(例如XML,CSV或EDI)

级别3:基于组件的体系结构

此级别指的是基于组件的系统架构,此处使用的主要架构模型为:

  • EJB(企业Java Bean)
  • CORBA
  • Microsoft COM / COM + / DCOM
  • 独立的Web服务应用程序

主要集成技术为:

  • TCP /套接字(例如Java RMI,COM​​,EJB)
  • 定制Socket连接
  • HTTP端点(例如SOAP,HTTP上的RPC)

在此级别中发现的主要问题是:集成和接口没有互操作性或互操作性很差,因为所使用的技术仅与另一侧的同一技术通信。Web服务是一个例外,但是通常它们不遵循标准,并且没有任何形式的治理,这使得互操作性难以维护。

级别4:面向服务的体系结构

在此级别上,系统体系结构实现了SOA原理,例如,服务层和业务应用层之间的关注点分离。通常,应用层涉及业务和数据存储功能,服务层涉及合同/接口标准化,抽象,可组合性,发现等。

系统架构的主要特征是:

  • 单体应用程序(应用程序层)
  • SOA堆栈(ESB,BPEL,复杂事件处理器,服务寄存器等)
  • 本地基础架构

集成技术为:

  • SOAP Web服务
  • RESTFul Web服务(但初期使用)
  • 消息传递(例如,JMS,ActiveMQ等)

最后,此级别相关的主要问题是:虽然服务层与应用层分离了,但是服务层和API层之间没有关注点分离(请参见下图),服务层也包含一些API功能。

级别5:基于微服务架构的私有API

在这个级别上,系统架构使用微服务方法。通常有两种类型的层:微服务所驻留的前端层和后端层,在这种架构中,API网关的作用在某些情况下似乎是为了提供前端和后端之间的集成。由于只有内部前端应用程序使用这些API,因此我们将其归类为私有API。

系统架构的主要特征是:

  • 微服务模式的使用
  • API网关
  • 主要基于云基础架构和容器。
  • 网状Mesh架构的初期使用

使用的主要集成技术是:

  • RESTful API(暴露于前端,甚至微服务之间的通信)
  • AMQP(例如Kafka,RabbitMQ等)
  • 最初使用新的通信协议,例如gRPC,Thrift等。

但是,此级别与API相关的关键问题是:API未被完全管理。仅使用一些功能,例如安全性和节流功能,这些功能由API网关提供。另一个重要特征是,也不管理微服务公开的API,这意味着通信是点对点的,没有集中管理(缺少网格体系结构功能)。

要观察的另一点是,该体系结构基于单个API网关,这不容易扩展到整个公司,强烈建议采用API平台来维持这种体系结构的发展。

由于上述所有问题,我们将此级别分类为部分基于API。

级别6:开放式API

在这个级别上,公司通常具有其他级别的一些技术特征,但是主要技术特征是在其他之上具有API层。

在这种情况下,API是业务的重要组成部分,因为它支持业务增长。公司可以创建合作伙伴生态系统和开放的创新环境,以支持创造新的价值流和创新服务。

从技术角度看,可以观察到其他特征:

  • 商业或开源API平台及其模块的使用
  • 使用开发人员门户网站来增加合作伙伴和初创公司的开发人员体验
  • 使用Google Analytics(分析)模块监控技术和业务行为
  • 应用WAF和DDoS保护的强大安全约束。
  • RESTful API作为外部集成的标准。

级别7:API作为业务

顾名思义,在此级别的公司完全基于API来运行其业务。

以下是必须遵守的技术特征:

  • 强大的API策略
  • 全面控制外部和内部API(包括服务和微服务之间)
  • 使用API​​平台的全部功能
  • 严格遵守法规(例如PSD2)
  • 使用服务网格的成熟的微服务架构
  • 强大的基于云的基础架构和基础
  • 多种托管通信协议,例如RESTful,GraphQL,WebSockets,gRPC等。

成熟路线图

一旦评估了公司并了解了公司的当前水平和期望水平,就可以创建发展路线图,当然,此计划的细节取决于各种因素,例如业务驱动因素,技术约束和未来前景。

但是,在创建计划时,建议您考虑一些技巧,例如:

  • 首先,请从4级移至5级,而不是从4级移至7级,宝贝!
  • 选择一个MVP项目来验证您的假设,从小做起,测试,学习和应用建议
  • 从内部和受控API开始
  • 定义一些API模式并建立最小的API治理。

结论

实际上,要以某种形式参与API经济,您的公司需要针对内部或外部上下文管理您的API。无论贵公司位于哪个级别,公司都可以启动API策略的创建,例如,以创建基于API的合作伙伴生态系统为目标。

本文的主要重点是指出基于某些场景的体系结构有多成熟,以了解要实施的最佳技术解决方案和技术策略,以便根据业务和技术要求提供成熟的API体系结构。

 

                   

2