天天看點

代碼零改動Serverless架構更新?這家線上程式設計教育企業是這麼做的!

背景

風變科技——一個希望通過技術去推動下一代基礎教育的組織,旗下産品包括第一代的熊貓書院(讀書類産品)、第二代的熊貓小課(泛學科綜合學習平台),以及現在的風變程式設計(成人python教育)和風變人生設計(個人職業生涯規劃類)。

風變一直在挑戰自動化教學時長的極限,探索自動化教學效果的邊界,開辟了網際網路線上教育的新紀元——互動式、遊戲化的自動化教學方式,打造沉浸式的學習體驗,讓使用者高效掌握知識,減少知識在傳播過程中的損耗。

目前,風變聚焦于人工智能教學,主要産品為「風變程式設計」自2019年1月上線以來,為全球250萬+使用者提供了850萬+ 堂課,并以實驗環境下單節課98%的完課率創造了遠超行業平均水準的神話。

在這些光鮮的數字背後,風變研發團隊“新矩陣”面臨着巨大的挑戰,面對産品功能不斷創新、業務規模迅速增長等挑戰,通過不斷更新前後端架構,提升團隊技術水準以及依靠強大的運維團隊攻克着每次的突發情況。"腳踏實地先把技術發展起來"是風變科技CTO一直以來對團隊的要求,“用技術推動下一代的基礎教育”是風變的使命,也是每位風變人心中的理想。

Serverless更新之路

風變科技前端架構師Function認為任何架構設計都是曆史下的産物,脫離實際情況談最優解都是不切實際的想法,如何在有限的人力資源和更優的方案中取得平衡,就像一棟大廈,工程師設計出結構穩定和考慮長遠的方案(可擴充性),施勞工員不偷工減料(代碼品質),那麼這座大廈才能長久屹立,也能更好的面對新工程不斷改造。

反之,如果缺乏對架構演進的了解,缺乏對于基礎設施能力的了解,缺乏對風險的判斷,盲目的上新技術可能不僅無法兌現業務價值,浪費精力,還會引入無謂的技術風險。

Serverless為什麼讓那麼多前端着迷?它的魅力到底在哪裡?

  1. 從前端工程師的個人角度來講,前端技術已進入深水區(大前端時代),更能證明自己的不是資源,而是可以創造更多的業務價值。是以都希望能擴大自己的業務範圍,進而才能有職業發展,僅做前台展現碰不到核心業務,價值得不到展現。
  2. 從公司和團隊的考慮,前端團隊的核心在于業務價值,接入Serverless 不是目的,目的是讓前端能夠借助 Serverless 更加專注于業務邏輯,創造出更多業務價值,實作全棧工程師的角色轉變。

紙上得來終覺淺,絕知此事要躬行。風變的開發模式、工具、腳手架已經标準化、流程化,存量業務正線上上穩定運作,如何将 Serverless 融入到現有開發模式和工具中,存量業務的遷移如何絲般潤滑等等技術痛點。在風變前端基建團隊的努力以及阿裡雲Serverless 雲開發平台團隊的助力下,已經完成了 Serverless 架構的整體建設,與前端工程化和自動化相結合,并且內建本地CICD工作流,通過對應的邏輯采用指令行工具将開發鍊路串聯起來形成工具鍊,讓風變所有前端工程師能更好地創造出更多的業務價值,讓成為全棧工程師變成可能。

阿裡雲雲開發平台賦能

阿裡雲雲開發平台:

https://workbench.aliyun.com

它是阿裡雲面向廣大開發者及企業提供的雲上研發工作平台,助力研發團隊實作工作的線上化(團隊線上、環境線上、代碼線上、協同線上)以及研發模式 Serverless 化,幫助研發團隊實作對行業架構經驗及架構服務的高效分享與傳播,極緻提升研發效率,極緻降低研發成本。

阿裡雲雲開發平台為企業開發 Serverless 應用提供了幾種重要能力:

1.存量項目可遷移

目前開發者體驗 Serverless 項目大多是些簡單的 helloworld 函數,這根本無法承載大多數業務項目。為此,阿裡雲雲開發平台提供了存量項目遷移方案,通過抽象一層透明的 Serverless 架構适配業務程式,使其可以運作在 FaaS 環境上。抽象Serverless 架構層的好處在于無需修改使用者存量代碼,直接将項目更新為 Serverless 架構。

目前阿裡雲雲開發平台支援多種技術棧的多種架構的适配更新:

(1)Node.js 技術棧所有架構均無縫更新;

(2)Python 常用架構 Django、Flask、FastAPI、Tornado 以及 Twisted 支援無縫更新;

(3)PHP 的常用架構配合自定義運作時更新。

風變科技采用阿裡雲雲開發平台提供“Node.js存量應用解決方案”,實作了代碼零改動更新 Serverless 架構,目前已支撐公司官網系統以及其他重點業務。

2.雲部署能力本地化

大多數公司都有自己的開發工作流程,這包括内部代碼托管、團隊協作、權限控制與風控、公司獨特的CI/CD,如何低成本的相容這套原有體系是 Serverless 應用能否“本地化”,讓企業和開發者接受與認同的最關鍵的一點。

阿裡雲雲開發平台提供了“雲端一體化部署”與“本地部署”的能力,企業可以通過使用阿裡雲雲開發平台部署套件實作本地部署,相容企業原有CI/CD流程,讓 Serverless 應用實作“端+雲”加持,靈活可控。

風變科技采用阿裡雲雲開發平台本地化部署能力,在相容目前企業的釋出規範、稽核、風控以及灰階的前提下實作衆多項目的無痛更新 Serverless 架構,大大賦能開發人員生産力,減少運維成本。

3.Serverless應用可調試

Serverless 應用開發另一痛點是無法像在本地開發應用一樣斷點調試、實時預覽,隻有在部署到對應雲廠商環境上才可測試預覽。

阿裡雲雲開發平台通過分析 Serverless 運作時架構,在開發态模拟函數運作時,實時輕量化運作、輸出,實作 Serverless 應用的實時調試。

通過阿裡雲雲開發平台的賦能,不僅可斷點調試 Serverless 應用,也可實時預覽、檢視運作時輸出,不用部署即可完成功能性驗證,靈活開發靈活疊代。

4.Serverless更新體驗

風變科技的官網以及多個中背景系統更新到 Serverless 架構後,在某些方面感受到了明顯的不同:

(1)原有存量工程零改動直接更新 Serverless 架構,開發模式開發規範等均不改變;

(2)部署友善,直接內建到企業CICD流程中;

(3)通過阿裡雲雲開發平台提供的 OpenAPI,內建進公司内部獨有的開發指令行工具Rakete,實作團隊内部開發鍊路一體化打通:

  • 上線後無需運維,自動彈性擴縮容;
  • 完備的日志和流量監測功能,實時掌握服務運作狀态;
  • 上線一個月,成本環比下降了45%。

【更多精彩】

1.中間件爆款一折起,還有阿裡巴巴十年最佳實踐深度解密,點選馬上了解:

https://www.aliyun.com/activity/daily/commercial?spm=5176.20960838.0.0.6a54305etoEn4D

2.【填問卷領淘公仔】點選馬上填寫問卷:

https://survey.aliyun.com/apps/zhiliao/YmW95Gk8bU

【加入行業實戰交流釘釘群】

阿裡雲專門成立了“網際網路架構更新實戰課”釘釘群,每周邀請一位阿裡雲專家在群内進行行業最佳實踐直播,每天分享行業前沿幹貨,釘釘掃碼馬上加入。

代碼零改動Serverless架構更新?這家線上程式設計教育企業是這麼做的!

下一步,風變科技會和阿裡雲雲開發平台深入合作,将在全站推動項目更新,徹底擁抱雲原生 Serverless 時代。