3

各位看官,你一定或多或少听到关于API Gateway,Docker,Function Compute, Serverless 等各种酷酷的新单词,跟人聊天的时候简直是装*利器呀,
那么你真的知道这个概念是什么吗?

肉肉强行理解一波概念:

Serverless 是一种基于互联网的技术架构理念,应用逻辑并非全部在服务端实现,而是采用FAAS(Function as a Service)架构,通过功能组合来实现应用程序逻辑。
同时呢,Serverless架构能够让开发者在构建应用的过程中无需关注计算资源的获取和运维,由平台来按需分配计算资源并保证应用执行的SLA,按照调用次数进行计费,有效的节省应用成本

图片描述

那么,你一定好奇 Serverless 和传统架构有什么相似和不同点呢?

传统的互联网APP主要采用C/S架构,服务器端需长期维持业务进程来处理客户端请求,并调用代码逻辑完成请求响应流程。
而在Serverless架构中,应用业务逻辑将基于FAAS架构形成独立为多个相互独立功能组件,并以API服务的形式向外提供服务;同时,不同功能组件间的逻辑组织代码将存储在阿里云Function Compute,Amazon Lambda,Azure Function,Google Cloud Functions等产品上,业务代码仅在调用时才激活运行,当响应结束占用资源便会释放。

说了这么多,Serverless 有哪些优势呢?

1) 节约使用成本
在业务突发性极高的场景下,系统为了应对业务高峰,必须构建能够应对峰值需求的系统,这个系统在大部分时间是空闲的,这就导致了严重的资源浪费和成本上升。在Serverless架构下,服务将根据用户的调用次数进行计费,节省了使用成本,同时,用户能够通过共享网络、硬盘、CPU等计算资源,在业务高峰期通过弹性扩容方式有效的应对业务峰值,在业务波谷期将资源分享给其他用户,有效的节约了成本

2) 简化设备运维
在原有的IT体系中,开发团队即需要维护应用程序,同时还要维护硬件基础设施;Serverless架构中,开发人员面对的将是第三方开发或自定义的API 和URL,底层硬件对于开发人员透明化了,技术团队无需再关注运维工作,能够更加专注于应用系统开发

3) 提升可维护性
Serverless架构中,应用程序将调用多种第三方功能服务,组成最终的应用逻辑。
目前,例如登陆鉴权服务,云数据库服务等第三方服务在安全性、可用性、性能方面都进行了大量优化,开发团队直接集成第三方的服务,能够有效的降低开发成本,同时使得应用的运维过程变得更加清晰,有效的提升了应用的可维护性

那那那,Serverless 架构能够满足哪些行业实际场景呢?怎么快速上手用起来呢?

移动行业、物联网行业是非常典型的Sreverless架构使用场景,简单举下例子

  • 低频请求场景

物联网行业中,由于物联网设备传输数据量小,且往往是固定时间间隔进行数据传输,因此经常涉及低频请求场景。例如:物联网应用程序每分钟仅运行一次,每次运行50ms,这意味着CPU的使用率为0.1%/小时,这也意味着其实有1000个相同的应用可以共享计算资源。而Serverless架构下,用户可以购买每分钟100ms的资源来满足计算需求,通过这种方式就能够有效解决效率问题,降低使用成本

  • 流量突发场景

例如:移动互联网应用经常会面对突发流量场景,例如:移动应用的通常流量情况是QPS 20,但每隔五分钟会有一个持续10s的QPS 200流量(10倍于通常流量),传统架构下企业必须扩展QPS 200的硬件能力来应对业务高峰,即使高峰时间仅占整个运行时间的4%;而在Serverless架构下,用户可以利用弹性扩展特性,快速构建新的计算能力来满足当前需求,当业务高峰后,资源能够自动释放,有效节省成本

当然啦,Serverless领域 AWS Lambda是先行者。随后其他厂商相继推出了自己的函数服务,包括Azure Function,Google Cloud Functions。
阿里云的Serverless产品函数服务(Function Compute)现在正在紧张的研发阶段,预计2016年底之前会正式对外发布。

阿里云未来会围绕Serverless概念构建完整的生态体系,产品层面将全力打造API Gateway,Docker,Function Compute等为主的Serverless基础产品序列,同时围绕基础框架提升大数据服务能力,推动API经济发展

我们先设一个小目标:努力成为中国 Serverless 的领导者 (羞羞脸...


binaryTree
1.2k 声望510 粉丝

五花肉 ...