课时10:典型案例3:十分钟搭建弹性可扩展的 Web API(一)

简介: 典型案例3:十分钟搭建弹性可扩展的 Web API

Serverless AI训练营:课时10:典型案例3:十分钟搭建弹性可扩展的 Web API(一)

课程地址:https://developer.aliyun.com/trainingcamp/1eeaedf056f14ad98e9986c31068e939?spm=a2c6h.26142516.J_2566289780.1.37c67cbd7bCsFs


课时10:典型案例3:十分钟搭建弹性可扩展的 Web API(一)


内容介绍:

一、基本概念

二、WebAPI的开发流程

三、操作演示

 

一、基本概念

1. 基本概念中介绍了基于函数计算的 WebAPI 和普通 WebAPI 有什么区别并有哪些优势

2. 开发流程中介绍了如何在函数计算的控制台进行 WebAPI 的开发

3. 操作演示中会根据实例演示函数计算 WebAPI 的开发过程

image.png

常见 WebAPI 的架构如图所示,包括客户端、服务端、数据库,WebAPI由服务器提供,同时服务器还要完成负载均衡、登录健全、日志监控等相关操作。

当客户端流量快速增加时服务端只能通过水平扩展加机器的方式来增加自建的服务能力,这种常规模式主要分析两点局限性:

1. 技术同学除了开发业务代码,有大量的服务器运维成本,来保证服务的稳定性、可用性

2. 流量增加时只能水平扩展加机器,响应速度慢、成本高。

image.png

基于函数计算的 WebAPI 架构中与常规的 WebAPI 架构相比,客户端数据库未发生变化,主要的变化体现在服务器端,主要体现有:

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

2. 在这样的结构下,服务器端的业务代码被拆分为一个个的函数,不同的函数就代表了不同的功能。

image.png

上图中可以看到,在函数计算的 WebAPI 架构中已经没用了服务器的存在这是因为 Serverless 的目的就是为了让使用者只关注自己的业务逻辑即可。也就是每个业务逻辑对应的函数,所以像安全问题、资源调度问题全部交给云厂商来负责。

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

 

二、WebAPI的开发流程

image.png

第一步登录控制台并创建应用。创建应用的方式有两种:

1. 如果现有WebAPI应用,直接创建应用将代码打包上传。

2. 通过模板来创建应用,模板可以理解为相当于一个脚手架,可以快速的帮助完成一些基础配置,比如说权限、角色、网关一系列的配置。

image.png

完成创建应用后就是在应用下创建函数,主要支持事件函数、HTTP函数、模板函数,本次选择HTTP函数

image.png

创建完函数之后就开始具体开发业务逻辑,业务逻辑开发完之后就要配置一个触发器。因为是WebAPI的方式,所以触发器就是HTTP的请求,在这里可以指定域名来设定。

image.png

最后可以通过函数计算的监控来进行调试,以及服务上线之后使用量的监控情况

 

三、实际演示整个WebAPI的开发流程。

首先进入管理控制台,选择应用中心,基于模板创建应用

image.png

选择基于 Python 的应用,配置并部署,上述提到通过模板方式来创建应用相当于一个脚手架,会把底层所依赖的资源创建好,只有基于资源去开发函数就可以,可以提高开发效率。

image.png

创建 HTTP 函数,选择 PythonAPI,语言选择 Python3.0

请求方式选择 GET

相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
消息中间件 Java 微服务
构建可扩展的Java Web应用架构
构建可扩展的Java Web应用架构
|
存储 缓存 负载均衡
使用Java构建可扩展的Web应用
使用Java构建可扩展的Web应用
|
存储 前端开发 JavaScript
探索Django:打造高效、可扩展的Web应用(中)
探索Django:打造高效、可扩展的Web应用(中)
193 1
|
SQL 关系型数据库 数据库
探索Django:打造高效、可扩展的Web应用(上)
探索Django:打造高效、可扩展的Web应用(上)
270 0
|
缓存 监控 NoSQL
使用Elixir进行可扩展的Web服务开发
【5月更文挑战第30天】本文探讨了使用Elixir进行可扩展Web服务开发,Elixir基于Erlang/OTP,提供并发、分布式处理和容错能力。Phoenix框架助力构建实时Web应用,支持WebSocket。实现可扩展性涉及并发处理、分布式架构、数据库优化、缓存策略及监控告警。实践案例显示,Elixir和Phoenix能有效应对高并发场景,适用于构建高性能Web服务。
|
JavaScript 前端开发 搜索推荐
blog-engine-09-nuxt 构建快速、SEO友好和可扩展的Web应用程序变得轻松
这篇内容介绍了Nuxt.js,一个基于Vue.js的服务端渲染框架。Nuxt.js的特点包括:服务端渲染提升首屏加载速度和SEO,文件系统为基础的路由,自动代码分割,强大插件系统和易于部署。安装步骤涉及安装Node.js,使用命令创建和初始化项目,启动开发服务器。使用Nuxt.js涉及创建页面,添加布局组件,配置路由以及构建和部署应用。Nuxt.js的优势在于其SSR、Vue.js生态、高性能和易用性,但也有服务器要求Node.js环境和对新手的学习曲线挑战。
|
XML JSON API
通过Flask框架创建灵活的、可扩展的Web Restful API服务
通过Flask框架创建灵活的、可扩展的Web Restful API服务
470 1
|
缓存 关系型数据库 API
后端开发:构建高效、可扩展的Web应用程序的关键
后端开发:构建高效、可扩展的Web应用程序的关键
|
设计模式 缓存 前端开发
单页应用的架构与设计:打造高效可扩展的 Web 应用(下)
单页应用的架构与设计:打造高效可扩展的 Web 应用(下)
单页应用的架构与设计:打造高效可扩展的 Web 应用(下)
|
缓存 JavaScript 前端开发
单页应用的架构与设计:打造高效可扩展的 Web 应用(上)
单页应用的架构与设计:打造高效可扩展的 Web 应用(上)
单页应用的架构与设计:打造高效可扩展的 Web 应用(上)