1.无服务器架构入门

目录

1.Serverless基础

2.Serverless的目标受众

3.Serverless对于开发人员和运维人员的要求

4.Serverless的优点

5.Serverless的缺点

1.Serverless基础

Serverless架构中文名称叫无服务器架构,是指在构建和运行应用时,不再需要将更多的精力放到服务器管理上。实际上,它描述了一种更细粒度的部署模型,Serverless是函数粒度的部署。即一个应用程序捆绑一个或多个函数,开发者只需要将这些函数开发完成,并上传到供应商提供的Serverless架构平台,然后执行即可,至于其中可能需要的服务器运维、扩缩容等操作,都由供应商考虑并提供技术支持。

Serverless并不意味着我们不再需要服务器来运行程序,也不意味着不再需要运维工程师。它指使用无服务器架构后,不再需要花费时间和资源来进行服务器配置、维护、更新、扩容和容量规划。所有的这些任务都交给Serverless平台来处理。因此,开发人员可以专注于编写应用程序的业务逻辑代码,运维工程师也能够将关注点放在关键业务上。

Serverless架构中包括两种角色:一个是Developer,即开发人员,一个是,即供应商。

其中开发人员在指定平台编写代码并部署执行,这里的指定平台就是Serverless平台;供应商为外部或内部客户部署Serverless平台。部署Serverless平台就是提供相关的BaaS与Faas能力。

Serverless实际上是Faas+Baas,所谓Faas,就是Function as a Service,通常提供事件驱动计算。开发人员使用由事件或HTTP请求触发的函数来运行和挂历应用程序代码。开发人员将代码以函数为单元部署到Faas平台,这些代码将根据需要执行,在执行过程中,开发者无须管理服务器或任何其他底层基础设施。

而所谓的BaaS则是Backend as a Service,它是基于API的第三方服务,可替代应用程序中的核心功能子集。因为这些API是作为可以自动扩展和透明操作的服务而被提供的,所以对于开发人员表现为Serverless。

当我们所开发的应用满足以下情况时,可以优先考虑才有Serverless架构:

  1. 异步、并发、易于并行化为独立的工作单元
  2. 不经常或有零星的需求,在扩展要求方面存在巨大的、不可预测的差异
  3. 无状态、短暂的、对瞬间冷启动时间没有过多需求
  4. 在业务需求变更方面具有高度动态性,需要加快开发的速度
  5. 执行逻辑以响应数据库更改
  6. 对物联网传感器输入消息进行分析
  7. 流处理(分析或修改动态数据)
  8. 管理单次提取、转换和加载的作业,这些作业需要在短时间内进行大量处理
  9. 通过聊天机器人界面提供认知计算
  10. 调度执行时间很短的任务,例如Cron或批处理调用等
  11. 服务于机器学习和AI模型
  12. 持续继承Pipeline,按需为构建作业提供资源,而不是保留构建从属主机池等待作业分派

Serverless使开发人员能够专注于由事件驱动的函数组成的应用程序,这些函数响应各种触发器并让平台负责其余的事情,例如从触发器到函数逻辑、从一个函数传递到另一个函数的信息、自动设置容器和运行时间、自动扩容、身份管理等。

2.Serverless的目标受众

  1. 希望在单个函数中更多地关注业务逻辑的开发人员,这些函数可根据需求自动扩展
  2. 希望更快地构建应用程序并且更少地关注运维的开发人员
  3. 创建事件驱动应用程序的开发人员和团队,例如响应数据库更改、物联网读数、人工输入等
  4. 在标准和最佳实践尚未完全建立的领域,能够轻松采用尖端技术的组织

3.Serverless对于开发人员和运维人员的要求

  1. 迭代函数,在本地Web开发环境中构建和测试
  2. 将单个函数上传到Serverless平台
  3. 声明事件触发器、函数及其运行时,以及事件到函数的关系
  4. 测试并观察生产中的应用
  5. 无须更新配置以确保高可用性和扩展以匹配需求

4.Serverless的优点

  1. 开发人员的关注点已经远离运维问题,如管理高可用函数的部署,开发人员可以更多地转向函数逻辑本身
  2. 开发人员可以根据需求或工作量自动扩展
  3. 利用新的"即用即付"成本模型,仅按照代码实际运行的时间收费
  4. 操作系统,运行时甚至容器生命周期都是完全抽象的(Serverless)
  5. 更适合涉及物联网、数据和消息的新兴事件驱动和不可预测的工作负载
  6. 通常是无状态、不可变和短暂的部署。每个函数都以指定的角色和明确定义有限的资源访问权限运行
  7. 中间件层将得到调整和优化,应用程序的性能随着时间的推移将提高
  8. 易于将第三方API集成为定制的Serverless API,既可以扩展使用,又可以灵活地从客户端或服务器调用

5.Serverless的缺点

  1. 一种新兴的计算模型,快速创新,缺乏全面的文档、示例及稳定的工具和最佳实践
  2. 由于运行时更具动态性,于IaaS和PaaS相比,调试可能更具挑战性
  3. 由于是按需架构,如果运行时在空闲时删除函数的所有实例,则某些Serverless应用运行时的"冷启动"可能有性能问题
  4. 在更复杂的情况下(例如触发其他函数的函数),对于相同数量的逻辑,可能存在更多的测试需求
  5. 缺乏标准化和生态系统成熟度
  6. 由于是平台的编程模型,事件和消息接口和BaaS产品有被平台锁定的可能性

Serverless从诞生之日起到目前为止,经历了从不为人知到广为人知的过程,有人对Serverless异常看好,也有人对其表示怀疑,但是无论如何,这个架构确实在不断地流行起来,究其根本,就是因为它的众多优点带来了极大的便利。

相关推荐
提子拌饭13342 分钟前
风息时钟:鸿蒙Flutter 实现的自然风格时钟应用
flutter·华为·架构·开源·harmonyos
科技小花4 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
2501_948114244 小时前
2026年大模型API聚合平台技术评测:企业级接入层的治理演进与星链4SAPI架构观察
大数据·人工智能·gpt·架构·claude
FserSuN4 小时前
LangChain DeepAgent 多 Agent 架构原理学习
架构·langchain
坏孩子的诺亚方舟4 小时前
RTL设计师攻略0_架构与微架构
架构·cpu·面试攻略
智星云算力5 小时前
本地GPU与租用GPU混合部署:混合算力架构搭建指南
人工智能·架构·gpu算力·智星云·gpu租用
熊猫钓鱼>_>6 小时前
从“流程固化“到“意图驱动“:大模型调智能体调Skill架构深度解析
ai·架构·大模型·llm·agent·skill·openclaw
H_老邪7 小时前
什么是云原生?
云原生
Agent产品评测局7 小时前
互联网行业自动化平台选型,运营全流程提效指南:2026企业级智能体架构与实战全解析
运维·人工智能·ai·chatgpt·架构·自动化
AI成长日志8 小时前
【AI原生开发实战】1.2 传统开发 vs AI原生开发:思维转变与架构差异
服务器·架构·ai-native