1背景
中台服务架构的思想是伴随着企业规模不断扩大、业务多元化而形成的。如阿里巴巴将集团20多个核心业务中公共的、通用的业务以服务的方式沉淀到了共享业务事业部,这套共享服务体系为阿里巴巴集团的核心业务赋能,真正发挥服务重用的价值。
阿里中台战略是阿里高管15年参观世界上最成功的移动游戏公司supercell,这家典型的小团队模式进行开发的公司,可以最快的推出游戏内测版,不受欢迎,可以迅速的放弃这个产品再进行新的尝试,期间几乎没有管理角色的介入,团队失败后,不但没有惩罚,甚至会举办庆祝仪式,以庆祝他们从失败中学到了东西。它的核心竞争力就在多年的游戏研发中积累了非常科学的研发方法和体系,也就是中台能力。
2中台服务共享
中心化ESB企业服务总线实现的SOA方案根本诉求是实现异构系统间的交互,降低了系统间的耦合,更方便高效的实现了对新系统的集成。弊端“中心点”带来平台能力难扩展问题业务响应慢,由于需要跟企业总线多次交互,对总线的访问和计算压力都很大,以及潜在的“雪崩”影响。
去中心化分布式框架除了对SOA特性的实现和满足外,有效的避免了中心热点,雪崩等弊端。阿里有超过2000多个应用,因为各个应用在核心业务层已经通过共享服务体系实现了统一和畅通,所以今天阿里内部没有类似ESB的组件。
阿里组织架构中“中台”的设置就是为了提炼各个业务条线的共性需求,并将这些打造成组件化的资源/能力包,然后以接口的形式提供给前台各个业务部门共享使用,这样就可以最大限度地避免“重复造轮子”的问题,也让每一个新的前台业务创新能够真正意义上“站在阿里巴巴这个巨人的肩膀上”,而不用每次开辟一个新业务都像新建一家创业公司那么艰难,甚或更为艰难。
3API共享过程
第一、找到合适的服务化对象。这个对象要能够涵盖各种各样的业务流程、业务数据又要便于封装。为了保持对现有系统的兼容性,目前阿里巴巴集团的共享服务中心的功能支持粒度都是API,但是并不意味着只能把API作为服务对象,也还可以有其他粒度的服务。
第二、建设对象服务化的基础设施。有了服务话对象之后,需要制定制定相关的服务组件规范以及对应的服务治理平台与工具,以便对服务进行封装。一个完整的服务应该包括的基本功能有服务的描述元数据、服务注册与发现机制、服务访问控制与安全策略、应用服务portal、服务依赖与运维管理、服务SLA协议、服务消费者的管理与支持工具、服务化辅助工具支持、服务调用分析与报表、服务成本核算与服务能力变现、文档与开发工具支持。
第三、服务化实施。阿里巴巴中台把推进服务化实施过程化分为三个阶段:API as Service, Product as Service, Solution as Service。API as Service 解决了存量API的服务化问题,Product as Service是基于API初级服务的深加工,服务更面向场景,更专业化。这两个阶段实现了阿里巴巴从基础能力到业务能力的共享开放,Solution as Service的目标是让各种业务场景和解决方案在共享服务平台上达到最大程度的复用,让业务的拓展是基于服务的方式而不是基于代码的方式。
4服务共享Api市场
开放应用程序的API可以让开发者在无需访问源码,或理解内部工作机制细节的情况下,调用他人共享的功能和资源。现主要有9款API供应平台(排名不分先后):百度APIStore、用友APILink、 阿里云API市场、数说聚合、Apix、通联数据、HaoService、聚合数据、datasift 。
4.1阿里云API市场
阿里云API市场的运营模式和旗下天猫有很多相似之处,都是B2B2C模式:阿里云提供平台,邀请服务商入驻,由服务商直接对客户提供服务,然后阿里与服务商进行分成。依托阿里的口碑和流量,在极端的时间聚集了大量的第三方服务提供商,也极大程度上丰富API的种类和数量,且由于竞争的存在,其API的价格相对于其它平台也稍低一些。
4.2百度apistore
百度旗下的API Store,能够满足大部分个人应用开发者,特别是其最近推出的Android和IOS SDK,更是移动开发者的福音。其接口分类较细,但是感觉有一些分类之间存在交集,没有明显的边界区分。接口、数据更新速度也比较快,且支持个人发布与定制化服务,上千的接口量基本可以满足一般开发者的需求。提供移动开发SDK,方便移动开发者快速、便捷调用API Store服务所开发的SDK包,加上API文档清晰明了,上手真的十分简单。但缺点就是由于接口杂乱繁多且来源不一,部分接口的质量、稳定性没有保证。
4.3友APILink
用友专注服务企业级市场30,是亚太地区最大管理软件提供商, ERP、财务软件的市场占有率常年维持第一名,旗下的APILink的主要目标群体也是企业级客户,核心接口都采用直营模式,主要提供企业工商大数据、发票核验、实名认证、短信发送、物流查询等企业应用场景下常用的接口,当然生活相关的一些接口也有提供,但是数量不多。在接口质量和供应商筛选方面要求很高,更加适合对接口质量和稳定性有较高要求的公司或企业级应用的开发者。另外,用友也通过APILink开放自身核心产品如NC、U8、U9等产品的接口,用友宣称的400W企业用户。
4.4聚合数据
跟百度的APIStore有点像,接口包括生活、旅游、金融、开发、咨询等分类,还比较全面。但是并不支持个人发布,因此接口的质量和稳定性会比较好,但也正因为这样接口量大大减少。聚合数据给我的感觉更像是致力于打造高质量API,不求广而求精。不过申请使用接口需要实名认证和审核,算是双刃剑吧,对于买卖双方来说是一个保障,对只想试用的人来说不太友好。
4.5Apix
Apix更多是面向小贷机构、互联网金融、租赁保理等行业客户,除了提供身份核验、工商信息、失信名单、支付缴费等接口,还有包括电商、学历信息、运营商记录、信用卡账单等分析服务。从开发到分析为客户提供一条龙服务。其数据分类包括征信风控、支付缴费和常用数据,而征信风投是其主打数据。由于这类数据具有专业性,因此收费相比其他API会稍微偏高。接口大多数是Apix自主开发,质量有保证,部分核查接口的高级版还能联网检测。
4.6HaoServiceHaoservice
用户可在上面直接购买商城、管理系统、UDP通讯源、发布系统等源码。总体来说比较适合公司或企业级应用的开发者。其主打生活服务类接口,主推基站、定位、地址解析、坐标服务等API,目前仅支持企业用户发布接口,因此接口的质量和稳定性有保障。
4.7通联数据
通联数据提供行情、沪深股市/期权、债券、基金、咨询、研究报告等API,十分适合金融类应用和金融咨询网站、平台的开发者以及从事金融行业的分析、业务人员。通联数据专注于金融大数据,上千的数据接口可以满足金融行业的大部分需求。数据有API和研报两种格式,接口来源于自主研发或恒生聚源、九次方大数据、华通人、朝阳永续、中诚信资讯、巨灵财经等企业,质量可靠、稳定、安全。金融数据服务体系完善,与公司其他几款产品打通,为用户提供一站式金融服务。
4.8数说聚合
数说聚合跟上面的数据API不同,面向的客户不只是大数据应用开发者,对互联网数据有强烈需求的各行业分析师、业务人员、运营人员同样可以通过数说聚合拿到你们想要的数据。数据覆盖范围十分广泛,包括国内社交、新闻、电商、互联网垂直领域等多平台多维度的数据。用户可以通过接口调用、文件下载等方式获取数据。接口完全自主研发,质量、稳定性十分有保障,且支持个性化定制。目前只面向企业用户。
4.9 Datasift
Datasift的性质与数说聚合相似,其数据基本覆盖国外主流网站,包括Facebook、Tumblr、Google+、YouTube、Instagram等等,且提供数据分析服务。无论从产品的使用还是服务,都给用户不错的体验。来源于国外站点的数据质量也很好,不过可能是服务器在国外的原因,响应会有明显的延迟;而国内站点数据的话,小编曾经在datasift购买微博数据(当时在国外无法通过国内公司购买微博的数据),数据质量只能说一般。其业务目前暂未向国内市场开放,只能通过特殊途`径购买。
5API共享生态
单个产品对行业产生的价值是非常有限的,而开放技术、数据和服务,能被众多应用使用,从而使价值最大化,形成共享生态。
5.1开发
共享服务平台为开发者提供了一整套的APP的开发框架,从而可以更快的完成一个行业APP的开发工作。使用框架中提供的模板,就可以打包生成开发框架,方便用IDE做二次开发。
API接口模型基于广泛应用的REST API设计,通过统一的接口描述文件实现了对接口人机可读的描述。充分考虑行内接口交易设计,按照面向操作的维度进行定义。API对传统的REST API进行了演进,充分保留了灵活、轻量的特点,避免了其设计不明确、不同理解的不同实现以及面向资源不够灵活的不足,制定了更适合行内系统的标准接口,实现了轻量统一的接口模型。
API接口充分保留了REST风格精华,采用HTTP协议与JSON格式报文,屏蔽了传统REST理念中不明确、不统一带来的多种接口实现方式,形成了简单、高效、轻量级的统一模型。API的接口模型分别对通讯协议、报文编码格式、数据格式、数据类型、报文结构、URI、多版本以及错误处理方面进行了规范。应用开发符合行内服务方接口规范(HTTP-API)的服务。
5.2发布
API 创建完成后,就可以开放 API 服务了。可以将 API 发布到测试或者线上,通过访问域名来调用指定环境中的 API,进行测试。API 就可以在共享服务平台上架,供其他开发人员调用。还可以将 API 授权给合作伙伴的 APP,供其调用。
使用向导模式生成数据API简单且容易上手,通过产品界面进行勾选配置、填写API基础信息,配置API参数即可快速生成API。
5.3使用
想调用API,需要进行下述操作。您要调用API,需要以下三个基础条件。
API:您即将要调用的API,明确API参数定义。
应用:作为您调用API时的身份,有AppKey和AppSecret用于验证您的身份。
API和APP的权限关系:APP想调用某个API,需要具有该API的权限,这个权限通过授权的机构或者功能来建立。例如阿里通过api市场的购买,来授权某应用或者app调用上架商品api的权限。其交易模式和天猫类似,购买不同类型的API有不同的价格,然后通过商品的描述可以知道API的请求示例、返回示例等,并且通过客服获得技术支持。
5.4监控
通过提供 API 网关的 API 的流入流量、流出流量、响应时间等监控数据,获取API网关服务的使用情况。开通API 服务后,监控自动开始对其监控,监控的 API 页面即可查看监控详情。还可以对监控项设置报警规则,以便数据异常时收到报警信息。
6总结
共享服务作为面向服务架构的核心,本质上是一种粗力度,松耦合的服务架构,核心价值就是服务重用,共享服务其的主要特性:
面向服务的分布式计算。
服务间的松散耦合。
支持服务的组装。
服务注册和自动发现。
以服务契约方式定义服务交互方式。
而一个好的中台就是需要提供共享的服务,避免重复的功能建设和维护带来的成本浪费。基于共享服务体系建设的共享服务平台,原生就将相关业务领域的业务功能和数据做了含好的统一。同时,共享服务平台也是培育业务创新的土壤,赋予业务快速创新和试错能力。原本的开发流程可能会非常的复杂漫长,而基于共享服务体系的开发可以做到快速的接入原有的共享服务,自己本身只需要关注核心的不同的业务开发即可。同时,由于资源的集中化,在共享服务中心,可以更好的做到大数据分析,营销。帮助前台业务部门进行数据的分析提供。