天猫超市|教你 4 步搭建弹性可扩展的 WebAPI

文章图片

文章图片

文章图片

文章图片
简介:本文整理自《Serverless 技术公开课》 , 关注“Serverless”公众号 , 回复“入门” , 即可获取 Serverless 系列文章 PPT 。
导读:本节课程主要分为三个部分 , 基本概念中介绍基于函数计算的 WebAPI 与普通的 WebAPI 的区别及优势;开发流程中介绍如何在函数计算的控制台进行 WebAPI 的开发;操作演示中会实例演示函数计算 WebAPI 的开发过程 。基本概念
常见的 WebAPI 架构如上图所示 , 主要包括客户端(浏览器)、服务器、数据库 , WebAPI 由服务器提供 , 同时服务器要完成负载均衡、登录鉴权的相关操作 。
当客户端流量快速增大时 , 服务器端只能通过水平扩展加机器的方式来增加提高服务能力 。
这种常规模式主要有两点局限性:
- 技术同学除了开发业务代码 , 有大量的服务器运维成本 , 来保证服务的稳定性、可用性 , 技术同学要花费很多时间进行运维工作 , 占用开发时间 , 降低项目研发效率 。
- 流量突然增加时 , 需要水平扩展加机器 , 弹性的响应能力差 , 扩容速度往往要数十分钟 , 无法实现秒级极速扩容 , 导致一段时间内的服务能力不足 。 同时当流量变少时 , 难以做到及时缩容 , 造成机器的成本浪费 。
基于函数计算的 WebAPI 架构如上图所示 , 与常规的 WebAPI 架构相比 , 客户端和数据库未发生变化 , 但服务器变化巨大 , 主要体现在:
- 之前需要开发团队维护的路由模块以及鉴权模块都将接入服务商提供的 API 网关系统以及鉴权系统 , 开发团队无须再维护这两部分的业务代码 , 只需要持续维护相关规则即可 。
- 在这个结构下 , 业务代码也被拆分成了函数粒度 , 不同函数表示不同的功能 。
- 我们已经看不到服务器的存在 , 是因为 Serverless 的目的是让使用者只关注自己的业务逻辑即可 , 所以一部分安全问题、资源调度问题(例如用户量暴增、如何实现自动扩容等)全都交给云厂商负责 。
- 相对于传统项目而言 , 传统项目无论是否有用户访问 , 服务都在运行中 , 都是有成本支出 , 而 Serverless 而言 , 只有在用去发起请求时 , 函数才会被激活并执行 , 且会按量收费 , 可以实现在有流量的时候才有支持 , 没有流量的时候就没有支出 , 相对来说 , 成本会进一步降低 。
1. 登录函数计算控制台 , 创建应用
可以通过两种方式来创建应用 , 如果是已有的 Web 项目 , 可以选择上图中的第一种方式:“常见 Web 应用”;对于新项目则推荐使用第二种方式:“基于模板创建应用” 。 我们这里使用模板方式 , 选择基于 Python 的 Web 应用 。
模板可以当做应用脚手架 , 选择适合的模板 , 可以自动完成相关依赖资源的创建 , 如角色、OSS、域名网关等 , 降低开发成本 。
2. 新建函数
在应用下 , 创建函数 , 我们是开发 WebAPI , 所以选择“HTTP”函数 , 这种函数会将指定的 http 请求作为触发器 , 来调度对应函数的执行 。
函数新建好之后 , 是个返回 helloWorld 的 demo , 我们在此基础上来开发我们的业务逻辑 。
首先介绍下上图代码中的 handler 函数 , 这个函数是入口函数 , http 触发器接收到调用后会通过这个入口来启动整个函数 。 函数有两个入参 , environ 和 start_response:
- environ
- start_response
3. 配置触发器 , 绑定域名
在新建函数时会自动创建一个 http 触发器 , 这个触发器的路径是“aliyun.com”的一个测试路径 , 只能用于测试 , 真实的应用需要通过自定义域名将真实域名与函数绑定 , 这样访问指定域名时 , 对应函数就会被触发执行 。
4. 日志与监控
在每个函数编辑页面 , 日志和监控服务 , 函数的每次执行都会生成唯一的 requestId , 日志中通过 requestId 进行查询 , 看到本次函数执行的所有日志 。
作者:萧起
【天猫超市|教你 4 步搭建弹性可扩展的 WebAPI】本文为阿里云原创内容 , 未经允许不得转载 。
推荐阅读
- 教你自制岩烧乳酪
- 教你做虎皮蛋糕上的虎皮,掌握2个技巧,保证起虎皮,做法很简单
- 不用油不用牛奶,教你做蜂蜜蛋糕,蒸或烤都可以,只需4种食材
- 春天来了教你几道好吃不油腻的家常菜,美味简单下饭,百吃不厌!
- 冬天到了,教你几道暖胃家常菜,营养健康,孩子营养不发愁!
- 春节过后请客吃饭教你几道美味特色的下酒菜,简单易学,味道超赞!
- 想吃点心不用买,教你在家做“驴打滚”,不用烤箱,软糯香甜!
- 家常炖老母鸡,不用炖3小时,教你一妙招,40分钟鸡肉软嫩入味
- 豆腐不要红烧了,教你做外脆里嫩的炸豆腐,家人吃到赞不绝口
- 想吃香蕉饼不要出去买,教你在家做,香甜松软又好吃,5分钟出锅
