一个新概念走向万众瞩目的架构需要经历多久的时间?Serverless 用了将近十年。
从 2012 年首次进入大众视野,到 2014 年亚马逊云科技发布 Amazon Lambda 完成商业化飞跃,再到如今,越来越多的云产品走向 Serverless 化...... Serverless 架构在推动云计算前进的过程中,扮演着越来越重要的角色,也同时拥有了更丰富的落地场景。有关无服务器的讨论话题,早已悄无声息地从“为什么用”向“如何更好地用”转变。
Serverless 架构如何更好的落地实践?在 Serverless 场景下如何做业务创新?亚马逊云科技作为 Serverless 持续发展的先行者与推动者,围绕 “Serverless For Good” 这一主题举办了“亚马逊云科技 2022 编程挑战赛”。本届大赛于 10 月 14 日完美收官,获奖情况如下:
冠军:Ouroboros 队(李若然、刘霄鹏)
亚军:破浪乘风队(李世峰)
季军:Lili 队(李伟玲、周耀伟)
优秀奖团队:Dragon-Ponderyao(周泳龙、姚泽鹏)、铸心科技(钟志强、胡桐)、inplayable(方亮,武杰,张彦升,苏子阔,王生财)
从一场比赛到玩转 Serverless
从初赛到决赛答辩,“亚马逊云科技 2022 Serverless For Good 编程挑战赛”整个赛程历时 3 个多月的时间,汇集了来自全国各地的开发者。
亚军获得者李世峰表示,之前对 Amazon EC2 等服务用的比较多,亚马逊云科技的 Serverless 服务对于他来说还比较新,接触的不是特别多。
决定参与亚马逊云科技编程挑战赛,对李世峰而言其实是机缘巧合。当时,李世峰正在用某云厂商的无服务器技术做视频转码,刚好看到亚马逊云科技的 Serverless 大赛,也是想体验一下亚马逊云上的 Serverless 开发,于是决定试试。这次比赛接触下来,他表示,体验感非常好,比如,一般开发是基于容器,容器上了云再通过不同方式调度,但是采用 Amazon Lambda 基本不用考虑这些事,上传一个命令就搞定了,并且能够马上调用。用他的话说,简直太爽了。他说 :“亚马逊云科技很多的功能、接口都是开放出来的,确实能做很多事情,相比之前用过的云服务只能做一些比较粗颗粒的事情,亚马逊云提供的 Serverless 服务能够进行更加细粒度和更加精准的控制。”
也许每个选手对于 Serverless 的了解程度不尽相同,但对于所有的参赛选手而言,都存在一个共同的特质,那就是愿意接受新技术并勇于面对挑战。
冠军获得者是来自戴姆勒大中华区投资有限公司的 Ouroboros 队。Ouroboros 队的两名队员李若然、刘霄鹏本来就是两个典型的技术达人,喜欢“捣鼓”。李若然平常就会自己搭建一些好玩的应用,像智能家居方面通过手机实现家电远程控制的程序、新旧设备管理方面的应用、混沌工程的设计等等。李若然说:“我们都很愿意尝鲜,喜欢尝试新的东西,也都是亚马逊云科技的铁粉,只要亚马逊云科技推出新的服务,我们就想要试一试。”
对于这次参赛经历,李若然表示,让他觉得最兴奋的是能够跟其他出色的、对于技术感兴趣的人一起进行交流,如果不是在竞赛的环境里,很容易会停下来,而这次比赛让他们开阔了眼界,了解到行业还有更多有价值的东西值得探索,很多需求是更贴近真实的终端用户,贴近消费者的日常的。
本次大赛整体希望参赛选手结合自身工作经历、兴趣爱好、当下现代化应用的构建需求,呈现出完整、精彩的 Serverless 解决方案。初赛的定向赛,主要考察参赛选手们对于 Serverles 架构的了解;决赛阶段难度飙升,不再限定具体的场景,而是需要参赛团队基于自身对于 Serverless 架构的了解,发挥想象力和创造力,自由完成现代化应用场景的搭建,并且每支参赛团队必须完成能够试用的 Demo。参赛选手的作品均基于 Amazon Serverless 架构实现。
获奖作品大盘点,你 Pick 谁?
基于 Serverless 架构设计的图像处理低代码平台;低成本、低延迟、高可扩展性的视频直播方案;聚焦网络与数据安全开发的漏洞修补服务;基于电商网络海量评论数据的情感与关键词分析平台...... 参赛选手们的作品精彩纷呈。本次大赛的评委之一,亚马逊云科技大中华区产品部无服务器产品经理马平表示,从决赛 10 支队伍的阐述中,他也学到了不少。
众多优秀的作品之中,为什么是这三支脱颖而出?到底是什么特质打动了现场的评委老师们。接下来,小编就带你细细盘点下获奖的个三支作品。
冠军作品:Serverless for Security Hub
【Ouroboros 队】将 Serverless 架构用于解决企业面临安全问题。他们凭借一款基于 Amazon Security Hub 的漏洞修复服务,将本次大赛的冠军稳稳的收入囊中。
安全无小事,基于安全方面的问题,业界已有很多非常有效的安全工具,用以进行代码扫描、威胁检测等等,但目前仍面临两大挑战,其一,是跨国公司在中国可能没有销售许可证,导致这些工具对于跨国公司来说没办法采用。其二,是这些安全工具的费用普遍较高,中小型企业很难承受。
Ouroboros 提出的解决方案主要基于亚马逊云科技提供的一款 Amazon Security Hub 服务。Amazon Security Hub 可以将云上所有资源里不符合 Amazon 基础安全最佳实践 v1.0.0 和独联体亚马逊基金会基准 v1.2.0 规范的漏洞扫描出来并进行展现,用户可以根据扫描结果对漏洞进行修复和处理。Ouroboros 基于 Amazon Security Hub 的 Findings,开发了一款 Serverless 的漏洞修复 Handler。
为什么会考虑开发一款这样的服务?刘霄鹏介绍说,云上资源主要是通过代码管控,Amazon Cloud Formation 等工具能够让开发者快速把云资源调度起来,采用 Serverless 架构能够极大的提升效率,并降低企业在安全方面的资金投入,实现降本增效。Ouroboros 基于 Serverless 设计,不需要真正的服务器不断运行监控 Findings,而是依托于 Amazon Security Hub,只有当 Amazon Security Hub 检测出漏洞,才启动修复。
Ouroboros 队作品技术架构图
不仅如此,Ouroboros 还考虑到了应用的可扩展性。安全规范与法规通常是不断更新的。在 Ouroboros 中,对于规范里不同的 Findings,设计了不同的 Handler。这些 Handler 在实际应用过程中,可以由整个社区贡献,通过这样的方式,能够不断扩展 Ouroboros 修复漏洞的范围,社区的用户都能贡献自己对于不同类型的 Findings 修复的处理方式,形成一个安全的生态系统。
对于 Ouroboros 的作品,现场的四位评委都给予了很高的评价。亚马逊云科技大中华区产品部资深无服务器技术专家孙华非常直接的表示,Ouroboros 提出的安全自动化的方案对于企业是非常实用的,如果真的开源出来,可以直接在国内的客户里进行推广。
亚军作品:基于 Amazon Serverless 的低成本、低延迟、高可扩展性的视频直播方案
获得本次大赛亚军的选手,破浪乘风队的李世峰,作为个人参赛选手当仁不让,结合来自教育行业的工作经历,设计了一款低成本、低延时、高扩展性的视频直播解决方案。李世峰用一张 Serverless 技术架构图直观的展现了该方案下创建直播的流程。
破浪乘风队作品技术架构图
用户在浏览器中打开托管于 Amazon S3 的网页,通过 JS SDK 向 Amazon Lambda 发出请求,然后在 Amazon Lambda 中向 Amazon CloudFormation 发起一个创建 Stack 的请求,由于这个步骤是一个比较耗时的操作,所以没有做 blocking wait,而是异步地让 Amazon CloudFormation 将 Stack 创建完成的消息通知给 Amazon SNS,再在另外一个 Amazon Lambda 里处理这个消息,基于新创建的 Stack 启动 Fargate 实例。启动 Fargate 实例同样也是一个耗时的操作,所以方案让 Amazon ECS 状态改变的信息根据指定的过滤规则发送到 Amazon EventBridge,再由 Amazon EventBridge 发送给 Amazon SNS,最后交 Amazon Lambda 处理。当新启动的 Amazon Lambda 实例准备就绪的时候,客户端就可以通过 WebRTC 连接上来,从而实现低延迟的直播收看。
低延迟之外,项目的高扩展性又是如何实现的呢?李世峰介绍,每个 Fargate 实例上运行的 OvenMediaEngine 开源流媒体引擎既可作源节点,又可作为边缘节点。作为源节点它可以将流媒体中继到下一层级的节点,作为边缘节点它可以直接接受用户的观看连接,这样,通过增加层级就可以不断地动态调整直播网络,形成一个树状、甚至是更稳定的网状结构,支持直播观众群规模的动态扩大。
直播成本方面包括网络流量费用和 Fargate 实例费用(包括 vCPU、内存、磁盘和 IP 地址的成本)。答辩环节,李世峰以一场百万用户同时在线的直播为例,对成本进行了细致的估算。较市面上相同技术指标的某互动直播解决方案,基于 Amazon Serverless 架构的本方案成本可以下降 69%-77%,运维成本几乎为零,即申请即用、用完即停,避免了资源浪费。
对于该方案,科大讯飞资深 AI 平台架构师吴义平给与了充分的肯定。他说:“这种偏分布式的推流架构,在技术上拥有很高的可行性,在众多作品中给我留下了非常深刻的印象”。
季军作品:Serverless 架构的图像处理低代码平台
近年来,如果说到技术圈的热门话题,低代码一定榜上有名。获得本次大赛季军的 Lili 队利用 Serverless 架构开启了低代码的实践之旅。李伟玲和周耀伟共同开发了一款 Serverless 架构的图像处理低代码平台。
该方案基于亚马逊云科技 Serverless 架构来进行部署,用户可以用画流程图的方式实现图像处理,几乎不需要编写代码,操作门槛低。Lili 队将技术架构分为后端和前端两个部分来进行介绍。
Lili 队作品技术架构图
后端架构,图像处理过程通常可由部分基本单元操作组合而成,通常称为“算子”,比如旋转,切割,缩放都是算子,这些算子可以通过函数封装起来,也可以进一步组合成新的更高级的算子。不同算子在运行过程中消耗的内存和 CPU 都是不一样的,传统的基于 Server 的部署方式很难扩展,亚马逊云科技的 Serverless 架构就可以很完善的解决这个问题,将算子通过 Amazon Lambda 来部署,既能满足不同的资源要求,又能按实际使用量进行横向扩展。
前端部分,采用前后端分离架构,前端使用 VUE+ElementUI 架构,流程图使用 jsplumb 组件构建,并使用 webpack 进行打包管理。
平台的主界面分为菜单栏、所有算子区,工作区三个部分。用户可以直接拖拽算子到工作区,并在右边的编辑界面,设置具体的参数,即可完成图片的一系列处理。
目前该平台仅能完成单张图片的加工和处理,无法提供批量处理的能力,导致面向的用户群体不够清晰。吴义平表示,该产品的核心思路非常具有吸引力,并且充分利用了亚马逊云科技云上弹性、资源方面的优势,非常契合 Serverless 的使用场景,但是在应用层面,可以结合其他场景进行创新。对于评委老师的提议,李伟玲表示非常认可。她说,在开发平台时他们就已经考虑到这个问题,但由于时间紧张,因此仅仅做了简单的实现,赛后,他们也将继续对于方案进行优化与完善。
丰富的作品,激动人心的对决,志同道合的伙伴间的交流碰撞、指导老师耐心的指导与中肯的建议...... 每位选手都满载收获的同时,也意味着“亚马逊云科技 2022 Serverless For Good 编程挑战赛”正式圆满落下帷幕,期待着明年再见。
本次大赛决赛现场答辩的视频回放,可在「自由构建 探索无限」亚马逊云科技中国峰会上在线观看,感兴趣的开发者点击此处可直达峰会现场。峰会还有数百场行业与技术分论坛超干货专场主题分享等待着大家,期待大家解锁更多精彩有趣的内容。
评论