关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

用Serverless 分分钟部署一个 Spring Boot 应用(serverless 搭建)

发布时间:2022-06-30 14:56:51

昨天,栈长应腾讯云小伙伴邀请参加了Techo Day 技术开放日的线上活动,这一期的主题是”轻量级云开发与云应用“,包括轻量级应用服务器、容器和中间件、云开发、微服务、大数据、安全等领域的应用和原理等。

这其中有一项技术讲解——Serverless让我感触比较深。这门课打破了我对软件开发领域的定义。

在现代越来越强大的云计算加持下,我们大量运用了一些云组件,比如:

  • IaaS(基础设施即服务)
  • PaaS(平台即服务)
  • SaaS(软件即服务)

没错,即使云服务应用再多,我们也仅限在 "SaaS(软件即服务)" 层面的应用。

但这门课程提到的,是传统的 "SaaS(软件即服务)" 不再是颗粒度最小的云服务器了,取而代之的是,你可以理解为 "方法级别" 的云服务,即可以以方法作为独立载体被部署在云上,颗粒度更小、灵活性更强,可以获得尽可能大的弹性。

大部分人看到 Serverless 仍是一知半解,所以我想有必要给大家做个专题分享,包括 Serverless 的正确理解及实现方案,以及腾讯云的 Serverless 是如何应用的。

Serverless 到底是什么?

Serverless 介绍

现在 Serverless 很火啊,到处都是人,包括 Spring 都已经支持 Serverless 适配了,栈长当初看到这个名词的时候以为是指 "无服务器",相信很多人也会这样以为,不过不要理解错了,栈长在这里扫个盲。

Serverless 是指 "无服务器架构",这里的 "无服务器并不是指程序不需要服务器运行,而是指我们的开发工作不需要关注服务器底层的资源,比如我们部署应用时,经常遇到以下一些服务器及基础设施的相关工作:

  • 应用需要用多少台服务器?
  • 应用需要用多少带宽?
  • 应用需要用什么操作系统?
  • 应用需要运行多少个实例?
  • 应用需要用到什么容器,怎么调度?
  • 等等……

这些工作在传统的业务中需要运维人员和开发人员一起协调完成,而 Serverless 的到来,我们通通都不用管了,Serverless 帮我们去完成这些,程序员只需要关注业务逻辑本身即可。

来看 Spring Serverless 第一张图就明白了:

实操教学|用Serverless 分分钟部署一个 Spring Boot 应用,真香

实操教学|用Serverless 分分钟部署一个 Spring Boot 应用,真香!

Serverless 只需要关注一件事:函数!!

这里的 FaaS 就是 Serverless 最基本的一种表现形式。

Serverless 优势

Serverless 具有资源编排、自动伸缩、事件驱动等能力,覆盖编码-调试-测试-部署等全生命周期,减少维护基础设施的成本和风险,利用云的能力可以更迅速的扩展。

我们来看下面这张图:

实操教学|用Serverless 分分钟部署一个 Spring Boot 应用,真香

实操教学|用Serverless 分分钟部署一个 Spring Boot 应用,真香!

我们可以看到,Serverless 始终能满足日益增长的需求,并能对资源做到灵活动态调整,一方面能在闲时减少资源以避免浪费,另一方面,即使流量溢出也能应对。

这里总结下 Serverless 的优势:

高可用: 如多活、容灾、扩容、备份等能力,这些都不在话下;

高弹性: 以方法为部署载体,比微服务更微,获得极致弹性;

轻运维: 免去大量的运维工作,专注核心开发业务,大大节省工作量;

等等……

Serverless 实现方案

Serverless 经常不会单独出现,还有以下两个衍生概念,也是目前最常见的 Serverless 实现方案:

FaaS(函数即服务) + BaaS(后端即服务)

Function as a Service (FaaS)

Function as a Service(FaaS)函数即服务,这也是 Serverless 的基石,它是比 SaaS(软件即服务)/ BaaS(后端即服务) 更小的载体,每一个函数就是一个服务,函数之间相互独立。

我们来看一张基于 FaaS 的架构图:

实操教学|用Serverless 分分钟部署一个 Spring Boot 应用,真香

实操教学|用Serverless 分分钟部署一个 Spring Boot 应用,真香!

基于 FaaS 服务器底层的关系从下到上依次是这样的:

物理服务器(IaaS) > 虚拟机(PaaS) > 容器(PaaS) > 函数(FaaS)

函数(也可以说方法)颗粒度更小,可以帮助应用获得极致弹性。

Backend as Service(BaaS)

Backend as a Service(Baas)后端即服务,即为应用提供后端云服务,可以理解为 PaaS 和 SaaS 之间的一种服务,它也是 Serverless 架构中的一种表现形式,大量开箱即用的后端云上功能提升研发效能。

后端服务 BaaS 并不是必须的,FaaS 和 BaaS 都属于 Serverless 架构不同的表现形式,也可以说是 FaaS 和 BaaS 是 Serverless 架构,它们是相辅相成的。

腾讯云 Serverless

基本介绍

腾讯云中的 Serverless 是指 Serverless Cloud Function,简称:SCF,也可以叫 "云函数",是腾讯云提供的 Serverless 服务,腾讯云用户无需购买云服务器和虚拟机,代码即可在腾讯云基础设施上弹性、安全地运行,支持所有主流的编程语言。



相关推荐

【2022年的云计算虚拟化市场现状和发展(云计算未来市场) >>点击查看详情<<

【习近平向“全球发展:共同使命与行动价值”智库媒体高端论坛致贺信 >>点击查看详情<<

/template/Home/Redyun/PC/Static