选择API管理器时要考虑的9个项目
我的爱好之一是摄影,当我购买第一台相机时,它是一台紧凑型相机。 我很快意识到并体验到我需要一台反光照相机(SLR),因为分辨率,速度和质量要好得多。 直到真正使用该产品,我才意识到这一点。 几年后,我再次发现我没有经常使用相机。 怎么会这样 因为相机很大,而且不时随身携带。 然后,我读到了一个系统相机,它的优点是体积小巧,但您仍然可以切换镜头。 我从不后悔自己的选择,因为在当时,这似乎是最好的选择。 如今,有很多具有许多可能性和规格的相机。 选哪一个? 这取决于很多因素以及您想使用相机做什么,例如Portret,风景,运动和街头摄影。
选择软件应用程序(在本例中为API管理器)时也是如此。 我认为有3种选择产品的选项:
1.随便吃吧,选择一个
您认为自己知道自己为自己决定,但是潜意识已经为你决定。 随心所欲
2.试用期
在这种情况下,您将试用一个产品几个月。 以您认为和开始使用的方式体验您真正需要的功能
3.彻底调查能力
开始收集需求的轨迹,做长名单,做短名单,安排演示,对产品进行评级,选择最合适的产品,安装和配置产品,定义围绕产品的管理并开始使用它。
与相机的区别在于(大多数时候)您是唯一要决定的人。 在选择软件的情况下,您可能会受到法规的束缚,并且许多其他人有不同的感受和含义。 如果您需要选择选项3,则本博客将为您提供10类要考虑的要求。
相机具有几个重要组成部分,例如机身本身,光传感器和镜头。 API管理器还具有以下不同的逻辑组件:
API发布者
描述API,定义策略并将API发布到网关的组件
API网关
API网关是运行时组件,将处理API调用。 它将验证为API定义的策略,它是保护通往后端系统的网关的最重要组件。
API门户
消费者可以在其中搜索,测试,阅读有关文档并订阅API的组件。
API分析
用于存储有关API使用情况,计量和获利能力的数据的组件。
那么,选择API管理器时需要考虑的10类需求有哪些? 开始了
1 – API定义
大多数API管理器将支持合同优先范式。
您是否需要使用编辑器(例如Swagger(OpenAPI),RAML或专有格式)定义API的功能?
您是否需要导入现有的API文件? 导入WSDL?
添加文档? 您想要支持哪种格式来添加文档?
是否要连接到其他内容管理系统?
2 – API网关
您需要用于内部和外部使用的单独网关吗? 例如,如果安全策略对于外部使用更加严格,或者内部流量的性能必须不同,那么这可能会引起关注。
您是否想要水平可扩展和中央受管网关?
您是否需要比功能强大的兄弟网关更分散的微型网关? 微网关可能对微服务架构感兴趣。
您是否需要中介功能,还是使用其他产品来进行中介?网关是否仅用于传递消息并仅检查策略?
您要支持哪些协议? HTTP还是JMS,MQTT,Websockets或AMQP?
3 –部署
部署可能性是产品的重要功能。 有几种可能性:云(SaaS和/或自己的DC),本地,混合。
您是否想拥有不可知论的灵活性? 因此,可以在Google Cloud上部署可能性,但是能够迁移到AWS或Azure?
在OpenStack,Apache Stratos或Docker容器上部署可能性?
另一个重要方面是组件是否可以分别部署和扩展。 网关可能具有除API门户之外的其他可伸缩性要求,并且还具有其他可用性和安全性要求。 API管理器产品可以支持这种部署选项是前提条件。
产品如何处理补丁和升级? 是否需要关闭组件或是否可以在零停机时间内进行滚动升级? 请注意,这对于网关组件比对门户和发布者组件更为重要。
您需要哪种身份验证/授权?
您是否需要连接到内部IAM,或者甚至需要连接到外部IAM?
您是否需要像OpenID和Facebook这样的社交身份验证功能。
您是否需要多租户支持,以便您拥有自己的用户和访问权限,从而获得清晰独立的隔离环境。
如果使用外部数据库存储,则要支持哪个数据库。
4 –政策
- 政策分为几类:
- 流量/路由策略(即缓存和费率/配额)
- 调解政策(数据映射)
- 安全策略(注意:这些在安全性部分中进行了描述)
- 扩展/自定义政策
接下来要考虑的一些功能:
- 如何管理政策? 它们是否在API发布者中进行集中管理,并且可以动态更新吗?
- 策略是否可以从外部存储在配置管理工具中并集成在CI / CD街中?
- 政策的粒度是多少? 例如:在**,订户,应用程序,产品,api,api方法上。
- 添加自定义策略是否可能且容易。
- 您是否需要诸如数据和协议转换之类的中介策略,还是由体系结构中的另一个功能组件完成的?
5 –分析
API管理器的功能之一是有关API的指标。 您可以考虑:
- 每个订阅,应用程序或API的API使用情况
- API延迟
- API响应时间
- API错误
- 服务水平协议
- 安全
以下是分析分析需求时可以考虑的功能列表:
- 某些产品将具有现成的仪表板,这些仪表板是动态更新的。 有些仅具有可以实现自己的报告的日志。
- 您需要货币化功能还是使用自己的机制来实现这一功能。
- 是否可以定义自己的自定义仪表板,这是一件容易的事。
- 是否可以导出您的分析数据以及哪种格式(例如CSV,XML,PDF,Word)。
- 是否可以自动将数据导出到datalake或第三方分析(如Splunk的或谷歌分析)。
6 – API门户
API门户是API开发人员和使用者的前端。 可以找到,测试和订阅API。 实际上,您的商店才是进入API世界的入口。
- 门户是否应可定制为您自己的品牌主题。
- 合作伙伴,公共和内部API的访问控制和可见性应该是什么。
- 在某些重要事件发生时是否应该添加自己的自定义流或挂钩,例如必须先批准订阅才能使用它,或者必须采取一些特殊措施以防创建新的应用程序或产品。
- 您是否需要社区支持,例如讨论表和常见问题解答,消费者可以在此互相帮助并提出问题。 或者在使用API时遇到问题时输入问题报告。
- 您想让沙盒测试API有多花哨?
- 为各种语言(例如python,nodejs,.net或java)生成客户端代码。
- 您是否需要连接自己的内容管理系统,例如Office 365。
- 如果您需要多语言支持,国际化也可能是要考虑的重要方面。
- 搜索功能应该是什么,仅基于标签或文本内容,还是需要更高级的功能,例如基于早期订阅的提案。
7 –产品
产品的价格当然也很重要,但是还有其他一些要考虑的重要因素(我认为更重要):
支持如何? 您所在的国家/地区有支持吗,他们会说您的语言吗?
您所在国家/地区的客户基础如何,以便您也可以向这些客户学习并寻求帮助。 他们已经在产品方面具有实践经验,因此可以指出缺陷所在。
他们是否对产品有良好而清晰的愿景,或者即将结束?
您当然也可以查看Gartner和Forrester报告,但是本地支持对您的公司至关重要。
8 –安全
购买API管理器的关键方面之一是组织的数据和服务的安全性。 关于这一点,有很多要读的东西,所以我只提及其中的一些。
您想要哪种令牌支持,例如OAuth 2.0,OpenID,普通**。
您想如何保护您的后端,例如双向SSL,基本身份验证,有效负载加密以具有端到端数据安全性。
与您的内部IAM和/或外部IAM系统集成。
SAML令牌形式的单点登录。
基于角色的访问,例如XACML或OAuth 2.0范围。
IP的黑白列表,以便只有IP和域的显式集合才能访问API。
安全**和身份也需要受到保护。
以JWT形式支持联合身份。
如果解决方案是基于公共云的,则v*n连接到您的IT服务器。
该产品针对大型有效载荷,DDOS攻击和SQL注入提供了安全保护。
是否需要对产品进行认证并符合安全标准,例如PCI DDS,HIPAA,SOC1和SOC2。
9 –运营
列表上的最后一项是产品的操作方式。 您是否需要对API进行实时监控,并在发生情况时主动向其发出警报。 示例资源不足,API不再可用,延迟变得太高,无法满足SLA。 您是否需要在API状态更改时通知用户,例如API将被弃用或已过时。 什么是灾难恢复功能和相应的RTO。
结论
选择API管理器时,您需要考虑很多事项,并且可以根据需要使其变得复杂。 从跟随您的感觉到广泛的调查和分析轨迹。 选择并执行组织内必要的工作。
请注意,API管理器之旅并不止于此。 当您选择相机时,就必须开始使用它,并开始体验如何在不同情况下使用其功能。 如何管理照片以及如何设置整个照片项目。
您还需要围绕API定义治理流程,但这是一个完全不同的故事。
请随时在此博客上提供反馈,或者在有疑问和意见时或者在我可以帮助您完成该过程时与我联系!
翻译自: https://www.javacodegeeks.com/2019/03/items-conside-selecting-api-manager.html