返回介绍

一、serverless 架构介绍及安装 serverless

发布于 2024-01-31 23:58:26 字数 6887 浏览 0 评论 0 收藏 0

  • Serverless 又名无服务器,所谓无服务器并非是说不需要依赖和依靠服务器等资源,而是开发者再也不用过多考虑服务器的问题,可以更专注在产品代码上。
  • Serverless 是一种软件系统架构的思想和方法,它不是软件框架、类库或者工具。它与传统架构的不同之处在于,完全由第三方管理,由事件触发,存在于无状态( Stateless )、 暂存(可能只存在于一次调用的过程中) 计算容器内。构建无服务器应用程序意味着开发者可以专注在产品代码上,而无须管理和操作云端或本地的服务器或运行时(运行时通俗的讲 就是运行环境,比如 nodejs 环境, java 环境, php 环境)。 Serverless 真正做到了部署应用 无需涉及基础设施的建设,自动构建、部署和启动服务。

通俗的讲:Serverless 是构建和运行软件时不需要关心服务器的一种架构思想

虚拟主机已经是快被淘汰掉的上一代产物了。云计算涌现出很多改变传统 IT 架构和运维方 式的新技术,比如虚拟机、容器、微服务,无论这些技术应用在哪些场景,降低成本、提升 效率是云服务永恒的主题。Serverless 的出现真正的解决了降低成本、提升效率的问题。它真正做到了 弹性伸缩高并发按需收费备份容灾 、日 志监控 等。

1.1 传统的开发模式与 serverless 开发模式对比

传统的开发模式

新型的 serverless 开发模式

Serverless 正在改变未来软件开发的模式和流程

1.2 Serverless 和 ServerFul 架构的区别

传统的 ServerFul 架构模式

ServerFul 架构就是 n 台 Server 通过 网络通信 的 方式 协作在一起,也可以说 ServerFul 架构是基于 Server 和 网络通信(分布式计算) 的 软件实现架构 , Server 可 以是 虚拟机 物理机 ,以及基于硬件实现的云的云服务器

Serverless 架构模式

Serverless 的核心特点就是实现自动弹性伸缩和按量付费

1.3 使用 serverless 的优势

  • 资源分配: 在 Serverless 架构中,你不用关心应用运行的资源(比如服务配置、磁盘大小) 只提供一份代码就行。
  • 计费方式: 在 Serverless 架构中,计费方式按实际使用量计费(比如函数调用次数、运 行时长),不按传统的执行代码所需的资源计费(比如固定 CPU )。计费粒度也精确到了毫 秒级,而不是传统的小时级别。个别云厂商推出了每个月的免费额度,比如腾讯云提供了每 个月 40 万 GBs 的资源使用额度和 100 万次调用次数的免费额度。中小企业的网站访问量不 是特别大的话完全可以免费使用。

  • 弹性伸缩: Serverless 架构的弹性伸缩更自动化、更精确,可以快速根据业务并发扩容更 多的实例,甚至允许缩容到零实例状态来实现零费用,对用户来说是完全无感知的。而传统 架构对服务器(虚拟机) 进行扩容,虚拟机的启动速度也比较慢,需要几分钟甚至更久。

1.4 Serverless 组成

  • 广义的 Serverless 更多是指一种技术理念:Serverless 是构建和运行软件时不需要关心服务 器的一种架构思想。刚开始学 Serverless 你可以把它理解为虚拟主机的升级版本
  • 狭义的 Serverless 是指现阶段主流的技术实现:狭义的 Serverless 是 FaaSBaaS 组成

1.5 Serverless 开发流程

1.6 为什么要学 Serverless

先看看招聘信息

看看最近 2 年 Github 的 start 数量和周下载量

目前已经使用了 serverless 的大公司

1.7 Serverless 的能力

计算能力

  • 资源按需分配,无需申请资原
  • Mwm:租户级别强镜离 Docker:进程级别隔离
  • Mwm+Docker 轻量级资源毫秒级启动
  • 实时扩容,阶梯缩容
  • 按需收费

系统运维能力

  • 性能保障:整个链路耗时毫秒级内,并支持 VPC 内网访问
  • 安全保障
    • 资源对用户不可见,安全由腾讯云提供专业的保障
    • 提供进程级和用户级安全隔离
    • 访问控制管理
  • 自动性护缩容
    • 根据 CPU 内容网络 IO 自动扩容底层资源
    • 根据请求数自动扩缩容函数实例,业务高峰期扩容,满足业务高并发需求,业务低 峰期缩容,释放资源,降低成本
  • 自愈能力:每一次请求都是一个健康的实例

Serverless 中云函数被第一次调用会执行冷启动,Serverless 中云函数被多次连续调用会 执行热启动

  • 冷启动 是指你在服务器中新开辟一块空间供一个函数实例运行,这个过程有点像你把这 个函数放到虚拟机里去运行,每次运行前都要先启动虚拟机加载这个函数,以前冷启动非常 耗时,但是目前云厂商已经能做到毫秒级别的冷启动,这个过程我们也不需要关心,但是需 要注意的是使用 Seesion 的时候可能会导致 Session 丢失,所以我们的 Seesion 建议保存到数 据库。
  • 热启动 则是说如果一个云函数被持续触发,那我就先不释放这个云函数实例,下次请求 仍然由之前已经创建了的云函数实例来运行,就好比我们打开虚拟机运行完这个函数之后没 有关闭虚拟机,而是让它待机,等待下一次被重新触发调用运行,这样做的好处就是省去了 给虚拟机「开机」的一个耗时环节,缺点是要一直维持这个虚拟机的激活状态,系统开销会 大一些。

业务运维能力

  • 工具建设:vscode 插件、WebIDE、Command Line、云 api、Sdk
  • 版本管理、操作管理等
  • 故障排查
  • 监控报警
  • 容灾处理

1.8 serverless 厂家

1.9 云函数和 serverless 的区别

通过前面的介绍,我们认识到了云函数和 serverless ,但是可能会有一个很迷惑云函数和 serverless 到底有什么区别,他们之间有什么联系,为什么我在创建云函数的时候选择模板方式创建最后创建的是 serverless ,而不是云函数呢。下面我们将解答云函数和 serverless 的区别

  • Serverless FrameworkServerless 公司推出的一个开源的 Serverless 应用开发框架
  • Serverless Framework 是由 Serverless Framework PluginServerless Framework Components 组成
  • Serverless Framework Plugin 实际上是一个函数的管理工具,使用这个工具,可以很轻松的 部署函数、删除函数、触发函数、查看函数信息、查看函数日志、回滚函数、查看函数 数据等。简单的概括就是 serverless 其实就云函数的集合体,使用 serverless 后我们创建的云函数不需要手动去创建触发器等操作

官方地址

1.20 创建 serverless 的方式

  • 在腾讯 serverless 控制面板上创建,然后在 vscode 中使用插件的方式下载到本地(注意: 编辑器上要选择和创建 serverless 地区相同,才能看到项目,否则是看不到项目代码的)
  • 使用客户端 serverless cli 命令方式创建,个人也更推荐使用这种方式创建,修改代码,然后部署到后台腾讯云服务上

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文