当前位置: 首页 > article >正文

Serverless架构

Serverless架构:漂浮在云端的轻盈与自由 

类似于 Fn Project 的 Serverless 开源服务有很多,它们都旨在简化函数即服务(FaaS)的开发流程,使得开发者可以更专注于业务逻辑而不是底层基础设施。下面列举了一些知名的 Serverless 开源平台和服务:

1. **OpenFaaS**
- OpenFaaS 是一个开放源码的平台,可以在 Kubernetes 上运行,支持多种语言,提供了一个简单的方式来部署服务器端无状态或者有状态的应用程序。

2. **Knative**
- 谷歌主导的 Knative 是一个 Kubernetes 的扩展,它提供了一组 API 和工具来帮助开发者构建、部署和管理现代应用,包括 Serverless 应用。

3. **Apache OpenWhisk**
- Apache OpenWhisk 是一个开源的分布式计算平台,它提供了事件驱动的能力,支持多种编程语言。

4. **OpenFaas Faas-netes**
- 这是 OpenFaaS 社区的一个项目,专门为 Kubernetes 设计,允许用户在一个 Kubernetes 集群上部署函数。

5. **Serverless Framework**
- 虽然主要与 AWS Lambda 结合使用,但 Serverless Framework 本身是一个用于部署 Serverless 应用程序的工具,也支持其他平台。

6. **Nuclio**
- Nuclio 是一个由 VMware 开发的开源框架,用于在 Kubernetes 上快速部署低延迟的机器学习模型和其他应用。

7. **Fission**
- Fission 是一个 Kubernetes 的 Serverless 框架,支持多种语言,并且可以很容易地与现有的 Kubernetes 集群集成。

8. **Kubeless**
- Kubeless 是一个简单的 Kubernetes 工具,用于部署和管理无服务器函数。

9. **OpenLambda**
- OpenLambda 是一个用于在任何基础设施上部署和运行 Lambda 函数的开源项目。

10. **Iron.io**
- Iron.io 提供了一系列云服务组件,包括 IronFunctions,这是一个可部署在本地或云上的无服务器平台。

 优点:轻松游走在云端的便利 
  • 极大降低运维负担:开发者无需考虑服务器的部署、管理和扩展问题,可以将更多的精力投入到核心业务的开发中。
  • 弹性扩展与计费:Serverless架构能够根据实际的需求,自动调整计算资源,而且通常只需为实际使用的资源付费。
  • 快速部署与迭代:简化了部署流程,能够更快地从开发迭代到线上运行。
缺点:自由与束缚并存 
  • 高度依赖云平台:应用的运行和稳定性在很大程度上依赖于云平台的能力和稳定性。
  • 冷启动延迟:在服务经过一段时间的不活动后,再次启动可能会面临冷启动的延迟问题。
  • 网络延迟:由于业务逻辑运行在云端,网络延迟也成为影响响应时间的因素之一。
使用场景:适应性的选择 
  • 事件驱动的计算:对于需要快速响应事件触发的计算任务,例如实时数据处理、图像处理等。
  • 轻量级的Web应用:一些不需要复杂后端支持的应用,例如静态网站、小工具或API等。
  • 临时性的大规模计算:例如在特定时间需要进行大规模数据分析的任务。
技术选型:多元的技术搭配 
  • AWS Lambda:支持多种编程语言,如Node.js、Python、Java等,并提供丰富的触发器。
  • Azure Functions:允许使用C#、Java、JavaScript等语言,并支持多种触发器和绑定类型。
  • Google Cloud Functions:侧重于事件驱动的计算,支持Node.js、Python、Go等。

Serverless架构,一种让开发者更加专注于业务开发的架构模式,虽然带有一定的依赖和局限,但同时也提供了极大的便利和自由。在某些适应的场景下,Serverless架构能够以其轻盈和敏捷,快速响应市场的变化和需求。


http://www.kler.cn/news/312973.html

相关文章:

  • 【C/C++语言系列】实现单例模式
  • golang学习笔记23——golang微服务中服务间通信问题探讨
  • 【ShuQiHere】 探索 IEEE 754 浮点数标准:以 57.625 和 -57.625 为例
  • 【bugfix】-洽谈回填的图片消息无法显示
  • 0基础学习HTML(八)头部
  • PyCharm部分快捷键冲突问题
  • Pybullet 安装过程
  • 利士策分享,周末时光:一场自我充实的精致规划
  • python学习-10【模块】
  • C#开源的一个能利用Windows通知栏背单词的软件
  • 【修改Linux登录时欢迎信息】
  • 基于SpringBoot+Vue的宠物医院管理系统
  • Tomcat CVE-2017-12615 靶场攻略
  • 请求HTTP链接的图片等资源被自动变成HTTPS请求的问题解决(顺便可以解决图片防盗链)
  • 木舟0基础学习Java的第二十八天(常见的Java框架,MyBatis框架,动态SQL,缓存机制,多表关联查询,注释开发,逆向工程,LOG4J,Lombok)
  • VIVADO IP核之FIR插值器多相滤波仿真
  • flutter遇到问题及解决方案
  • OpenCV库学习之cv2.VideoWriter(函数)
  • 一起对话式学习-机器学习03——模型评估与模型选择
  • Lingo求解器基本语法
  • 基于ExtendSim的 电子制造 仿真模型
  • mendelson AS2的使用和配置
  • ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal 区别,使用场景 示例
  • 【busybox记录】【shell指令】kill
  • Idea开发Gradle多模块项目踩坑纪实之一:Java模块无法执行
  • 【sql】MySQL中去重处理的方法
  • SpringMVC 处理 Ajax 请求
  • 【204】C++的vector删除重复元素
  • Java 基础篇:环境搭建、基本语法与面向对象编程
  • 【JPCS出版】第二届应用统计、建模与先进算法国际学术会议(ASMA2024,9月27日-29)