怎么搭建弹性可扩展的之前

介绍

怎么搭建弹性可扩展的之前,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

基本概念

怎么搭建弹性可扩展的WebAPI

常见的WebAPI架构如上图所示,主要包括客户端(浏览器),服务器、数据库,WebAPI由服务器提供,同时服务器要完成负载均衡,登录鉴权的相关操作。

当客户端流量快速增大时,服务器端只能通过水平扩展加机器的方式来增加提高服务能力。

这种常规模式主要有两点局限性:

<李>

技术同学除了开发业务代码,有大量的服务器运维成本,来保证服务的稳定性,可用性,技术同学要花费很多时间进行运维工作,占用开发时间,降低项目研发效率。

<李>

流量突然增加时,需要水平扩展加机器,弹性的响应能力差,扩容速度往往要数十分钟,无法实现秒级极速扩容,导致一段时间内的服务能力不足。同时当流量变少时,难以做到及时缩容,造成机器的成本浪费。

怎么搭建弹性可扩展的WebAPI

基于函数计算的WebAPI架构如上图所示,与常规的WebAPI架构相比,客户端和数据库未发生变化,但服务器变化巨大,主要体现在:

<李>

之前需要开发团队维护的路由模块以及鉴权模块都将接入服务商提供的API网关系统以及鉴权系统,开发团队无须再维护这两部分的业务代码,只需要持续维护相关规则即可。

<李>

在这个结构下,业务代码也被拆分成了函数粒度,不同函数表示不同的功能。

<李>

我们已经看不到服务器的存在,是因为Serverless的目的是让使用者只关注自己的业务逻辑即可,所以一部分安全问题,资源调度问题(例如用户量暴增,如何实现自动扩容等)全都交给云厂商负责。

<李>

相对于传统项目而言,传统项目无论是否有用户访问,服务都在运行中,都是有成本支出,而Serverless而言,只有在用去发起请求时,函数才会被激活并执行,且会按量收费,可以实现在有流量的时候才有支持,没有流量的时候就没有支出,相对来说,成本会进一步降低。

开发流程

1。登录函数计算控制台,创建应用

怎么搭建弹性可扩展的WebAPI

可以通过两种方式来创建应用,如果是已有网络的项目,可以选择上图中的第一种方式:“常见网络应用”;对于新项目则推荐使用第二种方式:“基于模板创建应用”。我们这里使用模板方式,选择基于Python的网络应用。

模板可以当做应用脚手架,选择适合的模板,可以自动完成相关依赖资源的创建,如角色,OSS,域名网关等,降低开发成本。

2。新建函数

怎么搭建弹性可扩展的WebAPI

在应用下,创建函数,我们是开发之前,所以选择“HTTP”函数,这种函数会将指定的HTTP请求作为触发器,来调度对应函数的执行。

函数新建好之后,是个返回helloWorld的演示,我们在此基础上来开发我们的业务逻辑。

怎么搭建弹性可扩展的WebAPI

首先介绍下上图代码中函的处理器数,这个函数是入口函数,HTTP触发器接收到调用后会通过这个入口来启动整个函数。函数有两个入参,环境和start_response:

<李>

环境

环境中主要包含两部分内容:HTTP请求的入参和函数执行上下文fcContext,函数上下文参数中包含一些函数运行时的信息(例如,请求id ,,临时AK ),您在代码中可以使用这些信息。信息类型是,fcContext。

<李>

start_response

该参数主要用于生成HTTP请求的反应。

3。配置触发器,绑定域名

怎么搭建弹性可扩展的WebAPI

在新建函数时会自动创建一个http触发器,这个触发器的路径是“aliyun.com”的一个测试路径,只能用于测试,真实的应用需要通过自定义域名将真实域名与函数绑定,这样访问指定域名时,对应函数就会被触发执行。

怎么搭建弹性可扩展的之前