从软件行业诞生之日起,技术和业务总是相辅相成。业务的创新促进着软件架构从最早期的单体架构、分布式架构,转变到了如今火热的微服务架构,以及云时代下诞生的Serverless架构。API网关作为单体应用和微服务架构中流量的入口和API的管理者,对于Serverless架构来说依然扮演着重要的角色。

什么是Serverless

Serverless架构即“无服务器”架构,是云计算时代一种全新的革命性的架构模式。其核心思想是用户无须关注支撑应用服务运行的底层服务器的状态、资源(如CPU、内存、磁盘及网络)和数量,软件应用正常运行所需要的计算资源由底层的云计算平台动态提供。例如AWS的Lambda,其作为一种计算服务,可根据时间运行用户的代码,无需关心底层的计算资源。Serverless的出现为企业带来了巨大的商业价值:

  • 降低成本:为了应对可能出现的业务高峰,我们必须提前购买更多的资源,比如网络、硬盘、CPU等,但是这些资源很多时候会被闲置,无法得到充分利用。而在Serverless架构下,服务按照云计算pay-as-you-go原则按需收费,节省了使用成本。
  • 简化运维:Serverless架构使软件服务和服务器之间实现了解耦,开发人员只需专注自身业务,无需关心底层硬件,大大简化了运维工作。
  • 快速开发:在Serverless架构下的应用功能由一个一个的无状态函数实现,因此降低了功能模块之间的耦合度,从而大大提高了软件开发效率,缩短了产品的上市时间。
  • 快速迭代:通过Serverless架构,企业可以快速开发出各种应用原型供用户使用,进行低成本试错,从而增强企业创新能力。

为什么Serverless需要API网关

Serverless架构提供的能力大多数时候都是通过API的形式表现出来。对于服务提供者,需要在定义API时绑定自己开发的函数;对于服务调用者,通过API发起对函数的调用,获得执行结果。

而在开发过程中服务提供者该如何对数量庞大的API进行管理,如何将这些API高效、安全的开放给服务调用者呢?答案是——API网关。下图是API网关作为API调用的入口,最终触发函数的调用过程。API网关通过日志服务、云监控、调用链等功能很好的保证了函数调用的可追踪性。


在帮助您的企业实现Serverless架构过程中,京东云API网关能为您提供丰富的产品功能:

1、API管理

API网关提供了API生命周期管理的功能,包括API创建、发布、编辑、删除等,当API发布之后,用户(服务提供者)还可以调试自己的API。对于函数服务,只需要在编辑API时,把服务的后端指向Function Service即可,下图展示的是在京东云API网关控制台如何指定Function后端的过程。

同时,在Function控制台就可以开发函数,并进行调试。下图是函数编辑的界面。

2、保证API调用的安全性

API网关的身份认证机制保证了用户合法性,签名算法保证了数据不会被篡改,访问授权保证了用户的调用是可控的,WAF、IP白名单等功能有效防止了恶意的访问。

3、协助排查问题,记录函数服务的调用情况

创建完函数服务后,每个对API的调用请求经过API网关,网关都会产生对应的日志,您可以从日志中查询到当前调用了什么函数以及函数执行的时间,从而为问题排查提供了有效依据。

4、提供SDK和文档

API创建完成后,用户只需要下载SDK及文档,便可以快速调用API。

通过API中心帮助API提供者获利

京东云API中心是实现API商品化的媒介平台,您可以通过京东云API网关将API发布到的API中心供其他用户购买使用,使用者根据调用次数或者流量支付费用,从而帮助您完成API的商品化和变现过程。

触手可及的Serverless

京东云API网关和函数服务的结合使用,将能够使您的企业和业务与Serverless再近一步,变得触手可及。而未来,京东云API网关还将提供基于微信小程序、京东小程序的鉴权方式,同时对外开放API中心,促进API商品化,为您在企业Serverless的进程中提供尽心尽力的服务,帮助您的企业和业务更好的利用云计算的浪潮提高效率,实现价值!

点击【阅读】,了解更多API相关信息

欢迎点击“京东云”了解更多精彩内容

最新文章

  1. 防止SQL注入攻击
  2. jiajianhao
  3. BASH比较大小
  4. f.lux for Linux安装
  5. Fedora 25 Alpha版本今天发布啦
  6. C#使用二叉树算法设计一个无限分级的树表
  7. JS和CSS关于大小写的区分
  8. xvfb启动PyQt4程序报Unable to load library icui18n错误
  9. Wix 安装部署教程(三)自定义安装界面和行为
  10. Crash日志符号化
  11. CSS设计之页面滚动条出现时防止页面跳动的方法
  12. SpEL快速入门
  13. zlog小试(C语言日志工具)
  14. DBSNMP和SYSMAN用户初始密码及正确的修改方式
  15. python中with学习
  16. c语言优化
  17. mysql中的union和order by、limit
  18. MySQL命令 导出 数据和结构
  19. windows安装nginx并存放静态资源
  20. 由于php环境时间与北京时间相差7个小时

热门文章

  1. 全面理解Java中的String数据类型
  2. P1091 N-自守数
  3. firewalld学习-zone的使用和配置
  4. mysql创建数据库并设置字符集编码
  5. 【LeetCode】加油站
  6. mysql悲观锁处理赠品库存超卖的情况
  7. 安卓平分位置layout_weight学习记录
  8. vue数据变化后页面刷新
  9. Atcoder比赛副站
  10. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons)