一 : 用友iUAP马太航:开放平台如何管理企业API
摘 要:API管理是开放平台最重要的功能,开放平台对API的管理已经不能局限于请求的调用与转发,而应该针对企业API的共性需求,提供一套完善的管理系统。
API开放平台是企业互联网化的产物,企业将自身业务能力以API方式开放出来,并通过开放API与开发者建立和维护关系。云开放平台聚合各类API,并对API进行统一管理。
API管理是开放平台最重要的功能,开放平台对API的管理已经不能局限于请求的调用与转发,而应该针对企业API的共性需求,提供一套完善的管理系统,这套管理系统应当包含以下要素。
1. 定制化接口调用
企业中不同部门、不同开发人员,由于自身技术或业务需求等原因,开发的API可能采用不同的协议、数据格式,而协议和数据格式的复杂性,必然会增加开发者使用API的成本。
API开放平台应当集成API适配器,通过适配器对请求做统一的适配处理,并允许开发者自定义请求协议和数据格式,这样可以让开发者无需关心API底层的实现,按照自定义的方式来使用API。
2. 规范化地址映射
开放平台的API管理中,所有的请求都经过开放平台的网关进行转发,因而地址映射是一个必须条件,这里还有两项优势:一是规范化请求地址,二是隐藏原始地址以保证安全。
规范化地址映射,目前有两种可选方案,一种是根据配置的API服务名、版本号、资源名自动生成格式化的地址,这种方案格式化程度高,可以保证所有API统一规范,利于开发者的使用,但配置繁琐,灵活度不够高;另一种方案是由API发布者对每一个API的资源自定义映射地址,这种方案灵活度高,但规范化不强。
3. 应用虚拟化
应用虚拟化是指将现实中的应用转移到平台上,使用应用来订阅并使用API,这是考虑到开发者的实际使用场景,并针对运维的需求所做的实现。当开发者有两个应用A和B,A和B都需要使用接口C,可以使用A和B分别订阅C,在应用A中使用接口C时,使用应用A订阅所产生的认证信息,B也同样如此。这样做有两个优势:一是可以对A、B的调用分别做控制;二是可以统计到A、B分别对C的调用情况,以做进一步的数据分析。
4. 私有化API管理
API私有化是企业API管理中经常会遇到的场景:企业内部的API只对部分用户开放(一般为企业内部开发人员或合作伙伴)。API私有化的解决方案有很多,目前最成熟的方案是依托于用户域的API私有化管理。用户域是指将有某些共性(比如属于同一个公司)的用户划为一类,并对该类用户提供特定的特殊权限。用户域应用到API管理中,我们可以将某个公司的用户划到一个用户域下,该公司私有化API发布的时候,选择只发布到该用户域下,这样只有该用户域的用户才能看到并订阅这些私有化的API。
5. 特殊资源管理
资源是API细维度的划分,通常每个API会拥有多个可调用的资源。在某些场景中,基于安全的考虑,发布者并不希望所有的资源都开放给开发者,这就需要对一些资源做特殊的权限限制。比如某个公司的用户信息管理API,里面有用户普通信息、用户隐私信息(包含身份证信息)等资源,其中,用户普通信息可以开放给公司所有内部开发者,但用户隐私信息,只能开放给限定的几个开发者,这个时候就需要在资源层级对API的使用做调用限制。目前有一种可实现的方案:要使用调用控制的资源默认不开放,开发者可以向发布者申请权限,发布者审核通过后,开发者才可以使用该资源。
6. 生命周期管理
生命周期管理在API的管理中是尤为重要的功能,以满足API发布和升级的需求。一个完整的声明周期,应该包含:创建、测试、发布、过时、停用,平台应当对不同生命周期的API进行不同的控制,比如对于创建和停用的API采取访问限制,对测试API做详细的测试分析,对过时的API使用进行过时提示。
7. 在线文档和SDK管理
开放平台使用在线文档,有两项优势:一方面无需发布者使用其他方式来管理文档,降低了发布者的API运营成本;另一方面,开发者无需其他操作即可查看API文档,方便开发者使用API。
SDK管理针对非即用类的API,有很多API需要使用SDK来调用,这时候就要求平台提供SDK的管理和下载功能。
以上是API开放平台应具有的基础API管理功能,与此同时,还应围绕API管理提供各种周边服务,如:统计分析、用户域管理等。另外,开放平台在管理API的过程中,要灵活地根据发布者和使用者双方的需求,即时地对API管理系统做优化。
二 : 用友iUAP互联网运维平台研发实践分享
摘 要:“做专业的奋斗者”,这是用友研发人的一种情怀。iUAP运维平台的研发团队,可以说是一群走在企业互联网技术前端的人,因为他们不仅要深切了解用户的互联网开发和运维需求,还要懂得当前最先进的互联网技术。
近期,在用友公司内部的研发干部与专家交流会上,提出了“做专业的奋斗者”的理念。要求用友员工尤其研发人员,要积极拥抱企业互联网,做专业的奋斗者。
这是用友人的一种情怀,那么在实际的研发工作中,他们是如何来体现这种“专业”情怀的呢?今天就以用友iUAP运维平台的研发团队为例,分享下他们在开发实践中遇到的问题,以及是如何解决的。
iUAP运维平台是iUAP企业互联网开放平台的一部分,旨在提供完整高效、可持续的运维解决方案。它以DevOps为理念,能够促进开发和运维工作紧密合作,保证软件产品和服务按时交付,同时为交付应用的高可用性提供强有力的保障。
iUAP运维平台的研发团队,可以说是一群走在企业互联网技术前端的人,因为他们不仅要深切了解用户的互联网开发和运维需求,还要懂得当前最先进的互联网技术。
他们也都做到了用友对“专业的奋斗者”的要求:
第一,做专业奋斗者,不畏艰难,勇于攻关、有突破精神;第二,做用户之友,做“实用、先进、好用”的产品;第三,面向客户,紧贴一线(项目、伙伴、实施/服务/销售人员);第四,快! 有执行力、务实、高效。
首先,他们对企业互联网化有着自己的理解:
传统模式大多是在卖东西,而互联网模式是在卖情怀。传统的软件模式,把软件卖给客户,经过实施人员的落地,上线运行稳定以后生命周期基本就结束了。互联网模式的不同之处在于我们需要像建设社区一样,通过大数据等手段不断的运营,让用户来这上面愉快的使用。这种模式下,对于码农来说,很多时候需要既要懂后端、又要懂点前端、最好懂点产品、甚至要懂运营,每个人需要随时做好全栈的准备,做一名万能的全栈工程师。
其次,技术方面,要以开放的心态,主动拥抱开源。像小马过河那样,通过不断的试错,进行快速的小版本迭代。
传统的模式是验证这个方案对不对,互联网的模式是看看这个方案错没错,有着微妙的不同。我们需要做的就是思维的转变,大胆联想、大胆尝试各种不同的思路解决问题。
第三,产品推进方面,当面临用户不能很快理解产品的精髓与技术技巧时,iUAP运维团队用各种最佳实践来慢慢引导和推进。
由于iUAP运维平台产品是偏技术的平台,发第一版时,面临最大的问题就是如何让别人用这个产品?如何获得认可?
有人会说,那就讲高大上的技术,但其实,用户对于很多天花乱坠的技术是不一定买账的,他们更关心落地问题。甚至很多用户安装产品之后,由于没有理解其中的精髓与技巧,不会用,便会对产品产生质疑。
用友iUAP运维平台研发团队的对策是,赶紧做各种最佳实践,不再局限于纯技术的范畴。拿日志分析为例,将日志里面的各个字段都写好规则,抽取到索引库里面,然后做各种图表,统计PV、UV、流量、耗时、地域分布等,做给用户看,用户看了以后,感到原来是可以这样。然后就是把各种场景补全,日志用于分析上层的业务、监控用于可视化展现系统指标、APM用于代码深度性能分析,用数据说话,给出依据,慢慢让用户信服。
另外,面对太新的技术,比如iUAP运维平台用到的Docker,用户由于不熟悉,担心hold不住,于是存在一定的忧虑。在他们看来,还不如直接部署一个Tomcat靠谱,将war包直接丢上去,应用就可以访问了。
这种情况下,策略是在最短的时间内,根据用户习惯研发相应的方案,比如用原生的方式自动伸缩Tomcat、Elasticsearch、Zookeeper等中间件,让用户先用起来,再慢慢引导其他非关键业务,以Docker的方式部署,一点点的过渡和适应。
还有的客户,虽然不懂某些技术,但对于新技术的探索很热情,就需要帮助他们快速上手。
这就是现状,用户随时会出现各种状况,一方面需要研发人员用最佳的服务意识去将产品推进下去,同时需要我们将所有的最佳实践不断整理进产品,用代码去化解曾经的艰辛,保证未来的路更顺畅。
第四,要不断进行技术的创新与突破。
这里可以引入一个煤油灯的小故事。有个乡下人,在城里发现很多人都在用煤油灯,而他们在乡下用的却是更落后的照明方式。他觉得这是个很好的商机,于是就贩卖各种煤油灯到乡下卖,赚了很多钱。它以为未来几十年可以靠煤油灯为生了。但几年以后他发现城里人已经用电灯了,这时靠煤油灯活一辈子的念想也破灭了。
这个故事提醒我们要不断跟进新技术,不能局限现有产品停步不前,通过不断创新与突破,保证不落伍。比如iUAP运维平台用到了Docker、Mesos、Marathon、ElasticSearch等大量的开源技术,这些技术在国内相对较新,iUAP研发团队会到各种国内外技术网站和社区去学习,及时掌握新的技术点。同时,积极参与一些线上线下活动,开拓视野。
目前,用友iUAP运维平台目前已经发布了V2.01版,欢迎下载使用,保证能够让你的应用做到弹性伸缩、高可用。
下载地址:
本文标题:用友iUAP平台-用友iUAP马太航:开放平台如何管理企业API61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1