微信号:kant_prog

介绍:关注Java和Python和云计算技术分享,主要分享一些进阶类的内容希望更多“成长中的程序员”可以从这些内容中学会“思考”.

Serverless简介

2016-06-20 23:18 fireflyc

云计算就是把一切都变成服务,然后通过收“服务费”赚钱。Serverless就是把“函数变成服务”(Function as a Service)。你会惊讶——这他妈的也能卖钱?先来分析一下传统的程序处理模式,以一个Web页面为例:浏览器除非HTTP请求,这个请求被一个Web Server捕获,然后Web Server执行一段逻辑生成HTML返回给浏览器。


在这个例子中我们可以把HTTP请求理解为“事件”,对于客户来说真正有价值的部分是“执行一段逻辑生成HTML”,其他的内容完全是他根本不关心的。这就是Serverless,用户定义一段“事件处理”函数(可以用任意语言),配置好触发这段函数的事件,剩下的事情——如何部署,高可用,并行,响应请求、解析协议等等都完全交给“背锅侠”——云服务商提供了。


Serverless在业内比较有名事件的是Amazon IoT, 我们来围观一下这幅漂亮、人人都能看得懂的“架构图”


所有的设备都通过AWS IoT SDK连接到 AWS上。当有通讯参数的时候(比如上传温度数据或者统计云端资源识别当前照片中的人脸)
数据会经过GateWay,GateWay会识别出本次调用时需要访问AWS中的某个服务?(右上方,Rule Engine、AWS Service部分)还是需要把“事件”传递给用户的云端代码?(右下方,Device Shadows、Applications部分)。如果只是访问AWS服务,用户连代码都不用写(比如只是上传数据),即便是需要计算,用户也只是写一个“事件处理”函数,最为奇妙的是,在整个函数中你还可以调用AWS的其他服务(在图中的AWS IoT API和Application之间还有数据流,比如应用可以调用“识别人脸算法”的API),。


没错Serverless计算服务简直是为IoT量身定做的计算服务,用户购买的资源不再是购买的不是再是“4G内存,2颗CPU,Ubuntu系统的虚拟机”而是“最大5W次X事件的响应+最大10W次Y事件的响应”。(Serverless极尽苛刻的强调NoOps)。


Serverless的架构思想和“事件驱动”很像,还有些类似的名词(IT界最不缺少的名词)——Reactive Programming、消息驱动、订阅/发布模式…………它们有相同的设计思想,不同的“约束”和“目标”决定了它们有各自不同的关注点。(所以我们IT界起名字不是随便的,我们很严肃、很认真的!!)


欢迎关注公众账号了解更多信息

觉得我写的不错,请我喝咖啡



 
写程序的康德 更多文章 怎样在1秒内启动Linux 日志:每个软件工程师都应该知道的有关实时数据的统一抽象(一) 致所有创业者——YC史上最全面教科书 OpenStack之殇 SDN实验大杀器之Mininet
猜您喜欢 中年程序员的困惑 Twitter开源其分布式高性能日志服务DistributedLog 字符串,那些你不知道的事 这个菲佣相机里的疲惫香港,竟击败全世界6万摄影师获最高摄影奖!? 到底开发者需要掌握多少门语言?