一  什么是开放平台

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

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

二  开发者的基本需求

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

三  开放平台的特性

3.1完整性

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

3.2稳定性

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

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

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

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

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

3.3安全性

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

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

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

五  小结

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

参考文献:

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

开放平台及其技术架构相关推荐

  1. 分享| 小程序开放平台的技术架构实例

    近年来,超级APP逐渐崛起,各大互联网巨头纷纷推出小程序开放平台.在此背景之下,是否需要实现自己的小程序开放平台?又该如何实现?这些问题困扰着很多公司.作为当前市面上商业化程度最高的小程序容器技术,F ...

  2. 【人工智能 Open AI】通用 API 开放平台的系统架构设计

    写一篇技术文章<通用 API 开放平台的系统架构设计>,分5个章节,细化到三级目录,不少于2000字.使用markdown格式输出. 文章目录 通用 API 开放平台的系统架构设计 一.前 ...

  3. 开放平台openapi技术实现要点

    前言 开放平台设计系列第一篇主要写了开放平台功能方面的设计,原计划写3篇,一篇介绍功能,一篇介绍架构,一篇介绍使用的技术.写了第一篇功能后,发现架构和技术可以合并写,这样看起来更方便些,所以本篇就把架 ...

  4. 百度召开Web App应用开发者大会分享应用开放平台

    百度主办,InfoQ协办的Web App应用开发者大会于4月27日在北京举行,百度副总裁王梦秋在会上分享了题为"开放平台 由你做主"的演讲,内容包括百度"框计算" ...

  5. 淘宝开放平台技术历程----学习转载

    2019独角兽企业重金招聘Python工程师标准>>> Author:放翁 Date:2012/10/13 注:文中所有的技术点都可以在http://blog.csdn.net/ce ...

  6. 京东京麦开放平台的高可用架构之路

    京东京麦开放平台的高可用架构之路 京麦是京东商家的多端开放式工作平台,是京东十万商家唯一的店铺运营管理平台,为京东商家提供在移动和桌面端的操作业务,京麦本身是一个开放的端体系架构,由京东官方和 ISV ...

  7. [转]淘宝开放平台技术历程

    对于taobao一直有想过去体验一下的情怀,可能緣于自己之前也曾是互联网的从业者,目前在做社交游戏和手机游戏,但是还是不忘关注一下互联网技术发展,分享以前看到过的一篇关于taobao平台发展的文章. ...

  8. 美团开放平台SDK自动生成技术与实践

    美团开放平台为整个美团提供了20+业务场景的开放API,为了使开发者能够快速且安全的接入美团开放平台,美团开放平台提供了多种语言的SDK来提高开发者的接入效率.本文介绍了美团开放平台如何自动生成SDK ...

  9. 深度linux使用京麦,京东京麦开放平台的高可用架构之路

    京麦是京东商家的多端开放式工作平台,是京东十万商家唯一的店铺运营管理平台,为京东商家提供在移动和桌面端的操作业务,京麦本身是一个开放的端体系架构,由京东官方和 ISV 为商家提供多样的应用服务. 京麦 ...

  10. 干货 | 如何打造企业专属A/B平台?火山引擎DataTester开放平台技术揭秘

    本文为火山引擎DataTester开放平台研发负责人的一场公开演讲整理.内容详细介绍了作为国内A/B实验平台引领者的 DataTester「开放平台」能力的技术实现,以及如何通过「开放平台」使产品功能 ...

最新文章

  1. OpenCV常遇问题解决方法汇总
  2. 泊松分布E(X^2)
  3. 使用Apache下poi创建和读取excel文件
  4. Raphael学习笔记(2)--绘图(基本图形)
  5. Leetcode-二叉搜索树最近公共祖先
  6. 【算法】剑指 Offer 05. 替换空格
  7. Java判断平台为32位或64位,载入对应DLL
  8. Django的Ajax加额外操作
  9. 全国最优秀的计算机学校,2020全国最好的计算机专业学校排名
  10. 矩形嵌套-记忆化搜索(dp动态规划)
  11. python---用python实现选择排序
  12. cad黑色背景变成白色_CAD操作很难记?记住了又易混淆?那就看这里!
  13. 整数规划:分支定界法
  14. 遇到unhandled exception:怎么处理?
  15. 50万VPN登录凭证遭泄露,中国占11.89%
  16. Win7系统中,如何关闭Windows默认的防火墙? win7如何关闭防火墙
  17. 【第3期赠书活动】〖Python 数据库开发实战 - Python与Redis交互篇⑬〗- 综合案例 - 新闻管理系统 - 编辑新闻(编辑角色权限)
  18. 红帽Linux系统输入罗马数字,ps罗马数字怎么打
  19. 涓滴意念--java基础
  20. PHP人才招聘网站源码

热门文章

  1. texlive2020 安装_texlive测试是否安装成功
  2. 2022年更新正大杯获得国家二等奖经验优秀报告资料分享全国大学生市场调查与分析大赛市调大赛保研竞赛加分怎么找队友等全套经验分享
  3. 怎样用计算机命令提高网速,老司机教你电脑网速慢怎么办
  4. xposed框架_Xposed框架安装、使用以及插件开发
  5. 论文解读:MOEA/D with Adaptive Weight Adjustment
  6. Struts1——文件上传
  7. 计算机网络工具软件包括,计算机网络常用工具软件
  8. android ps icon图标制作,PS设计App图标教程
  9. 基于vue的房屋中介管理系统
  10. 计算机03年word做母亲节贺卡,制作图文并茂的作品---用word制作母亲节贺卡PPT课件...