Serverless 翻译成中文是无服务器,所谓的无服务器并非是说不需要依靠服务器等资源,而是说开发者再也不用过多考虑服务器的问题,可以更专注在产品代码上,同时计算资源也开始作为服务出现,而不是作为服务器的概念出现,Serverless是一种构建和管理基于微服务架构的完整流程,允许用户在服务部署级别而不是服务器部署级别来管理用户的应用部署。与传统架构的不同之处在于,它完全由第三方管理,由事件触发,存在于无状态(Stateless),暂存(可能只存在于一次调用的过程中)在计算容器内,Serverless 部署应用无须涉及更多的基础设施建设,就可以基本实现自动构建、部署和启动服务。
而在 Serverless 架构下,开发者只需要关心我们的业务代码即可,在项目整个的开发、上线、维护过程中,用户并不需要关注服务器层面的维护,也无需为流量的波峰波谷进行运维资源的投入,这一部分将由云厂商来负责;同时在 Serverless 架构下,用户也无需为闲置资源进行额外支出。
Serverless优点:
- 降本提效
Serverless 的使用者不用更多的担心自身的服务器运维,基础设施的运维等工作,更不用为这部分有额外的费用支出,无需承担更多的运维工作成本等;Serverless 架构提供了较为完善、全面的按量付费模型,使用者只需要按照自己实际使用的资源量付费即可;Serverless 架构在这一层面有较为明确的优势。
- 安全、方便、可靠
Serverless 架构明显比其它架构更简单,因为更多的 Baas 服务都是云厂商提供的,使用者将会管理更少的组件,这意味着 Serverless 的使用者可以更简单更方便的管理项目
Serverless 主要运用场景:
- 实时数据处理
通过 Serverless 架构所支持的丰富的事件源,通过事件触发机制,可以通过几行代码和简单的配置对数据进行实时处理,例如:对对象存储压缩包进行解压、对日志或数据库中的数据进行清洗、对 MNS 消息进行自定义消费等
- 流量突发场景
面对移动互联网对突发场景,例如直播场面,传统架构下,企业必须扩展QPS 200的硬件能力来应对业务高峰,在Serverless架构下,您可以利用弹性扩展特性,快速构建新的计算能力来满足当前需求,当业务高峰后,资源能够自动释放,有效节省成本
- Web 应用/移动应用后端
Serverless 架构和云厂商所提供的其他云产品进行结合,开发者能够构建可弹性扩展的移动或 Web 应用程序,轻松创建丰富的无服务器后端,而且这些程序可在多个数据中心高可用运行,无需在可扩展性、备份冗余方面执行任何管理工作。
- 音视频转码
Serverless 技术与对象存储相关产品组合后,可利用对象存储相关触发器,即上传者将视频上传到对象存储中,触发 Serverless 架构的计算平台(FaaS 平台)对其进行处理,处理之后将其重新存储到对象存储中,这个时候其他用户就可以选择编码后的视频进行播放
综上所述, Serverless 架构的典型应用场景更多是由 Serverless 架构的特点决定的