云原生编程挑战赛,是由阿里云主办,阿里云云原生、阿里云天池承办的云原生顶级品牌赛事。自 2015 年开始,大赛已经成功举办了六届,并从 2020 年开始升级为首届云原生编程挑战赛,共吸引超过 23000 支队伍,覆盖 10 余个国家和地区。
今年的云原生编程挑战赛将继续深度探索 RocketMQ、Dubbo 3、Serverless 三大热门技术领域,为热爱技术的年轻人提供一个挑战世界级技术问题的舞台,希望选手们能用手中的技术为全社会创造更大价值。
本文主要解密【赛道3】Less is more - Serverless 创新应用赛,希望为各位选手们提供一些思路。
赛程时间:预选赛( 8月4日 - 9月6日)、预选赛入围公布( 9月9日)、半决赛( 9月10日 - 10月18日)、半决赛结果公布( 10月21日)。
扫描二维码可立即了解详情、参赛报名
赛题背景
2019 年 Berkeley 预测 Serverless 将取代 Serverful 计算,成为云计算的计算新范式。Serverless 为应用程序开发提供了一种全新的系统架构,其凭借着弹性伸缩省事省心,按需付费更低成本、聚焦业务降低 OPS 这三大核心价值,成为云计算中一股新生力量获得无数开发者的青睐。Serverless 将开发人员从繁重的手动资源管理和性能成本优化中解放出来,就像数十年前汇编语言演变到高级语言的过程一样,让工程师的生产力再次发生变革。
今天,Serverless 已不再局限应用于耦合性低、边缘应用或离线任务上,越来越多的企业将 Serverless 应用于人工智能、音视频处理、网站应用、电商系统等生产核心链路。
新浪微博每日数十亿次个性化图片处理大幅度降低综合成本,石墨文档基于 Serverless 架构有效解决了性能瓶颈,闲鱼通过 Serverless 实现云端一体化编程模式提升研发效率,口袋奇兵基于 Serverless 架构大幅提升资源利用率,世纪联华更是全面升级到 Serverless 架构,享受 Serverless 带来的技术红利。
Less is more,Serverless 让你少承担一些责任,这些责任转由平台承担,平台会把这些事情做的更好,你可以把因此释放的资源(人力,物力,财力,时间等)更好的创造业务价值。
赛前准备思路
1、学习 Serverless 技术
- 快速阅读 Serverless 电子书建立 Serverless 思维。
https://developer.aliyun.com/topic/download?id=1128
- 阅读 Serverless Devs 文章,安装和体验 Serverless Devs 工具。
https://www.serverless-devs.com/blog
- 体验 Serverless Devs 工具开发的部分示例应用。
https://github.com/devsapp/Application-Awesome
- 亦可以参考 awesome-fc 的示例应用。
- 针对具体问题搜索相关产品的用户文档。
- 扫描下方钉群二维码在参赛群讨论互助,寻求帮助。
2、使用 Serverless 技术解决问题
- 熟悉 Serverless 基本架构,比如静态站点,动态站点,API 服务,实时文件处理,流式数据处理,定时触发等。
https://developer.aliyun.com/lesson_2023_18989
- 功能拆分,考虑采用什么架构实现功能,选择合适的服务。
- 查找相关示例,快速搭建原型,逐步完善,实现目标功能。
比如一个视频处理系统可能具备以下基本功能:
- 上传媒体文件功能,支持 A,B,C,D 格式。
- 媒体文件转码功能,允许用户配置目标媒体格式,包括 E,F,G;可以处理文件最大 NGB。
- 上传文件可以根据配置自动转码。
- 可以对媒体文件的 Meta 信息搜索,比如描述,时长等。
我们可以利用学到的 Serverless 知识设计以下架构:
再动手之前,可以搜索是否有类似案例可以参考:
- 比如,如何上传文件可以参考这篇文章。
http://bluo.cn/serverless-not-good-practice-upload-file/
- 如何对上传的文件处理可以参考这个示例项目。
https://github.com/awesome-fc/simple-video-processing
有了这些素材作为积木以后,接下来就可以搭建应用了。
如何规划比赛
- 组建团队:不同背景的队友可以承担不同的工作。
- 头脑风暴,产生创意:解决你的问题,更好的是也同时解决了很多人的问题。当然,你可以解决参考问题。
- 将创意转化为功能:定义最小功能和完整功能。
- 考虑如何使用 Serverless 技术实现功能,选择适合的架构和服务。
- 产出参赛方案。
- 编码:尽量基于一切可以参考的示例。
- 最终展现:讲出你的故事。
总结
1、为什么要举办一个开放题目的应用赛
法国雕塑家罗丹说过, “生活中不是缺少美, 而是缺少发现美的眼睛”。同样的,生活和工作中也不是缺少问题,作为 builder,无论我们在产品开发中担任哪一种角色,我们都需要有发现问题的眼睛。你可能已经在工作或者生活中积累了一些问题,如果没有,花上两天时间思考一下,那些不便之处,痛点,槽点都是问题的来源。本次比赛采用开放题目是不想束缚大家的思想,每个人都是所处领域的专家,更容易发现自己周围的问题,我们希望看到大家通过 Serverless 解决你熟悉场景的问题。
这次大赛不只是面向开发人员,我们欢迎产品经理、前端、后端、体验设计、文档、测试工程师等所有创造者的参与。
2、为什么要参加类似比赛
找到问题只是第一步,苹果曾经有一个著名的口号, “There's an app for that” ,最直白的解释就是 “没有什么问题是一个应用解决不了的” ,问题需要执行来终结。过去你可能没有时间去解决它们,明天也不会有,只有抓住今天的机会,迈出第一步,才能离解决问题更进一步。这次比赛让你在两个月的时间内完成一件事情,可以做你喜欢的独行侠,也可以拉上三五好友,构建你的梦之队,丰厚的奖品等你拿,当然最重要的还是解决问题,创造价值!
你的工作可能已经很忙了,参加这样一个比赛意味着付出更多的时间和精力,到底值不值得?
- 这是一次快速学习的机会:动手是学习一门技术最有效的手段之一,无论你是第一次听说 Serverless,还是 Serverless 的老手,这都是一次学习的机会。
- 工作之外,找些乐趣:对工作中解决的问题或者采用的技术有些疲劳吗?换个思路,也许会有不一样的体验。
- 有一颗创业的心:无论为自己公司找下一个发展点,还是为自己创业,都可以,万一成功了呢?
- 约上小伙伴,组建你的梦之队:你可能有饭友,球友,歌友,牌友...,那么现在是组建你梦之队的时候了。
3、为什么要采用 Serverless 技术解决问题
不得不承认,这次比赛的目的是让更多的人了解到 Serverless 技术,看到 Serverless 可以解决哪些场景的问题、Serverless 的不足之处以及如何提升和改变才能更好的解决这些问题。另一方面,我们相信 Serverless 技术可以更快速的解决问题,它化繁为简,让大家更好的聚焦业务逻辑,让大家专注于解决问题。
比如,写一个本地执行的程序打印出 “Hello world” 很容易,做成可以访问的 API 也没有太难,但是要让这个 API 一直可用,可以很多人同时访问时不宕机不变慢,可以无人使用时不付费,可以每天早上给你的钉钉发个信息等,却并不容易,而这是 Serverless 可以带来的价值,像阿里云函数计算提供了是一个事件驱动的全托管 Serverless 计算服务,您无需管理服务器等基础设施,只需编写代码并上传,函数计算会为您准备好计算资源,并以弹性、可靠的方式运行您的代码。
动心了?动手吧,少年
瓜分 603000 元奖金池,三大赛道任意选择,奇葩任务定义拿奖新姿势,速来报名!
【赛道1】针对冷热读写场景的RocketMQ存储系统设计
https://tianchi.aliyun.com/competition/entrance/531922/introduction
【赛道2】实现一个柔性集群调度机制
https://tianchi.aliyun.com/competition/entrance/531923/introduction
【赛道3】Less is more - Serverless创新应用赛
https://tianchi.aliyun.com/competition/entrance/531924/introduction
戳下方链接👇👇立即报名参赛!
https://tianchi.aliyun.com/competition/entrance/531924/introduction