无服务器架构(Serverless)是一种以函数即服务与后端即服务为核心的云计算范式,其核心思想是开发者无需关注服务器管理、资源调度与运维工作,仅需聚焦业务逻辑代码编写,平台自动完成资源分配、弹性扩缩容及故障恢复。该架构通过抽象基础设施层,将应用运行环境与计算资源交由云服务商管理,实现“按需使用、按量计费”的开发与运行模式,显著降低了软件开发与运维的复杂度。
请围绕“论无服务器架构(Serverless)”论题,依次从以下方面进行论述:
1、概要叙述你参与的采用无服务器架构的软件项目,说明项目的业务目标、技术选型背景及你在其中承担的主要工作。
2、详细阐述无服务器架构的核心特征及其对软件开发过程的影响。
3、结合具体项目,说明无服务器架构在需求分析、架构设计及开发实施全流程中的应用策略。
该题个人看法,难度上可以给到4颗星,主要是实践过的人少啊!
在我这两天考后复盘、聊下来的考友不下于100名,没有一个人写这道题的!几乎都是一致性的回答:知道有这项技术、没有真正实践过!
这题实际上和前面聊的那道《论云原生数据库》论题,在考察方向基本上差不多,同样也是24年11月那道《论云原生架构及应用》论题的子集,无服务器架构(Serverless)技术更加聚焦于弹性、自动化。
无服务器架构技术在我看来,可能99%的公司都用不会用这个技术,不是说不好用,是组织、使用起来太复杂,它还需要和云厂商的各种服务深度绑定,以至于多数程序员可能仅仅从概念上知道有这么这么一项技术,真正实践使用的很少。更主要的是你要是自己学习这项技术,还需要到云厂商那里购买服务才能研究学习,导致学习成本提高了,程序员实践的机会也就更少了。
无服务器架构(Serverless)的知识点主要出现在第14章“云原生架构设计理论与实践”中。在“14.3.3 无服务器技术”一节中有详细讨论。该节介绍了无服务器技术的技术特点、主要特征和应用场景,包括函数计算(FaaS)作为无服务器架构的代表性产品形态,以及无服务器计算在弹性伸缩、按量计费等方面的优势。
“无服务器”这个名字听起来好像没有服务器了,这一点如果不了解它的本质很容易引起误解。本质上“无服务器”的服务器依然存在云上,但它的核心思想是“开发者无需关心服务器的存在、运维和管理”。它是一种云计算执行模型,由云服务厂商动态地管理机器资源的分配和部署,开发者只需要专注于编写函数或业务逻辑代码,而服务器、操作系统、资源扩展、负载均衡等底层基础设施工作全部由云平台自动完成。
举个更加形象的例子:
举个实际业务例子:假设你的电商平台需要一个处理商品图片的图片压缩功能,如果使用传统方式(自建机房)或者容器化方式(k8s),为了减少图片压缩占用大量的服务器资源,你顶多是新创建一个java项目,这个java项目专门处理图片压缩,如果说你的图片非常多,你可能会采用人工的方式扩充虚拟机、容器或者提高cpu和内存的配置来提高压缩效率。