为什么需求Serverless

本文涉及的产品
函数计算FC,每月免费额度15元,12个月
简介: 公司计划在网站上引入AIGC技术以增强用户互动,但担忧开发周期长和成本高。技术负责人建议使用Serverless技术,这种模式允许只关注核心代码开发,减少资源管理和运维成本,适应快速、低成本的需求。小陈将负责调研Serverless在AIGC应用中的可行性,以实现更高效、节省资源的开发。Serverless的核心是让开发者专注于业务逻辑,减少非必要技术问题的处理,符合开发人员期望的开发模式。

思考:如何才能快速、低成本地推出AIGC应用?

公司新上线的综合性网站平台,经过一年多的沉淀,聚集了一批忠实、热情的用户,网站的互动内容分享很活跃。由于近来AIGC(Artificial Intelligence Generated Content,人工智能生成内容)技术火热,受关注度很高,为了增强用户互动、提高趣味性,公司希望网站推出新功能,吸引有创意、想象力的用户参与到产品的设计优化中来,还可将产品使用图片生成趣味插图用于分享,引发用户共情,进一步推升网站人气。对于这项创新需求,网站的技术负责人大刘找到了技术实习生小陈,希望他来做一些调研和准备。

大刘:咱们公司网站最近想推出一项新功能,借助AIGC技术来增强用户与咱们产品的互动。我觉得这个需求比较有创意,用到的也是新技术,是一件挺有意思的事情。不过正式启动前需要做一些前期调研,这是一个难得的机会,想交给你来试试,如何?

小陈:好嘞,谢谢师傅信任,我会尽力做好调研。AIGC我一直有关注,比如ChatGPT、Stable Diffusion等,在学校里都是同学们讨论的热门话题之一。现在互联网上有不少好用的模型、应用,代码也是开源的,在调研阶段可以拿来即用。不过我有个疑虑,这些AI模型对于计算资源的消耗往往是挺可观的,部署测试也要花费不少时间精力,我怕应付不过来呢。

大刘:你说的没错,这个问题我之前就有考虑,像这样一类AIGC应用,如果按照传统的应用开发模式,全流程的开发、部署一个完整应用,它的开发周期长、成本高、运维也很复杂。但近些年其实还有一种新的开发模式,只需要提供应用的核心代码,然后通过无服务器Serverless技术去执行,这种开发方式短平快,并且资源完全按需付费,很大程度上可以解决你前面提到的几个顾虑。

小陈:这个Serverless的方式听起来很有意思啊,无服务器,难道不需要服务器么?

大刘:哈哈,这个问题就留给你来研究和学习了。你可以先基于Serverless方向展开学习,需要做一些功课来论证基于Serverless架构实现AIGC应用的技术可行性。如果调研中有任何问题,可以随时来找我,我们一起讨论。根据以往的经验,多多讨论有助于加深理解。

小陈:好的,师傅不要嫌我麻烦就好。

大刘:Serverless是被高度关注的下一代云原生技术,受到业界厂商和开发者的高度重视,借这个机会好好学习,对你今后技术发展也一定会大有帮助。

小陈:明白,我清楚调研方向了,谢谢师傅!

为什么需要Serverless

按照传统开发模式开发一个应用,需要经历完整开发流程,编写应用全部代码,开发工作量大、周期长、成本高。而且,代码开发只是开发项目中的一部分,除此之外还有其他大量的工作要完成,包括应用上线的工作,如容量规划、资源采购、软件安装与配置、应用调试与功能验证等,及管理运维的工作,如安全加固、安装监控、运维管理与优化等。

应用上线、管理运维相关工作繁杂冗长、成本高昂,需要占用大量的时间精力。但遗憾的是,这些并不是应用的核心能力和开发者的主体工作。所以,开发人员更希望将有限的精力聚焦在代码研发、打磨业务逻辑上。开发人员期望的开发模式,只需关注具体业务逻辑代码的开发,也就是模块级别的实现,除此之外都转交给云厂商,让专业的人做专业的事,如下图。大家各司其职、强强联手,合力打造卓越应用,两全其美。那么,这种期望中的开发模式可行吗?

传统开发模式 vs 期望开发模式

开发人员期望的开发模式,正好与Serverless(无服务器)倡导的理念是高度一致的,即开发人员专业务代码编写,不必关心底层基础设计及软硬件配置

著名的 Serverless 实践者 Ben Kehoe 这样描述 Serverless 原生心智,当我们在业务中考虑做什么时可以体会一下这种心智:

  • 我的业务是什么?
  • 做这件事情能不能让我的业务出类拔萃?
  • 如果不能,我为什么要做这件事情而不是让别人来解决这个问题?
  • 在解决业务问题之前没有必要解决技术问题。

这个Serverless原生心智正好说出了开发人员的心声,那么,Serverless是怎么产生的呢,让我们继续探究。

Serverless从何而来

我们都知道IT技术是用来解决业务问题的,而IT技术的载体则是各种各样的应用程序。这些应用程序提供了用户界面,实现了业务逻辑,运行在底层基础设施之上,为最终用户提供业务服务。

出于对降本增效的不懈追求,计算模式不断发展进步,从早期的物理机发展出虚拟机,又从虚拟机发展到容器技术,再从容器技术推升到Serverless技术,这是一个业务逻辑不断聚焦、技术栈不断抽象的技术进步必然过程。IT技术演进过程中的物理机、虚拟机、容器化的发展阶段,被统一称作基于服务器的计算模式,也就是Serverful模式,与之相对的则是“无服务器”模式,也就是Serverless模式。上述发展过程,简单如下图所示。

计算模式发展历程

可以看出,在Serverful模式下,面对业务负载增加时需要扩展资源,其扩展单元要么是服务器,要么是虚拟机,或者是容器组,这三者的资源扩展速度是不断上升的,资源扩展颗粒度是持续减小的,对人员技能的要求也越来越高。而在Serverless模式下,扩展单元则变成了更轻量级的函数,部署速度更快,敏捷性更高,同时还降低了人员的技能要求。

让我们简单回顾下计算模式发展的主要阶段,了解每个阶段为什么会产生,有什么特点,又引出了什么新问题:

  • 大型机:为解决复杂计算问题而研制出来。由于特别昂贵,大型机非常稀缺,能拥有大型机的机构不多,小企业有很多计算需求,但却无法获得计算的机会。
  • X86为了满足大量小企业的计算需求,推出了价格相对低廉的X86服务器。但是,X86服务器从购买到上线,周期长、运维困难、资源利用率也不高。
  • 虚拟化:为了提高服务器资源利用率,打破服务器不可分割的限制,推出了虚拟化技术。虚拟化提高了资源利用率、可用性,降低了运维难度。但虚拟化种类偏少,仍需管理硬件并需要专业技术支持,使用门槛较高,虚拟化授权费也不低。
  • 云计算:为进一步减少运维,降低成本,丰富产品,云计算应运而生。云计算提供了丰富的IaaS、PaaS平等产品和服务,提高了企业的工作效率。但在应用构建、运维、弹性扩展、故障恢复等工作方面,仍有较多工作,需用户完成。
  • 容器化:为了提高应用系统在不同环境之间迁移的兼容性,出现了容器技术。随着容器技术的大范围应用,为了推动应用程序集群的资源管理自动化,又产生了容器编排技术。在拥抱容器编排技术之后,企业的运维工作进一步减少,但容器化仍需要一定的技术门槛。
  • Serverless:出于对降本增效的不懈需求,企业的工作重心越来越聚焦在业务逻辑上,希望进一步削减容器化工作,于是Serverless应运而生。Serverless只需要关注业务逻辑,支持自动弹性、按量付费,进一步降低了使用心智。

由此可见,计算模式的每一次革命,都进一步增强了人们对业务逻辑的聚焦,降低了对底层技术展的关注,是执行降本增效的必然结果。是时候该好好认识Serverless了。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
3月前
|
运维 Cloud Native 安全
Serverless是什么
小陈向大刘请教Serverless,了解到Serverless是种云原生开发模式,重点在于FaaS(函数即服务)和BaaS(后端服务),让开发者专注于业务逻辑,而无需管理服务器等基础设施。Serverless并非无服务器,而是将服务器运维工作交给云厂商。FaaS是代码托管服务,例如阿里云的函数计算,提供敏捷、弹性、可靠且成本效益高的计算服务。BaaS则是通过API调用第三方服务,如数据库访问。Serverless与传统架构相比,减少了开发者的负担,提高了效率,降低了成本,并增强了安全性。
79 6
|
10月前
|
存储 安全 物联网
Serverless 是什么?
Serverless 是什么?
137 0
|
11月前
|
弹性计算 监控 Java
Serverless
Serverless应用引擎SAE(Serverless App Engine)是一个全托管、免运维、高弹性的通用PaaS平台。SAE支持Spring Cloud、Dubbo、HSF、Web应用和XXL-JOB、ElasticJob任务的全托管,零改造迁移、无门槛容器化、并提供了开源侧诸多增强能力和企业级高级特性。
104 3
|
运维 监控 搜索推荐
什么是Serverless
自2006年8月9日,Google首席执行官埃里克·施密特(Eric Schmidt)在搜索引擎大会(SESSanJose2006)首次提出“云计算”(Cloud Computing)的概念之后,云计算的发展可以用日新月异这个词来形容。那么究竟什么才是Serverless呢?
85 0
|
架构师 物联网 Serverless
什么是Serverless? #110
什么是Serverless? #110
62 0
|
Serverless
什么是 Serverless——与 Serverless 相对的是 Serverfull
什么是 Serverless——与 Serverless 相对的是 Serverfull自制脑图
106 0
什么是 Serverless——与 Serverless 相对的是 Serverfull
|
运维 Kubernetes Cloud Native
什么是serverless
什么是serverless
123 0
|
消息中间件 Kubernetes 前端开发
Serverless是什么?
Serverless是什么?
304 0
Serverless是什么?
|
Serverless
Serverless 新旧观念的转变
Serverless 新旧观念的转变自制脑图
70 0
Serverless 新旧观念的转变
|
Serverless
Serverless
Serverless 自制脑图
105 0
Serverless