天天看點

2022 雲原生程式設計挑戰賽火熱報名中!看導師如何拆解 Serverless 賽題?

大賽介紹

2022 第三屆雲原生程式設計挑戰賽,是由阿裡雲、Intel 主辦,雲原生應用平台、天池聯合承辦的雲原生頂級品牌賽事。

自 2015 年開始,大賽已經成功舉辦了七屆,并從 2020 年開始更新為首屆雲原生程式設計挑戰賽,共吸引了超過 36000 支隊伍,覆寫 10 餘個國家和地區。

本屆大賽将繼續深度探索服務網格、邊緣容器、Serverless 三大熱門技術領域,為熱愛技術的年輕人提供一個挑戰世界級技術問題的舞台,希望用技術為全社會創造更大價值。大家趕快報名參賽吧!

豐厚獎勵等你來報名!

  • 瓜分¥510,000 元現金大獎
  • 三大熱門賽道任意選擇
  • 邀請小夥伴報名兌換精美禮品
  • 完成 Serverless 場景體驗領阿裡雲背包

以下賽道可任選 1 個或全部掃碼報名:

賽道 1(服務網格)

賽道 2(邊緣容器)

賽道 3(Serverless)

更多内容盡在大賽官網,歡迎掃碼了解~

賽題背景

在雲的時代,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 場景體驗并報名參加雲原生程式設計挑戰賽。完成任務即可獲得阿裡雲定制版背包一個,快來體驗吧!

掃碼立即參加體驗活動