Serverless 实战 —— Serverless 架构揭秘与静态网站部署实战

news/2024/5/18 22:38:55/文章来源:https://blog.csdn.net/Aria_Miazzy/article/details/104556437

Serverless 架构揭秘与静态网站部署实战

 

讲师简介

陈涛

Serverless Framework 社区专家

参与 Serverless 社区及开源的相关研发工作。拥有丰富前端、JavaScript 技术经验,以及网站及小程序等项目开发经验,腾讯云 Serverless 系列课程特约讲师。

 

课程简介

抗击疫情,腾讯云在行动。Serverless(无服务架构)被誉为下一代云计算技术,自概念推出以来,因为能带来研发交付速度提升与成本的降低在业内异常火爆。本次课程将围绕Serverless Framework为大家详细讲解Serverless架构演进,并通过简单的示例帮助开发者快速使用并部署Serverless Hexo 静态博客站点。

 

课程讲义

抗击疫情,腾讯云在行动。Serverless(无服务架构)被誉为下一代云计算技术,自概念推出以来,因为能带来研发交付速度提升与成本的降低在业内异常火爆。本次课程将围绕Serverless Framework为大家详细讲解Serverless架构演进,并通过简单的示例帮助开发者快速使用并部署Serverless Hexo 静态博客站点。

本次腾讯云大学大咖分享课程邀请 Serverless Framework 社区专家 陈涛 分享关于“Serverless 架构揭秘与静态网站部署实战”课程的内容。

本次分享内容:

1、Serverless 架构演进

2、Serverless 技术解析

3、Serverless 应用与发展

4、Serverless 静态博客实战

 

1、Serverless 架构演进

单体架构使最原始的站点架构模型,采用单一VPS或者服务器做业务支撑,数据库、静态存储和pap脚本打包在一起,提供对外的访问,显著缺陷复杂性高,并且随着业务的增长,其技术载会逐渐上升,部署速度变慢,扩展性能也会受限。所以引出了第二种架构方式即SOA架构,最常用的企业架构,通过各个服务模块,将较为复杂的业务拆分治理,是面向服务的架构,也是目前为止用得最多的架构方式。容器架构与SOA架构并没有明显的差异。容器架构只是更好的SOA载体,是底层计算的革新,但还是会强依赖自身运维能力。Serverless架构封装了所有的底层资源管理和系统运维工作,使开发人员更容易使用云基础设施。

首先是从最原始的SOA,有一个管理机构完成功能、接口的定义,然后各个系统统一调用接口,通过服务器进行访问,从而需要运维一个服务器集群。

接下来看Kubernetes容器编排,它是属于主从分布式的架构,主要是由Master节点和工作节点组成的,它主要的意义是对传统SOA的服务层做改造,来实现自动化部署容器、水平扩展、负载均衡等,总的来说,不论是Docker还是Kubernetes,其实现的意义主要是替代服务层级的使用调度分布式方面的改造。

下图是Serverless架构的简单模型,Serverless架构封装了所有底层资源,包括MVM、Docker和BaaS的功能,进行集成封装,只需要关注Serverless应用的架构模型等,简化了运维,具有弹性伸缩的能力。

开发一个全栈应用需要了解的东西,首先是最底层的K8S、系统安全、网络安全、备份等,中间需要留意到监控、日志报警、负载均衡、可靠性等,再上一层是DB、框架、文件存储、CDN,这样开发出一个Full-stack 网站,对于一个普通的开发者来说是不可接受的,因为需要学习大量底层又不是很必要的知识,而Serverless架构最核心的价值是让开发者可以聚焦到最核心最关键的业务能力上,而无需关注通用、底层、标准化的东西。

总结一下,serverless是什么?

无服务器云计算(Serverless Computing)几乎封装了所有的底层资源管理和系统运维工作,使开发人员更容易使用云基础设施。Serverless它提供了一个方式,极大地简化了基于云服务的编程,犹如汇编语言到高级编程语言般的转换。

Serverless一定是未来的架构方式,而且更方便企业层级做出更好的架构和应用。

 

2、Serverless 技术解析

Serverless的开发模型,应用层有REST API、BFF、 SSR、Website、Full-Stack APP,需要研发团队与TencentCloud进行功能的对接,如API、SCF、存储、DB,这只是现有的Serverless的开发模型,现在看来是还不够优雅的,需要庞大的研发团队来支撑。

于是引出了一个问题,有没有办法可以改善团队研发的进程,或是中间对接的环节呢,那么也就是引出了今天的主题我们需不需要框架?

先看一下Serverless framework框架能带来什么效益,我个人认为框架的帮助有两个部分,第一部分是组件化开发,第二部分是标准化框架。组件化开发通常是跨业务的可复用性来提高业务能力,对上通过组件化来提高代码复用的能力跨产品的。标准化框架的作用是帮助我们对接更多的云服务,如COS、SAF、API等一系列云服务。

那么组件化和标准化具体是替代哪些功能,组件化能够提供一些component来制作一些组件化的轮子,如Express、website、FullStack解决方案、Next.js等,帮助我们完成组件化的功能。标准化做的是部署、调试、架构、资源整合、应用、监控、告警等,对上是承接应用层,如REST API、BFF、SSR、Website、Full-Stack App;对下是接入云服务,如API、COS、DB等。以上是我们技术大纲,帮助大家理解Serverless Framework到底是做什么,可以帮助实现什么东西。

  • Serverless Framework应用生命周期管理是由CLI和Dashboard组成,覆盖了serverless的整个应用生命周期,如服务的部署/删除/查看/回滚、调试、查看日志、统计运行数据、DevOps支持。
  • Serverless应用,也就是上述提到的标准化框架和组件化开发。
  • Serverless资源,是可以无缝对接腾讯云Serverless资源。 Serverless Framework其实类似一个承接层或开发组件或包管理的工具。

 

3、Serverless 应用与发展

下图是IVWEB团队在Serverless的业务落地,用到了Serverless值出渲染。首先是在客户端层,然后到NGW接入层完成业务转发、灰度、鉴权、统计,再接到Apigatewa完成最终的访问环节,涉及到云函数同构环境,Koa业务逻辑,最后直出返回结果。那么这一套应用架构最方便最可取之处是免运维、全量日志、多维度数据统计、云API打通工作流,使得业务上线&维护工作量降低了80%。

下图是NOW直播B侧运营平台的架构图,主要是实现了BFF到SFF,serverless主要包括创建、更新代码、删除、容灾,达到了提高迭代效率、按需取用,用完即走、分离部署,安全可靠、细粒度的业务逻辑拆分。

下图是挑选的具有代表性的component,可供使用,可以在Serverless官网站找到component文档。

总结一下Framework的功能:

  • 代码重用,减少代码重复的开发量
  • 统一规范,Framework是对下进行标准化,通过它可以直接对接到基础产品的功能
  • 降低运维门槛和难度
  • 专注业务逻辑
  • 社区优势,Serverless Framework其实是北美完成了主力开发,由很多开发者进行维护,具体可以在GitHub搜索Serverless Framework进行了解。
  • 易于维护,其实serverless不需要维护的,是将维护的工作交给云端。
  • 提升效率,提高工作和应用效率。

实战步骤很简单,只有3步,

  1. 安装Serverless Framework、HEXO
  2. 配置YML
  3. 部署到腾讯云 其中的环节很多是免费的,所以大家可以大胆放心地部署项目。

 

4、Serverless 静态博客实战

课程源码相关地址:

官网 https://serverless.com

GitHub https://github.com/serverless https://github.com/serverless-components

腾讯云文档 https://cloud.tencent.com/product/sf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_709747.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最热开源静态网站生成器 TOP 20

最热开源静态网站生成器 TOP 20 1、静态站点生成器 Jekyll Jekyll 是一个简单的免费的Blog生成工具,类似WordPress。但是和WordPress又有很大的不同,原因是jekyll只是一个生成静态网页的工具,不需要数据库支持。但是可以配合第三方服务,例如d…

演练 网站的导航栏 0920

演练 网站的导航栏 0920 素材 https://cloud.189.cn/t/qMVJzaAbea63 数据 导航图的宽度 760 150 菜单图的宽高 760 32 制作过程 完成基本架构 制作菜单按钮 使用li>a的方式 效果 去掉样式 让li浮动 让a变为块级元素 去掉链接下划线 水平垂直居中 鼠标经过后效果

【资源】可下载三维模型的网站

可以用于生成仿真数据的三维模型库,持续更新… 1.Free3D 2.Turbosquid 3.三维扫描模型 4.3D SKY 5.3D warehouse 6.ArchiBase 7.机械模型 Dassault Systmes ref: https://www.zhihu.com/question/268392246/answer/426906438 https://zhuanlan.zhihu.com…

10个轻量级CMS网站内容管理系统

这里推荐的10个简单轻量级的网站内容管理系统对于每一个Web设计师和Web开发人员来说,都是简单易用的,是一般小型网站的可选实现方案,10 个CMS系统各有特色。 Wolf CMS Wolf CMS simplifies content management by offering an elegant user …

16个SNS网站常用JS组件

1. Facebook jQuery聊天框。 Facebook本身有 一个不错的IM软件,这个组件教你怎么模仿faceback的样式实现一个在线聊天框。 Demo Download 2. 仿Twitter Ajax搜索 帮你建立以个仿Twitter风格的搜索引擎效果。 Demo Download 3. 仿Facebook Mootools模态…

100种增加网站流量的方法

本文是一篇翻译的文章,文章比较长,但是如果你有网站或者blog的话,很多方法还是很值得借鉴的。 流量 就是网络中的货币。网站流量越大,就越容易达到既定目标:赚钱,传播观点,与其他人联系互动&…

网站开发技巧参考大全 event js

事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey 事件返回值 event.returnValue 鼠标位置 event.x event.…

网站开发技巧参考大全 event js

事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey 事件返回值 event.returnValue 鼠标位置 event.x event.…

一步步构建大型网站架构

有幸接确到了架构这个词的玩意,这几天有时间就网上游离一下相关资料,看到不错就收藏一下,作为以后学习的方向: 之前我简单向大家介绍了各个知名大型网站的架构,MySpace的五个里程碑 、Flickr的架构 、YouTube的架构…

网站静态化结构

写在前头 静态化是解决减轻网站压力,提高网站访问速度的常用方案,但在强调交互的We2.0 时代,对静态化提出了更高的要求,静态不仅要能静,还要能动,下面我通过一个项目,谈谈网站静态化后的架构设计方案,同时和大家探讨一下,在开源产品大行其道,言架构必称MemberCache, Nginx,的时…

网站静态化结构

写在前头 静态化是解决减轻网站压力,提高网站访问速度的常用方案,但在强调交互的We2.0 时代,对静态化提出了更高的要求,静态不仅要能静,还要能动,下面我通过一个项目,谈谈网站静态化后的架构设计方案,同时和大家探讨一下,在开源产品大行其道,言架构必称MemberCache, Nginx,的时…

10种JavaScript特效实例让你的网站更吸引人

10种JavaScript特效实例让你的网站更吸引人 今天的话题是如何改进自己网站的界面或提高网站的视觉体验,从而让用户记忆犹新。我们有三种主要的方法(从难到易):自己动手写脚本;使用类似于jQuery和mooTools的JavaScript框架&#xf…

优化Meta讨好搜索引擎 更好的提升网站排名

网页代码中的Meta标签在SEO(搜索赢取优化)中有着举足轻重的地位,如果在Meta标签上进行了适合搜索引擎的撰写方式,可在很大程度地提升网站的排名,同时也有利于站点内容的收录,所以给每个网页加上Meta值就成为…

优化Meta讨好搜索引擎 更好的提升网站排名

网页代码中的Meta标签在SEO(搜索赢取优化)中有着举足轻重的地位,如果在Meta标签上进行了适合搜索引擎的撰写方式,可在很大程度地提升网站的排名,同时也有利于站点内容的收录,所以给每个网页加上Meta值就成为…

ASP.NET 4中的SEO改进

ASP.NET 4包括了一系列新的运行时特性,可以帮助你进一步优化你的网站。其中一些新特性可以用来进行SEO优化以提高网站在搜索引擎中的排名和权重,这些特性包括: 新的Page.MetaKeywords 和 Page.MetaDescription 属性 针对ASP.NET Web Forms的…

ASP.NET 4中的SEO改进

ASP.NET 4包括了一系列新的运行时特性,可以帮助你进一步优化你的网站。其中一些新特性可以用来进行SEO优化以提高网站在搜索引擎中的排名和权重,这些特性包括: 新的Page.MetaKeywords 和 Page.MetaDescription 属性 针对ASP.NET Web Forms的…

Google 的PageRank值对网站成功有多重要

网页排名(PR),基于外部链接以及链接来源来确定网站排名的评价方式,是谷歌独家拥有的秘密武器。虽然由于谷歌对网站排名增加了越来越多新标准使得这种方式已经慢慢变淡了,但是对于SEO和网站管理员来说还是很看重获得一个…

Google 的PageRank值对网站成功有多重要

网页排名(PR),基于外部链接以及链接来源来确定网站排名的评价方式,是谷歌独家拥有的秘密武器。虽然由于谷歌对网站排名增加了越来越多新标准使得这种方式已经慢慢变淡了,但是对于SEO和网站管理员来说还是很看重获得一个…