关于后端:通过部署流行Web框架掌握Serverless技术

6次阅读

共计 7687 个字符,预计需要花费 20 分钟才能阅读完成。

简介:通过学习部署风行 Web 框架,如 SpringBoot,Express,Web IDE,让你把握 Serverless 函数计算架构和技术,领略弹性并发,高可用的益处。大家好,我是霍大侠,欢送来到我的小院,这个系列课程咱们通过部署风行 web 框架,来学习把握 serverless 的技术和架构。课程次要从实际介绍,实际演示,剖析详解三个大的章节来一步一步学习。大家好,我是霍大侠,这个系列课程咱们通过部署风行 web 框架,来学习把握 serverless 的技术和架构。课程次要从实际介绍,实际演示,剖析详解三个大的章节来一步一步学习。前言

 进入实验室 - 入手实际点击上面链接进入阿里云实验室:https://developer.aliyun.com/…

实际介绍视频学习 - 实际介绍 这里从 Serverless 演变;函数计算劣势;Serverless 利用场景 3 个方面来学校 serverless。

申明留神:本试验中应用的函数计算 FC,对象存储 OSS 是流量产品,域名服务是预购产品。会产生流量费用和购买费用。请依据本身状况谨慎应用。如产生费用,请自行承当。当然也能够纯正浏览学习应用。Serverless 演变

Serverless,函数计算(Function Compute)到底是什么?Serverless,又叫无服务器。Serverless 强调的是一种架构思维和服务模型,让开发者无需关怀基础设施(服务器等),而是专一到应用程序业务逻辑上。Serverless 也是下一代计算引擎。比方阿里云平台 Serverless 产品次要包含函数计算;Serverless 利用引擎 SAE;Serverless 工作流。所以你能够了解 Serverless 是一种架构思维。我认为 Serverless 的外围是函数计算,它是一个事件驱动的全托管 Serverless 计算服务,您无需治理服务器等基础设施,只需编写代码并上传,函数计算会为您筹备好计算资源,并以弹性、牢靠的形式运行您的代码。通常人们说的云函数也就是指 Serverless。

目前互联网风行的利用架构次要是从单体架构,到风行的微服务,和当初疾速倒退 serverless 架构。能够看到 3 种架构的一些特点,单体架构耦合度高,弹性,扩展性差;微服务改善很多,更灵便,然而运维学习老本也很高。serverless 通过事件驱动模式,具备弹性高可用等特点;包含按需付费;免运维都是其弱小之处。我置信随着技术一直的倒退,serverless 肯定是未来十分风行的技术架构。

咱们从这个阿里云官网介绍中能够看到 serverless 针对不同场景的不同状态。随着 FaaS 呈现的规范模板,付费的定制化 FaaS 模板,我置信也会逐渐倒退起来,兴许最终是通过低代码配置间接 AI 智能生成函数,让咱们刮目相待。Serverless 劣势

免运维:不须要治理服务器主机或者服务器过程。弹性伸缩:依据负载进行主动规模伸缩与主动配置。伸缩范畴零到无穷大。按需付费:依据应用状况决定实际成本。高可用:具备隐含的高可用性。另外云函数不能保留状态,然而能够通过其余计算服务配合来欠缺这个,比方用 redis 或者本地 cookie 能够保留用户状态信息。

Serverless 最外围的一个劣势就是丰盛的弹性策略,和灵便调用策略。咱们能够从图中看到,它能够灵便配置根底指标 CPU,内存,实例上上限等等。

函数计算同时能够联结云计算的大部分产品服务,造成非常灵活的,低耦合绑定,随用随拿。通过事件,http,触发器多种形式调用。这个官网流程图清晰的论述了函数计算的整个流程。

Serverless 利用

大部分行业都能够用 serverless 架构。比方游戏,在线教育,电商,SaaS 产品,小程序等等,通过外围函数计算和其余 serverless 产品造成弱小的反对。从这里咱们能够具体理解函数计算的利用细节。感兴趣的截图保留。

咱们最初来讲一个简略 web 网站案例。很多人有纳闷,云函数只是一个函数计算,相当于一个 API 接口,那我如果想联合数据库,存储和其余的性能应该怎么办?从这个简略的结构图大家能够看明确,云函数是须要配合各种云计算服务能力残缺的部署咱们的简单的应用程序。咱们能够通 CDN 服务来减速展示,能够通过 OSS 来存储文件资源。你也能够了解为云函数部署了你的网站代码,用 Redis 来保留用户的会话状态,重要数据寄存到 Mysql 或者 mongoDB 等等。如果须要队列,日志服务,咱们都能够通过平台提供的产品疾速接入,能够满足大部分罕用的应用程序。咱们接下来一步一步来学习。

通过实际介绍这个章节咱们学到了什么是 serverless,它的劣势和利用场景。serverless 技术架构还在疾速倒退,阿里云,华为云,腾讯云,亚马逊等都在倒退本人的 serverless 产品。如果下面内容有不适合的中央,还请大家给我评论留言,咱们一起交流学习。下一章,咱们来学习怎么在 serverless 上部署风行的 web 架构。实际演示视频学习 - 实际演示这一章咱们来开始实际,在这个章节咱们也是从 3 个方面来学习,先学习函数计算的产品性能;接着部署 web 框架 springboot;最初实际部署 nodejs 框架 express 的案例。

函数计算产品性能

废话不多说,先来看阿里云函数计算的性能都有哪些?申明留神:这里需登录本人阿里云账号开启函数计算服务,函数计算服务属于流量计费,有可能产生流量费用。请谨慎应用。如产生费用,请自行承当,也能够纯正浏览学习。1 登录阿里云网站,点击顶部登录,输出用户名和明码。

2 而后点击左上角产品,在产品服务中找到 Serverless 类别,点击上面的函数计算 PC,接着就能够看到函数计算的主面板。(如果没有开明服务的,间接批准开明即可。)

3 上面一步一步学习体验函数计算的产品性能。概览展现了整体函数计算的调用数据和运行环境。

咱们接着看菜单中第二项利用,我认为这个是一个很好的性能,极大的不便了用户的门槛,咱们能够通过这个性能,疾速创立本人的站点和利用。

利用蕴含了从模板创立和仓库导入 2 种形式,前面我会次要演示模板创立的案例。

仓库模式也能够从你的 github,gitee 等罕用仓库中拉取部署,这里不过多赘述。

什么是服务?服务是函数计算资源管理的单位。创立函数前必须先创立服务,同一个服务下的所有函数共享一些雷同的设置,例如服务受权、日志配置。从业务场景登程,一个利用能够拆分为多个服务。从资源应用维度登程,一个服务能够由多个函数组成。例如一个数据处理服务,分为数据筹备和数据处理两局部。数据筹备函数资源需要小,能够抉择小规格实例。数据处理函数资源需要大,能够抉择大规格实例。

函数计算的资源调度与运行以函数为单位。函数必须从属于服务,同一个服务下能够创立多个函数,这些函数共享一些雷同的设置,例如服务受权、日志配置,但彼此互相独立,互不影响。本文介绍函数的属性和运行环境,以及如何通过函数计算控制台创立、配置和删除函数。咱们能够创立服务后,在其上面创立函数,函数中具体代码就是你的业务场景的实现。能够从规范 runtime;平滑迁徙 web server;容器镜像;模板创立 4 种模式来创立。

这里展现的是咱们之前写过得一个抽奖大转盘云函数代码,次要是通过小程序调用云函数,云函数再调用 MongoDB 数据。因为当抽奖人多时候,须要很好的并发性,所以咱们采纳了 MongoDB 和云函数联合。让用户在抽奖时候没有任何卡顿景象,同时用户少的时候也能节约硬件费用,云函数很好的满足了咱们的需要。

工作其实就是治理异步函数的中央。提供了一个齐全托管的,开箱即用的,可观测敌对的大规模工作解决平台。当您上传代码包 / 容器镜像创立工作处理函数后,就能够提交、查看、进行和重试工作。也能够暂停 / 复原处理函数的执行。点击这里查看更多详情。

高级性能中,次要蕴含了监控,域名,弹性治理,层治理。监控大盘如图所示是整体数据的监控。域名很容易了解就是绑定本人的云函数利用,能够 Web 利用,能够是 API 接口。弹性治理是配置云函数的资源应用上线,避免费用过多。同时还能够配置最小实例,升高冷启动次数。层治理提供了公共依赖库,运行环境等等,函数之前能够共享,缩小代码包体积。其余更多功能中的审计日志,权限助手,还有工作流,利用引擎性能产品,这里也不在过多论述。感兴趣敌人能够在开发本人云函数时尝试一下。

什么场景须要应用自定义域名?当您的函数应用 HTTP 申请触发时,您可能须要应用您本人的自定义域名来拜访您的函数。例如,您创立了一个函数作为 Web 利用,您心愿用户通过固定的域名拜访这个 Web 利用,这时候您就能够为该 Web 利用绑定自定义域名。除此之外,您还能够为该域名设置 CDN 减速性能,将部署在函数计算的利用作为源站,把源内容公布到边缘节点,使终端用户能疾速读取所需内容。点击这里查看更多详情。什么是弹性治理?函数计算为您提供了按量模式和预留模式两种实例应用模式。您能够配置最大实例数来管制单个函数的资源应用下限,来避免单个函数适度调用导致的实例占用,爱护后端资源,防止预期外的费用开销。同时能够通过配置最小实例数来激活预留模式实例,函数计算零碎将依据配置的最小实例数为该函数常驻实例,来疾速响应函数调用申请,升高冷启动的产生次数,为时延敏感的在线业务提供更好的服务响应。按量模式和预留模式计费形式不同,点击这里查看更多详情。什么是层?层能够为您提供自定义的公共依赖库、运行时环境及函数扩大等公布与部署能力。您能够将函数依赖的公共库提炼到层,以缩小部署、更新时的代码包体积,也能够将自定义的运行时,以层部署在多个函数间共享。层默认部署在函数执行环境的 /opt 目录下,作为函数可额定附加的代码目录。当函数配置多个层时,这些层的内容将被合并至 /opt 目录。点击这里查看更多详情。产品性能就讲到这里,大家能够从中领悟和梳理下函数计算的操作性和个性点。部署 Web 框架 SpringBoot

申明留神:这里需登录本人阿里云账号开启函数计算服务,函数计算服务属于流量计费,有可能产生流量费用。请谨慎应用。如产生费用,请自行承当,也能够纯正浏览学习。接着下面章节的产品性能,咱们在左侧菜单中点击“利用”。点击左侧菜单利用,抉择通过模板创立利用,抉择 springboot 模板。创立前最好先仔细阅读下具体中的阐明。而后点击立刻创立,进入到具体页面,这里我抉择间接部署。

利用名称间接按默认的走,而后点击创立。

咱们会看到创立的一个过程。创立结束后,能够看到框架曾经生成,是不是十分的简略和傻瓜式啊。

点击拜访域名就能够看到网站页面了。这是生成的框架首页,云平台主动为咱们配置了一个子域名。

点击下面创立页面的查看全副,能够看到创立过程的日志信息。部署分为 4 个局部,前置环境;资源同步;资源查看;执行部署,感兴趣的能够仔细阅读,对理解整体过程还是有肯定帮忙的。通过底部函数资源中的服务和函数去查看具体内容。

当点击服务 web-framework 时候,就跳转到具体的服务和函数信息外面了,这时候能够看到通过模板创立的 springboot 框架曾经部署成绩,感兴趣的能够查看框架代码,并且批改代码。

到这里,咱们就全副实现了部署 SpringBoot 框架到函数计算平台,大家能够本人试验一下。部署 Web 框架 Express 案例

申明留神:这里需登录本人阿里云账号开启函数计算服务,函数计算服务属于流量计费,有可能产生流量费用。请谨慎应用。如产生费用,请自行承当,也能够纯正浏览学习。持续来部署 Node.js 语言 Express 框架的 TodoList 案例。还是在利用中找到 Express 的 TodoList 案例。抉择热门利用,抉择对应模板案例,而后点击详情。

咱们能够在右侧弹出的层中浏览装置阐明。记得这里咱们不必点击立刻创立,咱们回到本机来用客户端创立利用。

这次咱们采纳开源工具 Serverless Devs 本地部署利用。装置 Serverless Devs 客户端前,你本机须要曾经预装了 npm,也就是须要装置 Node.js 环境,能够在其官网下载 node.js https://nodejs.org/zh-cn。肯定要抉择默认 Paht 退出全局变量中,而后关上 CMD,查看 node 装置是否失常,输出上面命令到 cmd 中。node - v 如下图呈现版本号,就是失常的,如有其余问题,请自行百度装置 npm 包环境。

先装置 Serverless Devs,间接从图中官网文档能够装置即可。https://docs.serverless-devs….$ npm install @serverless-devs/s -g

代表装置胜利。而后咱们通过命令行来配置本人的密钥,密钥点击阿里云右上角头像图标,在呈现弹层中,抉择“AccessKey 治理”,能够找到本人 key 和 secret。

咱们关上 windows 的 cmd 命令提示符工具,来配置密钥,输出上面命令:s config add 依据提醒抉择 Alibaba Cloud,一步一步抉择粘贴即可。(在输出 s 命令前,记得依据下面文中阐明,装置好 Serverless Devs 的客户端,这里不做具体领导)

初始化模板我的项目,输出上面命令,能够看到模板下载到了咱们本地中。s init todolist-app -d todolist-app

进入本地目录,部署云服务到阿里云函数计算平台中。输出命令:cd todolist-app && s deploy 能够在左侧看到生成的 domain 就是拜访域名,触发器模式为 http 模式。包含云函数的名字和配置都高深莫测。这里揭示一下,本地用客户端工具部署的云函数不会在阿里云平台的利用列表中呈现。

部署后在控制台能够看到生成域名,复制域名在浏览器上拜访,就会呈现此页面了。如果你批改本地代码,而后再次运行部署命令,咱们的 serverless 利用就会更新了。

回到云平台,在左侧菜单“服务及函数”中能够看到部署的服务,点进去就是方才的函数。

怎么样,到这里是不是感觉云函数也不是很难吧。另外大家记得,如果只是练习学习部署利用,能够在学习实现后删除掉对应的利用或者服务,避免产生额定的费用。回顾一下,两个框架的部署都实现了,超乎设想的简略哦!这里提一杯,我还是比较满意阿里云的函数计算产品的,尤其是利用这个性能的上线,让入门者学习,部署更加简略。

下面的章节中,学会了怎么部署 web 利用到函数计算平台中。剖析详解视频学习 - 剖析详解这个章节我来手把手教大家怎么部署一个属于本人的 Web IDE 工具,包含怎么把官网生成的域名配置成本人的域名。

介绍开源 Web IDE 工具

实操之前,咱们还是先简略理解下这个 web ide 工具。它是基于 Serverless 架构和 Vscode 的即开即用,用完即走的轻量 Web IDE 服务。具备海量插件;数据实时保留;低成本等特点。它用 golang 语言实现反向代理拜访,它是基于开源的 openvscode-server,提供了 vscode  web ide 的性能。感兴趣并且会 golang 的敌人,能够理解下本地调试的办法。

通过根本流程,咱们能够学习到这个开源工具的运行原理,便于调试和二次开发。

这里重点说下开发调试,如果你须要在本地环境中搭建,要仔细阅读这里,理解目录构造和相干配置信息。

开源工具介绍结束,咱们趁热打铁进行实际吧!制作本人的 Web IDE 工具开始制作本人的 Web IDE 工具,按上面的步骤一步步执行即可。申明留神:这里需登录本人阿里云账号开启函数计算服务,函数计算服务属于流量计费,有可能产生流量费用。请谨慎应用。如产生费用,请自行承当,也能够纯正浏览学习。从官网模板中找到 serverless vscode webide 的模板,点击立刻创立。

申明留神:对象存储 OSS 服务属于流量计费,会产生流量费用。请谨慎应用,如产生费用,请本人承当。当然也能够单纯浏览学习。大家须要留神一点,这个 web ide 工具须要创立 OSS 对象存储,OSS 便于存储用户的数据。创立利用时候,点击创立新的 OSS 存储桶,跳转到 OSS 产品后,间接创立一个 oss 的 bucket 即可。点击红框上面的创立新的 OSS 存储桶。

跳转到了对象存储 OSS 的产品页面,咱们点击左侧 Bucket 列表,而后点击创立 Bucket,填写一个名称 webidepractise,点击保留即可。也能够通过这个链接提前创立好 OSS 的存储桶。https://oss.console.aliyun.co…

回到利用创立页面,点击刷新,抉择方才创立的 OSS,切记云函数和 OSS 须要在同一个 region。创立胜利后,就会在利用列表中呈现。

点击上图中的配置,能够看到上面页面,理解下函数的配置状况。红框中就是咱们抉择的 OSS,也能够调整为适宜本人的配置。

点击列表中的拜访域名,这里就能够看到的 web ide 工具了,你能够在这里关上 github 仓库上的代码,间接在线编写程序,是不是十分不便。

配置本人的域名(如果没有购买过阿里云域名,能够疏忽上面内容)。申明留神:这里需从阿里云平台购买域名,域名会收取费用。请谨慎应用,如产生费用,请本人承当。点击左侧菜单域名治理,点击增加自定义域名,就能够看到这个页面,在这里配置子域名,而后复制公网 CNAME 域名,点击云解析 DNS 控制台来配置域名。

点击云解析 DNS 控制台后跳转到了域名解析产品页面,抉择本人购买过得域名,在域名解析中,咱们点击解析设置就能够配置公网的 CNAME。

增加了一条 ide 的 cname 的子域名记录,记录值是从云函数复制过去的,这样就造成了映射关系。增加结束,咱们回到方才的云函数域名配置页面,抉择对应的路由配置,抉择你域名对应的服务名称,函数名称,版本名称,点击创立,功败垂成。

接着在浏览器中输出本人的域名,咱们的 Web IDE 工具呈现了,到这里你是不是有了一丝的兴奋。

到这里,咱们就学会了制作本人的 Web IDE 工具了,感兴趣敌人能够二次开发欠缺本人的在线工具。

本次实际所有学习和实际的常识都曾经讲完。回顾一下整体的常识,从理解 serverless 概念,架构,利用场景,到学习操作函数计算的产品,到部署风行 web 框架,最初咱们还制作了一个本人的 web ide 工具。置信对一个入门学习者来说,你能跟着我学习和实际实现,证实你曾经根本把握了 serverless。后续能够把你的产品迁徙部署过去,也能够在函数计算上开发部署本人的新我的项目或者新产品。思考总结

这里给大家几个问题,思考总结一下:Serverless,函数计算是什么关系?你喜爱本地部署还是在线部署?钻研一下函数计算怎么配置实例,怎么设置最大实例限度?再思考一下 … 哪些利用都能够迁徙到云函数?点赞,评论,让我看到你的想法!

 如果内容中存在不适合的中央,还请大家给我评论留言,咱们一起交流学习。记得关注我,跟着我每天学习一点点,让你不在干燥,不在孤独 …… 原文链接:http://click.aliyun.com/m/100… 本文为阿里云原创内容,未经容许不得转载。

正文完
 0