专栏名称: 云技术实践
关注云计算,云技术,云运维,云存储,存储,分布式,OpenStack,SDN,Ceph,虚拟化,运维,分享在云计算/虚拟化/运维项目实施中的资讯、经验、技术,坚持干货。
目录
相关文章推荐
美团技术团队  ·  空降复旦!上海首条高校无人机配送航线启航 ·  昨天  
架构师之路  ·  DeepSeek开源EPLB,世界上从来没有 ... ·  2 天前  
架构师之路  ·  炸裂官宣!大佬亲自站台,AWS全力支持Dee ... ·  昨天  
架构师之路  ·  CAS下的ABA问题及优化方案!技术交流,没 ... ·  4 天前  
架构师之路  ·  DeepSeek开源的DualPipe,居然 ... ·  3 天前  
51好读  ›  专栏  ›  云技术实践

关于Serverless架构及平台选择,你知道多少?

云技术实践  · 公众号  · 架构  · 2017-06-14 20:01

正文

前言

Serverless架构生态指南


Serverless架构在IT行业蓄势待发,并非没有道理。尽管这是一个相对较新的技术,但已引起了广泛的关注,许多新技术专家指出,Serverless架构具有缩短交付时间,改善操作和安全实践等功能,以及创造出 一种革命性的付费模式——按资源消耗付费。

你或许已经了解了Serverless架构,但具体生态系统是什么样的,有哪些选择?本文会给出指南,将从功能即服务(FaaS)Serverless架构的关键点出发,扩展到公有云和私有云的Serverless架构构特性,同时回顾构建Serverless架构的框架和工作堆栈,最后指出Serverless架构在整个云计算里所处的位置。

一切始于FaaS

Serverless架构生态指南


据说Serverless架构出现已经很久了,但实际始于FaaS的到来。2014年11月AWS预发布AWS Lambda,并将FaaS划入云计算版图(AWS 在2015年5月发布Lambda通用版)。

在FaaS之前,借助GAE,Heroku,AWS Elastic,Beanstalk等是可以运行应用程序而不去直接管理服务的。但这些计算服务没有直接提供面向功能的执行模型或针对每次调用的计费能力,作为代替,他们通常面向服务器或面向应用提供了弹性扩展能力。

继AWS之后,其他大型公共云提供商开始着手建立自己的FaaS平台。Azure Functions初版在2016年3月发布,随后在11月正式发布。Google Functions于2016年发布预览版之后在2017年3月发布了beta版,但正式版的发布时间仍是未知的。像这样的FaaS平台还有很多。

只有FaaS还不够

Serverless架构生态指南


FaaS作为部署和执行平台,提供了一种功能来执行业务逻辑的方法,本身并不是特别强大,而Serverless架构的价值在于,在作为集成功能时候,可与其他服务一起架构完整的框架。

很多人认为FaaS和Serverless是一样的,但这两种概念有重要的区别。

  • FaaS是一个计算服务,主要功能有部署、可伸缩性、执行和结算。

  • Serverless架构属于平台即服务(PaaS),针对事件驱动,短暂性的工作负载。它结合了FaaS与其他云服务来构建复杂的系统,同时提供可伸缩性、可操作性、综合安全性以及按使用率来计费。

Serverless架构平台选择

Serverless架构生态指南


目前最有效构建Serverless架构方法是在众多Serverless架构平台中选择其一,并充分利用它所有的功能,以下将列举几个Serverless架构平台:


Amazon Web Services

亚马逊推出了第一个FaaS的云服务平台——AWS Lambda。

Serverless架构平台在很大程度上取决于可以利用的数量和质量的功能。在AWS,功能可以由越来越多的其他服务触发。这些功能包括S3 buckets,来自API网关HTTP请求。DynamoDB表现中的变化,消息到达SNS的话题和Kinesis streams。最近,AWS把重点放在FaaS上并集成了许多新的服务。

可以使用AWS Lambda作为物联网后端,Alexa的新技能,对话机器人使用Lex和workflows with step functions功能。FaaS计算方法是被推到其他执行环境里,如亚马逊的内容分发网络,甚至到物联网设备AWS Greengrass,使用功能来增强CloudFront的行为。

与其他分布式系统相比,构建Serverless架构需要优秀IT运营的支持。AWS Lambda无缝集成CloudWatch、监控和日志记录服务。除了提供开箱即用的日志手机和指标集合,AWS CloudWatch允许使用Lambda函数自定义操作功能。

功能可以被触发CloudWatch事件(可以支持调度函数执行)CloudWatch日志流,可以通过社交网络服务对应监测指标警报。

最近,X-Ray,分布式跟踪服务,开始支持AWS Lambda(预发布版),这样就可以监视和跟踪复杂的数据流。AWS IAM,身份和访问控制服务,提供了一个集成和细粒度安全模型功能执行。

Microsoft Azure


AWS支持Serverless架构一段时间之后,Azure作为竞品正稳步发展中。Azure的功能可以由AzureStorage blob通知HTTP(休息或webhook)请求、Azure Event Hubs事件、信息存储队列以及服务总线队列或主题,或基于一个时间表进行触发。

Azure有更加结构化配置模型的功能。它允许从内部集成函数本身,输入和输出绑定附加功能,极大地简化或完全移除所需的代码与其他服务。AWS的情况与此相反,必须用SDK进行任何形式的整合。同样,Azure也支持外部集成。例如,可通过Twillio发送短信或电子邮件使用SendGrid。

Azure的Serverless架构平台在运行上比AWS缓慢。只有在应用程序服务计划时才可监视度量,这就需要再虚拟机里运行一个函数,并管理云租户。这是真的 Serverless架构 Serverless架构 吗?

如果函数执行Provider-managed计算,没有监控信息是可用的。相反,Azure提供了一组指南。它定义了函数隐式安全策略,基于输入和输出绑定,而不是像AWS一样,显示配置使用一个专用的服务。

Google Cloud Platform

谷歌尚未作出谷歌云平台(GCP)FaaS,但它提供了一些类似于AWS和Azure的核心集成功能。可以通过Cloud Storage触发谷歌云储存功能,HTTP请求,Cloud Pub/ Sub事件,和一些Firebase events(Firebase是谷歌的mobile-back-end-as-a-service平台)。

GCP在谷歌的Stackdriver监控服务中提供完整操作。日志发出谷歌函数会自动存储,在这种情况下Stackdriver。日志记录和记录的指标Stackdriver监控和质量提供了Stackdriver调试器,可以用它来研究函数的代码行为。这在排除故障时非常有用。GCP的安全模型与AWS有所不同,然而,它还没有提供支持细粒度的安全策略。

IBM Bluemix/OpenWhisk

IBM Bluemix/Apache OpenWhisk都属于PaaS平台,类似于三大公有云云提供商的开源FaaS/serverless。OpenWhisk是一个开源项目,具有完整的可视性FaaS功能,可扩展也可定制。运行Bluemix时,可以在本地基础设施或者是云上实施Open Whisk,或作为一个完全管理平台。







请到「今天看啥」查看全文