直播回顾 | 2021 MAXP 无服务器赛题讲解

e1d221399f76b6a90e147e8c6f612dfa.gif

Gartner 最近的一份报告表明:到 2021 年,全球将有 20% 的企业部署无服务器架构。无服务器架构不再只是一个热门话题,而是逐渐地成为云计算领域的重要技术方向,并且已经在软件世界掀起一场革命。诸多大型科技企业(如亚马逊、微软和谷歌)已经在无服务器架构领域重资投入,追赶革命的浪潮。与其名字相反,无服务器架构实际上并没有把服务器去掉。那么,究竟什么是无服务器架构?

9月24日,biendata 邀请亚马逊云科技解决方案架构师吕宁,针对 2021 MAXP 无服务器赛题开展了一场线上直播讲解。在本次直播中吕宁老师分别介绍了亚马逊云科技的Serverless服务:Amazon Lambda 和 Amazon S3;以及内容分发网络服务 Amazon CloudFront ;最后详细讲解了本次大赛无服务器赛题的解题技巧。本文为完整直播内容的转写图文回顾,希望能够帮助各参赛团队开阔思路,取得更好的成绩。

直播视频回顾:https://www.bilibili.com/video/BV1oR4y1H78r?spm_id_from=333.999.0.0

关于2021 MAXP

2021 MAXP 高性能云计算创新大赛(2021 MAXP)由中国计算机学会高性能计算专业委员会和中国信息通信研究院指导,ACM中国高性能计算专家委员会(ACMSIGHPC)和云计算开源产业联盟联合主办,亚马逊云科技和腾讯云支持,阿里云、华为云、UCloud、天翼云等厂商参与。大赛以高性能云计算为主题,旨在进一步推动国内高性能计算的发展,并为参赛者提供了高达40万元的奖金池,还会提供实习机会和权威荣誉证书。

0270dca3623acc504f04e948aac3c44b.png

直播回顾

772f93c7bad29b6415a80fad136056a8.png

针对无服务器的赛题分为三部分进行讲解。首先是 Amaozn Serverless 服务,分为 Amazon Lambda 和 Amazon S3 两个模块。其次是 Amazon CloudFront。最后讲解 Serverless 无服务器赛题。

caf9483cb24853cb1cb02b781e1c78ce.png

无服务器具有4个特点。第一个特点是不需要管理服务器;第二个特点是能够持续拓展,它能够根据流量的大小进行自动拓展;第三个特点是为价值付费,也就是即用即付费。如果无服务器的应用处于空闲状态,那么这个应用不收费;第四个特点是具有高可用和容错的特点。

67444c408817ee5f080fe89d4395af7f.png

Amazon Lambda 是无服务器的计算服务,让用户可以无需预置服务器即可运行代码,Amazon Lambda 可以被事件源触发。

eb9324e37eb5104e6538288865a445de.png

事件源主要包含三种类型。第一种是服务端点请求。例如 Amazon API Gateway 的 HTTP 请求。第二种是数据状态改变,例如数据库中有新的数据写入。第三种是资源状态改变,例如像 EC 机器变成了运行状态。Amazon Lambda 目前支持 Node.js , Python ,Java等常用语言。根据 Amazon Lambda 的业务逻辑,它可以和任意的服务交互。

bd824bf1be1d849aa9e93dcfe9475332.png

以 Amazon Lambda 的事件源举例,事件源里有与数据存储相关的,例如 Amazon S3 ,Amazon DynamoDB 等。也可以被 ENDPOINTS 触发,例如 Amazon API Gateway。还能被开发和管理工具触发,Amazon CloudFormation 状态和资源变化,也可以触发 Amazon Lambda。通过事件和消息服务来触发。例如 SNS , SQS 等。

fd557cbc32cdf6f22fcc7876e71e2dc2.png

在 Amazon Lambda 的 function 中可以添加触发器,目前用 Amaozn API Gateway 作为触发机。也可以添加其他触发器,目前支持多种 Amazon Serverless 作为触发器。可以选择合作伙伴的事件源,在 Amazon Lambda 函数中写代码实现相应的功能。

当需要测试时用 JSON 形式写测试事件,点击测试按钮即可进行测试。赛题会提供一些模板,比如与 Amazon CloudFront 相关的模板,可以在此基础上进行更改。在监控标签页中可以看到 Amazon Lambda 的日志对后期的调试帮助很大。

点击日志链接跳转到相应的 Amazon CloudWatch 。查看具体的日志信息,在配置标签页进行权限配置,可以设置环境变量以及对内存和超时进行配置等。

通过 Amazon API Gateway 触发 Amazon Lambda 的方式编写 Rest API ,在进到Amazon API Gatewaye 之后配置集成请求的类型,选择 LAMBDA_PROXY 后可以指定相应的 Amazon Lambda。

最后对 Amazon API Gateway 和 Amazon Lambda 作为整体进行测试,输入相应的查询的字符串后测试的响应标头及日志都会在下方显示出来。

测试通过之后,选择相应的部署阶段后,公共的 API接口即可被调用。

在浏览器中输入刚才的 API 即可对其进行测试。

默认的 Amazon API Gateway 部署完之后都是公共的,也就是说任何人拿到 API 接口之后都可以进行访问。如果需要限制访问请求,可以点击授权方的按钮创建新的授权方。

cf9a22de72a2cdc9207071744f5b5473.png

Amazon S3全称是Amazon Simple Storage Service,是对象存储的服务,提供了行业领先的可拓展性、数据可用性、安全性和性能。S3目前有99.999999999%(11个9)的持久性,稳定性非常高。

4776af816b47e454670e47aa0d25d9d3.png

接下来对 Amazon CloudFront 进行介绍。

a1e5c9ea873d2a15022ca77ba3d11e54.png

Amazon CloudFront是亚马逊的内容分发网络服务,也就是CDN服务。通过Amazon CloudFront 用户可以安全的以低延时和高传输速度向全球的客户分发静态和动态内容。

目前 Amazon CloudFront 包含了超过215个边缘缓存节点,13个区域缓存节点,包含 100GbE 的私有冗余网络,覆盖了47个国家和90个城市。

034098bf3a055c82ba1b8546b7e2027a.png

Amazon CloudFront 可以用于如下的场景:

首先是视频流,包含视频直播及视频点播。其次是 API 的动态加速,通过亚马逊云科技的主干网,可以让API能够更快地执行,Amazon Lambda也可以被 Amazon CloudFront 触发。Amazon Lambda 可以运行在 Amazon CloudFront 的区域缓存节点上,最终赋予了 Amazon CloudFront 边缘计算的功能。

Amazon CloudFront还可以用于大文件下载,例如游戏的升级包下载,最后  Amazon CloudFront 可以用于静态内容分发,例如 html 、图片、GS 文件等,因为所有的分析都是基于日志的。

Amazon CloudFront 默认关闭所有的日志。如果需要打开实时日志,可以进到日志的页面,选择实时配置创建一个新的配置,如果日志请求不是特别大,可以按100%去进行采样,选择需要输出到日志中的字段进行分配,最后点击创建配置就可以了。

实时日志通过给流式的方式传输,将日志做自定义处理。例如将日志存储在Amazon S3桶上,或将日志进行分析,找到特定的字段进行分区等。

启用 Amazon CloudFront 日志之后,在配置的 Amazon S3 桶里面即可看到相应的日志文件。

6f04283d3bd1a9f481611c7b926b9219.png

下面针对 Serverless 赛题进行讲解。

fcd6fc5c733f439231f0e5cba63ac8db.png

根据无服务器赛题的任务描述可以知道,本次赛题的要求是做网络监控的 Dashboard,提供的表格里是 Dashboard 的各项需求描述及优先级。

其中 P0 是高优先级,P1 是中优先级,P2 是低优先级,按照优先级高低划分需求重要性。第一个需求是开发出获取各个指标的 API 接口,接口的格式是 JSON ,有6个指标需要完成。

第一个指标是 Amazon CloudFront,也就是亚马逊的 cdn 服务,它在某一个时间段内的缓存命中率是多少。

第二个指标是 HTTP 请求的返回状态码,例如200、400、503等。

第三个指标是响应时长,需要对响应时长进行统计,例如在指定时间段内 P90 的时长是多少,P95 的时长是多少,以及最大延迟是多少。

第四个指标是流量带宽。

第五个指标是访问次数。

第六个指标是客户端IP请求数量的排名。可以按客户端IP请求数量由高到低进行排名。

这六个指标都可以通过分析 Amazon CloudFront 日志获得。

Amazon CloudFront 的日志包含两类:

第一类是访问日志,也就是 access log 。访问日志的时效最多不超过24小时,一般情况下访问日志只需要10分钟左右就可以生成,极端情况下访问日志时效最多不会超过24小时。

第二种日志是实时日志。实时日志能把 Amazon CloudFront 的日志实时保存在S3桶中,需要分析访问日志还是实时日志由参赛者来决定。

第二个需求主要对时效进行限制。Dashboard的时效不能超过24小时,也就是说Amazon CloudFront 的访问日志和实时日志都可以满足这个需求。

第三个需求是需要一个可视化的 Dashboard。可以使用目前通用的服务,例如亚马逊云科技服务,open search Dashboard 等 。

第四个需求是支持一键部署。一键部署指用户可以通过执行命令,或是点击按钮能将整个的 Dashboard 及 API 用到的服务自动部署到指定的环境上。

亚马逊云科技用于部署的服务主要是 CDK 。CDK 可以让用户通过写代码的方式去写部署脚本。

第五个需求是实现登录功能,游客不能查看 Dashboard 。

第六个需求是用户可以点击忘记密码重置密码。

第五个、第六个都是关于健全的,可以使用开源的健全服务。

赛题提供了网站的部署模板,可以点击【前往部署入口】按钮,选择从北京区域或宁夏区域启动方案,输入管理员姓名邮箱,勾选复选框创建对战即可。

对战执行完成后压测网站会自动创建出来,这个网站用于获取监控数据。网站中会用到 Amazon CloudFront ,将 Amazon CloudFront 的日志保存在 Amazon S3 桶中,通过分析 Amazon CloudFront 的日志获得监控指标。达到堆栈执行完成后,进到输出的标签页就可以看到网站的URL。

427848af8f8e02844c89029158c9d49d.png

点击阅读原文前往大赛官网

最后,我们将随机赠送5份亚马逊云科技专属礼品。

快来参加吧~说不定你就是那个幸运儿!

eef0138409ad0dcd7cad39407be3e536.gif

afc5fb190651c59f2b6c79cd8fa389d4.gif

听说,点完下面4个按钮

就不会碰到bug了!

a311d8ef1ed9c37c67d3de333f83f6a5.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值