欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

AWS无服务(Serverless)LambdaHello World实践与安全防护简析

来源:本站整理 作者:佚名 时间:2020-02-11 TAG: 我要投稿

一、无服务介绍(Serverless)
计算服务的演进

随着业务的不断迭代,计算服务从最初的物理服务器向虚拟化发展,接着又出现容器技术,无论是哪种技术,降低成本、提高效率才是云服务永恒不变的主题。至此出现了无服务Serverless技术。
PS:以下介绍中无服务与Serverless是等同概念。
什么是无服务计算
云原生计算基金会(Cloud NativeComputing Foundation, CNCF)对无服务器计算作了如下定义:
Serverless computing refers to theconcept of building and running applications that do not require servermanagement. It describes a finer-grained deployment model where applications,bundled as one or more functions, are uploaded to a platform and then executed,scaled, and billed in response to the exact demand needed at the moment.
无服务器计算是指开发者在构建和运行应用时无需管理服务器等基础设施。它描述了一种更细粒度的部署模型,其中将应用程序打包为一个或多个功能,上传到平台上,然后执行、扩展和计费,以响应当时真实的需求。
 Serverless其实就一个函数或代码程序,当有访问时开始运行其函数代码,运行完成后就会自动删除,真正做到按次计费。Serverless由第三方托管,就是一个PassS服务,由事件触发。整个无服务的生命周期可以做到毫秒级别。

最底层实现复杂业务的后端微服务(Backend),然后FaaS层通过一系列函数实现业务逻辑,并为前端直接提供服务。对于前端开发者来说,前端可以通过编写函数的方式来实现服务端的逻辑。FaaS是计算层的Serverless架构实现方式之一,天然无状态的设计,实现自动的水平扩展。FaaS就像是一个强力脱水一样,连接了云上的各种服务,可用于轻松构建业务系统,实现高可用,可扩展,同时又很经济实惠的架构。越丰富的云上服务,例如大数据分析系统,AI系统,越能增加FaaS的能力。
 云厂商的常见Serverless架构

Trigger,由它来进行事件驱动,通过API网关、对象存储等服务进行事件驱动。
FaaS,函数即服务,每一个函数都是一个服务,函数可以由任何语言编写,除此之外不需要关心任何运维细节,比如:计算资源、弹性扩容,而且可以按量计费,且支持事件驱动。业界大云厂商都支持 FaaS,各自都有一套工作台、或者可视化工作流来管理这些函数。
BaaS,后端及服务,就是集成了许多中间件技术,可以无视环境调用服务,比如数据即服务(数据库服务),缓存服务等。组成 Serverless的 FaaS + BaaS。
Serverless常见服务商提供的解决方案

如果不使用公有云服务,而是自己搭建Serverless平台的话也是可以的,如OpenStack也提供了相应的解决方案。Openstack中有个项目叫Qinling,此项目就是在OpenStack平台上提供Function as a Service的功能。从OpenStack Rocky版本才开始支持Qinling项目。
Qinling利用OpenStack中已有的组件来支撑用户自定的Function运行。OpenStack提供丰富的IaaS层资源以及用户验证( Keystone ),事件监控( Adoh ),负载均衡等功能。用户自定义Function可以灵活地利用这些资源和服务达到效果。
AWS眼中的Serverless
“现代化的架构是使用AWS的服务,Lambda的功能,把它们连接在一起。没有中间层、没有应用层、也没有数据层,它是一系列WEB服务连接在一起,由功能连接在一起,无需服务器,而安全、可能、规模、性能、成本管理这些事项由AWS来完成。–“Everyone wants just to focus onbusiness logic.”
AWS Lambda就是一项Serverless服务,可使您无需预配置或管理服务器即可运行代码。AWSLambda 只在需要时执行您的代码并自动缩放,从每天几个请求到每秒数千个请求。您只需按消耗的计算时间付费 –代码未运行时不产生费用。借助 AWS Lambda,您几乎可以为任何类型的应用程序或后端服务运行代码,并且不必进行任何管理。AWS Lambda 在可用性高的计算基础设施上运行您的代码,执行计算资源的所有管理工作,其中包括服务器和操作系统维护、容量预置和自动扩展、代码监控和记录。您只需要以  AWS Lambda 支持的一种语言提供您的代码。您可以使用 AWS Lambda 运行代码以响应事件,例如更改 Amazon S3 存储桶或 Amazon DynamoDB 表中的数据;以及使用 Amazon API Gateway 运行代码以响应 HTTP 请求;或者使用通过 AWS SDK 完成的 API 调用来调用您的代码。借助这些功能,您可以使用 Lambda 轻松地为 Amazon S3 和 Amazon DynamoDB 等 AWS 服务构建数据处理触发程序,处理 Kinesis 中存储的流数据,或创建您自己的按 AWS 规模、性能和安全性运行的后端。
Serverless常见使用场景
AI应用
智能客服
视频和图片识别,分析
实时数据处理
文件处理
流数据处理
ETL
应用后端
移动APP的后端
物联网IoT的后端
如下汇总了一些实际的场景案例
1)低频请求
在物联网行业中,由于物联网设备传输数据量小,且往往是固定时间间隔进行数据传输,因此经常涉及低频请求场景。
例如:物联网应用程序每分钟仅运行一次,每次运行50ms,这意味着CPU的使用率为0.1%/小时,这也意味着可以有1000个相同的应用共享计算资源。而Serverless架构下,用户可以购买每分钟100ms的资源来满足计算需求,通过这种方式就能够有效解决效率问题,降低使用成本。

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载