开放平台及其技术架构

一  什么是开放平台

 

        在互联网时代,大型的互联网企业比如百度,阿里,腾讯,京东,他们把自己的服务封装成API接口并开放出去,提供第三方开发者(ISV:独立软件服务商)使用,这种行为叫做OPEN API,提供API的平台成为开放平台。

        搭建开放平台的企业多数是大企业,这个大是指用户和流量都达到了一个很大的量级。随着用户规模逐渐增大,用户的个性需求也随之增多。平台方提供了标准化的产品,为了满足个性需求,引入了ISV来提供相应的产品和服务。这样平台,用户,开发者就实现了三赢。

二  开发者的基本需求

        ISV首先是一名开发者,一名开发人员在使用平台提供的API接口的时候最关心的就是文档,SDK,测试。文档描述得清晰会降低开发者快速接入平台的成本,熟悉了文档之后,开始调用API接口。如果没有SDK,就要自己去封装基本的系统参数。自己去解析API的返回结果。待开发完成之后还需要一个测试环境。对于一名开发者来说,使用的接口都是RESTful风格的HTTP接口,开发者在自己的PC上即可完成测试步骤。但是平台一方就要考虑搭建一套沙箱环境。同时开放平台结合云资源还需要为开发者提供云主机,云数据库,云缓存等应用的基础设施。开发者的基本需求如图所示:

开放平台及其技术架构_第1张图片

三  开放平台的特性

3.1完整性

        降级、限流、熔断是API网管的基本功能,API发布是讲内部API接口发布出去的窗口,一般是基于内部RPC框架的协议来创建的,同时生成文档。开发者创建好自己的应用之后,就要申请相应的API接口,然后用平台提供的SDK自助打包功能将申请的API集中打包。平台还会提供沙箱环境供开发者测试,同时提供局部场景下的批量API调用可以减少网络传输的次数。在需要订单状态等及时性要求较高的开放场景下,传统的做法是通过定时轮询来实现的,通过消息服务则可以实现消息的及时通知来减少轮询的操作。数据推送则提供了平台数据库到ISV数据库之间的数据通过,解决了大业务量场景下的漏单、丢单问题。比如阿里、京东每年的“双十一”大促中通过数据推送较好地解决了商家的业务问题。SPI是一种反向的调用,是平台一方去调用第三方,比如打通会员的线上线下会员。(介绍SPI的文章可参看架构修炼之道—让框架更优雅的SPI机制)数据加解密是解决数据安全的一个方法策略,当ISV的数据库在极端情况下被拖库之后,也能保障用户数据的安全。平台还会提供一些常用的工具,比如API测试工具、错误码排查工具等。

开放平台及其技术架构_第2张图片

3.2稳定性

        通过开放平台的组成分析来评判开放平台的稳定性。开放平台包含三个方面,分别是ISV自己的应用、开放平台本身和接口提供方系统,如下图:

开放平台及其技术架构_第3张图片

        ISV应用首先需要ISV保证应用系统的健壮性,同时平台一方也要为ISV应用保驾护航,为其提供稳定的容器、数据库、负载等基础设施。

        开放平台本身需要有合理的设计,利用请求管道处理的设计思路,将请求主流程拆分成多个管道,多个管道之间的业务不做强关联。当某个管道依赖出现错误的时候,可以很容易地卸载这个管道,从而保证整体流程的稳定(API网关管道可参看架构修炼之道-API网关的管道)。

        接口提供方的系统开放平台本身不能保证其稳定性,并且不同的接口提供方系统的稳定性也参差不齐,如果有一个接口提供方的性能下降,那么将直接影响平台本身系统的服务质量,一方面要督促接口提供方提高系统的稳定性,比如可以对每个API的质量进行评分,让接口提供方可以直观地看到自己提供的接口的质量;另一方面平台也可以利用一些容错的技术让平台足够稳定。

        再来介绍在稳定性上平台需要做的工作:开放平台也是一个系统,可以从架构设计、容错方式、监控告警、容量观察这几个方面你去思考。在架构设计之初,我们肯定不会让一个平台系统处于单点的情景下,分布式系统环境下一定是集群配置,多机房甚至多地域部署的。在架构设计上,我们还考虑进程的隔离性和单机的线程池隔离性,同事防止雪崩现象的发生,以及运用分布式缓存和本地缓存相结合的方式提供系统的相应性能。在容错方式上我们可以进行限流、降级的处理、熔断的保护,我们还可以做到快速扩容,要实现快速扩容当然要以良好的架构设计为基础。监控告警是一个平台或系统的眼睛,作为平台的运营者需要追踪等辅助监控功能。容量观察是要求我们要清楚当前运行的情况,是否需要对平台进行扩容,同时我们也会做一些压测工作来判断系统的吞吐状态。

3.3安全性

        开放是一把双刃剑,平台、开发者、用户在理想转台下可以实现三赢,但安全的问题不能忽视,解决不好安全问题,开放会引来数据集中泄露的风险。除了利用国际通用的OAuth2.0授权协议,在安全上平台希望所有的数据都要在平台提供的环境下流转存储,开发者的应用需要部署在平台提供的基础设备上,同事对网络访问的权限还需要进一步控制,数据加密存储以防止数据库被拖库后引发的二次风险,平台应保障用户的隐私数据。

四  开放平台的整体技术架构

        从一个开发者最基本的需求开始,然后从开放平台功能的完整性、稳定性、安全性三个方面阐述了开放平台的思路和使用的技术。下面这张图是整个开放平台的整体架构,涵盖了上面的内容。前面我们没有讲述服务市场,在整个开放平台上,对于企业来说,它是价值变现的一个窗口,ISV开发的应用会以服务的形式放在服务市场。同时企业内部开发的应用服务成为官方应用,ISV和官方丰富了软件服务的种类。我们可以看到开放网管在开放平台中起到了关键的作用,企业的各种能力是以最基本的API的形式开放给ISV的。同时数据开放也是开放平台的重要部分,下面这个图里面提供了数据类的API,实际上还有另外一种形式提供ISV使用,那就是数据平台。

开放平台及其技术架构_第4张图片

五  小结

        一个开放平台可以从平台功能的完整性、稳定性和安全性三个方面去描述,这也是开放平台基本的是哪个特性要求。在实现这三个基本特性后,我们要考虑平台的扩展性和易用性,逐步完善开放平台的建设。

参考文献:

王新栋.架构修炼之道:亿级网关、平台开放、分布式、微服务、容错等核心技术修炼实践[M].北京:电子工业出版社,2019.3.

你可能感兴趣的:(分布式,架构)