• 2022 云原生编程挑战赛火热报名中!看导师如何拆解 Serverless 赛题?


    大赛介绍

    2022 第三届云原生编程挑战赛,是由阿里云、Intel 主办,云原生应用平台、天池联合承办的云原生顶级品牌赛事。

    自 2015 年开始,大赛已经成功举办了七届,并从 2020 年开始升级为首届云原生编程挑战赛,共吸引了超过 36000 支队伍,覆盖 10 余个国家和地区。

    本届大赛将继续深度探索服务网格、边缘容器、Serverless 三大热门技术领域,为热爱技术的年轻人提供一个挑战世界级技术问题的舞台,希望用技术为全社会创造更大价值。大家赶快报名参赛吧!

    丰厚奖励等你来报名!

    • 瓜分¥510,000 元现金大奖
    • 三大热门赛道任意选择
    • 邀请小伙伴报名兑换精美礼品
    • 完成 Serverless 场景体验领阿里云背包

    以下赛道可任选 1 个或全部扫码报名:赛道 1(服务网格)

    1.png

    赛道 2(边缘容器)

    2.png

    赛道 3(Serverless)

    3.png

    更多内容尽在大赛官网,欢迎扫码了解~

    4.png

    赛题背景

    在云的时代,IDE 越来越向着轻量化,分布式的方向演进, VSCode,IntelliJ Idea 等知名产品都推出了 Web IDE 版本。在小程序,Low code/No code,在线编程教育,前端一体化开发,大数据处理等领域,Web IDE 都体现了越来越重要的价值。比如:

    • 能不能使用 IDE 的智能代码提示来分析 github 上的项目代码,而不是 clone 整个项目?试试将 Github 上的项目 url 中的 github.com 换成 github.dev,就可以在浏览器中使用 vscode web ide 浏览和修改代码,是不是很方便?

    • 参与项目开发,能不能不用花时间安装工具和依赖库,直接开始编码?试试在 github 项目 url 前加上 https://gitpod.io/# ,就可以为该项目创建一个已经配置好的 Web IDE 环境,立即开始开发,是不是很酷?

    • 在小程序,低代码等场景下,有没有一个高集成,一站式的开发环境,让开发、调试、查看效果的闭环最短?

    • 云原生应用,不可避免会依赖各种云服务。在本地开发机调试集成测试太困难。如果能在配置好的远端环境中使用各种云产品或者调用上下游服务,是不是很方便?

    • 在苹果基于 ARM 架构芯片的笔记本电脑下开发 X86 应用,交叉编译配置复杂,以模拟的方式运行 X86 应用性能低、耗电快,能不能在一个远端的 X86 IDE 环境中开发和调试程序?

    • ……

    题目解析

    Web IDE 本质上是一个 SaaS 服务,即使有了 Vscode 这样优秀的轻量 IDE 软件,要打造一个可靠,好用的 Web IDE 服务仍然面临诸多技术挑战:

    • 多租安全隔离。Web IDE 要访问用户的核心资产-代码,因此必须做到不同租户间的安全隔离,确保数据安全。

    • 资源配额。用户使用资源必须可控,不会拖垮整个系统,影响其他用户。

    • 数据实时保存。用户可以随时关闭页面而不必担心数据丢失。

    • 状态实时恢复。当用户想继续工作时,能在秒级恢复到上次的状态,继续工作。

    • 资源利用率高,低成本。绝大多数 IDE 的使用是碎片化的,只在一天中的少部分时间被使用,因此 IDE 实例常驻是不明智的。

    • ...

    Web IDE 服务的特点决定了它需要一个动态的,细粒度的,多租安全隔离的计算平台。想象一下:

    • 如何在秒级启动一个实例运行?

    • 如何针对长尾、低频的 IDE 使用优化资源利用率?

    • 如何保证多租户的安全隔离能达到虚拟机级别,真正做到数据安全?

    而这些需求却很好的契合了 Serverless 计算的特点。Serverless 架构看起来很适合构建即开即用,用完即走的轻量 Web IDE 服务,这似乎有些不可思议。毕竟,Serverless 计算的特点是“无状态”,而我们以往对 IDE 的认知,常常认为它是“有状态”的。比如,怎么安全、高效的存储和恢复用户数据?这就是你在本次挑战赛中要解决的技术难题之一。

    解题思路

    赛题组提供了一个 Serverless Vscode 示例,不改一行代码在函数计算平台上运行 openvscode server,并且实现了简单的数据保存和恢复能力。整个示例代码小于500行,但已经是一个功能相对完备的 Web IDE 服务。您可以在此基础上进行扩展,包括但不限于:

    • 基于 Serverless 云服务的多租隔离能力,将示例扩展为多租的 IDE SaaS 服务。

    • 优化数据保存和恢复策略,即使用户不小心关闭了 IDE 页面,或者运行 IDE 的实例发生故障,用户仍可以快速恢复到之前的状态。

    • 优化 Web IDE 实例的启动性能,随时随地,秒开 IDE !

    • 优化成本。尽可能提高资源利用率,降低成本。

    您也可以发挥创意,增加更多有意思的功能。例如:

    • 针对小程序,低代码,数据处理等垂直场景,实现类似于  CodeSandbox 的一站式 IDE 服务,覆盖开发、测试、部署全流程

    • 实现多用户协同开发

    • 能安装多语言 vscode 插件, 编写示例代码有一定的智能提示

    • 上传文件能够突破函数计算最大 payload 为 16M 的限制

    • ……

    请尽情发挥您的聪明才智,解决上述一项或多项挑战,基于 Serverless 架构打造最具创新和产品潜力的 Web IDE 服务吧!Go Serverless!

    当然, 如果您有更好的方案,可以不用基于这个默认的 Serverless Vscode 示例。

    点击此处 ,立即报名!

    参考文档

    函数计算官网:

    https://help.aliyun.com/document_detail/52895.html

    使用 Serverless-Devs 工具快速开发 FC cookbook:

    https://docs.serverless-devs.com/fc-faq/s_fc_cookbook/readme

    官方参考 DEMO:

    https://github.com/devsapp/start-serverless-webide


    【体验有奖】大赛动手实验室

    大赛期间(6 月 30 日-9 月 6 日),只需完成 Serverless 场景体验并报名参加云原生编程挑战赛。完成任务即可获得阿里云定制版背包一个,快来体验吧!

    扫码立即参加体验活动

    5.png

  • 相关阅读:
    Java:类加载器(ClassLoader)
    Java 并发:Executor
    Java 并发:线程中断-interrupt
    UNIX IPC: POSIX 消息队列 与 信号
    Java与C++区别:重载(Overloading)
    UNIX IPC: POSIX 消息队列
    PAT 1078. Hashing
    PAT 1032. Sharing
    回顾经典问题算法:LIS, LCS-(DP类别)
    url编码模块
  • 原文地址:https://www.cnblogs.com/alisystemsoftware/p/16521517.html
Copyright © 2020-2023  润新知