为什么需求Serverless

简介: 公司计划在网站上引入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了。

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
人工智能 安全 Android开发
手机也能跑通义Qwen3大模型,手把手教你部署!
全球开源模型冠军Qwen3与端到端全模态模型Qwen2.5-Omni现已成功在手机上跑通!借助MNN支持,适配Android、iOS及桌面端,实现低延迟、本地化、高安全的AI体验。用户可通过自定义Sampler设置、System Prompt和Max New Tokens调节模型输出风格与长度。
6001 11
|
6月前
|
存储 人工智能 缓存
8核32G服务器怎么样?2026年阿里云 8 核 32G 云服务器价格、配置与性能解析
阿里云 8 核 32G 云服务器凭借 1:4 的 CPU 与内存均衡配比,成为兼顾性能与实用性的热门选择,既能支撑中大型企业核心业务(如高并发官网、中型数据库),也能满足开发者高性能测试需求(如批量数据运算、轻量 AI 推理)。下面从价格、核心配置、实测性能三方面详细解析,帮你判断是否适配业务需求。
|
8月前
|
数据采集 人工智能 大数据
IDC中国数据治理平台报告:阿里云连续四年第一
国际数据公司(IDC)发布了《中国数据治理市场份额,2024》报告,2024年中国数据治理平台市场回暖,总规模达到38.3亿,同比增长30.6%。其中阿里云市场份额占比32.1%,连续四年位居第一。
|
算法 Java 数据库
Android 应用的主线程在什么情况下会被阻塞?
【10月更文挑战第20天】为了避免主线程阻塞,我们需要合理地设计和优化应用的代码。将耗时操作移到后台线程执行,使用异步任务、线程池等技术来提高应用的并发处理能力。同时,要注意避免出现死循环、不合理的锁使用等问题。通过这些措施,可以确保主线程能够高效地运行,提供流畅的用户体验。
1134 156
|
SQL Java 数据库连接
SQL SELECT语句的基本用法
SQL SELECT语句的基本用法
|
存储 JSON Java
1688订单接口获取指南
在电子商务中,订单数据的获取和管理至关重要。1688作为中国领先的B2B平台,提供了订单详情接口,允许开发者通过订单号获取详细信息,包括订单状态、收货地址、商品列表等。本文介绍如何使用该接口,涵盖注册账号、获取API密钥、安装必要库、构造请求URL、发送HTTP请求、解析响应数据及异常处理等内容,并提供Java示例代码。注意事项包括合规使用、数据安全和高效利用。
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
869 2
|
移动开发 前端开发 JavaScript
纯web端实现二维码识别
最近公司的业务场景中有个生成二维码和识别二维码的需求。生成二维码之前有做过,选用的 qrcode.js这个前端库,操作比较简单。这里不再赘述。 刚开始看到二维识别这个需求觉得很简单,以为有相应的前端库直接用就行了。但当真正开始写功能时,发现二维识别会涉及到很多其他的功能。废话不再多说,还是来看看如何实现的吧。
|
缓存 算法 网络协议
盘点腾讯后台开发各级工程师(T1-T9)需要具备哪些能力
盘点腾讯后台开发各级工程师(T1-T9)需要具备哪些能力
盘点腾讯后台开发各级工程师(T1-T9)需要具备哪些能力
WK
|
Python
map函数
在Python中,`map()` 是一个内置的高阶函数,接受一个函数和一个或多个可迭代对象作为参数,将指定函数应用于每个元素,并返回包含应用结果的迭代器。若有多个可迭代对象,其元素会并行地传递给函数。`map()` 返回一个迭代器,需用 `list()` 转换。在Python 3中,`map()` 返回迭代器而非列表,并支持 `lambda` 表达式,适用于多种应用场景。注意,当输入的可迭代对象长度不同时,结果仅包含最短对象的长度。
WK
825 2