積聚社區力量,讓 Talent Plan 來一次升級吧

瞭解 TiDB 社區的朋友應該都知道 PingCAP Talent Plan 這門課程,它的初衷是希望造一個“梯子”,幫助小夥伴們一步步從 Go/Rust 語言、分佈式系統基礎,到實操練習,最終踏上分佈式數據庫“高階玩家”的平臺。

目前 PingCAP Talent Plan 誕生 1 年多了,我們想把“梯子”替換成更穩定的“臺階”(未來搞成“自動扶梯”也不一定 ;D),給課程裝備來點升級。

現在我們有了一些課程設計雛形,歡迎大家來“試玩”並提供建議、貢獻自己的智慧,一起來打造這門課程!希望 Talent Plan 2.0 課程最終成為 TiDB 社區“共建共享”的智慧結晶,幫助更多社區夥伴們學習、成長。

升級版課程規劃

下面是我們構思的 PingCAP Talent Plan 2.0 版本的課程結構:

積聚社區力量,讓 Talent Plan 來一次升級吧

Talent Plan Courses 2.0 Framework如上圖所示,我們將 Talent Plan 1.0 的優質資源進行整合,同時增加了一些全新的課程系列,形成了一個更大的 Talent Plan 學習版圖。Talent Plan 2.0 將涵蓋 4 個課程系列,包括:

  • Open Source Collaboration:面向零基礎開源愛好者的開源協作課程,這是一個全新的模塊,下文將詳細介紹。
  • Programming Language:面向各種編程語言愛好者,目前已有的是 Go、Rust 語言課程,後續準備新增其他語言。
  • Infrastructure Systems:面向愛折騰基礎架構系統的同學。
  • Deep Dive:TiDB 生態項目深度解讀課程,課程難度由淺入深、層層遞進。在已有的 TiDB/TiKV 課程基礎上,計劃新增 Cloud TiDB 等其他生態項目的課程。

每個課程系列都將新增更多內容,比如 Infrastructure Systems 課程系列,除了大家喜歡的 Distributed System in Rust 課程之外,還將新增用 Go 語言設計的分佈式關係型數據庫(TinySQL)課程和分佈式 Key-Value 數據庫(TinyKV)課程,下面將詳細介紹。


Talent Plan 2.0 新亮點


1. 面向開源愛好者的開源協作系列課程

這是我們專門為零基礎開源愛好者準備的全新課程,希望即使是技術小白也能進入開源世界玩耍,比如不同開源軟件許可協議的差異、知名開源基金會(Linux、Apache、CNCF 等)的運作方式以及開源社區運營的基礎知識,快速掌握參與開源項目的小技巧。目前這個課程系列的學習資料已經準備完畢,3 月 2 日將開啟為期 10 天的開源協作系列課程體驗計劃,任何對開源感興趣的小夥伴都可以加入 Talent Plan Courses Working Group 參與課程體驗,體驗過程中你可以:

  • 分享學習成果和感受;
  • 補充其他開源相關的有價值的學習資料;
  • 為課程作業的設計貢獻 Idea。

無論是以上哪種方式,你都能為這個課程系列貢獻自己的一份力量。

2. 用 Go 語言設計的分佈式關係型數據庫(TinySQL)課程

TinySQL 課程是基於 Go 語言實現的分佈式關係型數據庫,相比於 Talent Plan 1.0,會更加全面,幾乎涵蓋了分佈式數據庫 SQL 層最重要的部分。該課程會按照一個由簡單到複雜,由靜態到動態的順序展開:

  • 首先我們將對 SQL 和關係代數有一個簡單的瞭解,為後面的課程做準備;
  • 接下來,我們將聚焦一個只讀 SQL 的執行,從 Parser 如何解析語義,到執行器如何執行語義,並在最後去了解優化器如何選出最優的執行計劃;
  • 最後,我們將聚焦在那些改變數據狀態的 SQL(包括 DML 以及 DDL),以及如何處理它們和只讀語句之間的相互影響。

目前課程的代碼框架已經完成實現,課程材料也正在準備中,歡迎社區小夥伴參與早期測試或者課程材料的編寫。

3. 用 Go 語言設計的分佈式 Key-Value 數據庫(TinyKV)課程

TinyKV

課程是基於 Go 語言全新設計的分佈式 Key-Value 數據庫課程。類似已有的 Distributed System in Rust 課程,TinyKV 同樣受著名的 MIT 6.824 所啟發,但更加接近 TiKV 的實現。我們引入調度相關邏輯,學員可以從 0 到 1 實現一個完整可用的分佈式 KV 服務。課程主要分為四個部分:

  • LAB1:實現單機 KV server;
  • LAB2:基於 Raft 實現多副本高可用 KV server;
  • LAB3:實現 Multi-Raft 以及數據均衡調度;
  • LAB4:基於 Percolator 模型實現分佈式事務。

當完成課程後,大家將會從實踐中對 Raft 協議、Percolator 分佈式事務模型有更深刻的理解。同時大家在實現 TinyKV 的過程中,也會更加了解 TiDB + TiKV + PD 的實際框架了,之後深入研究 TiDB/TiKV/PD 的源碼會更加遊刃有餘。目前,我們已經完整實現了一個可用的 TinyKV 和相關測試,接下來會通過不斷修剪得到課程需要的框架代碼,同時課程材料也在緊鑼密鼓地進行編寫中。歡迎社區小夥伴參與早期測試反饋建議以及文檔的查漏補缺。

4. 作業分發、提交、分數評估及反饋更加自動化

為了給小夥伴們更好的參與體驗,並提高作業分發效率,我們調研了國內外大學在教學過程中使用的優秀工具,目前在重點針對 Github Classroom 進行作業分發功能的測試。除此之外,作業評估工作也將採用在工業界被廣泛採用的 CI 技術,作業結果反饋會更加快速、高效、自動化。


試玩及反饋通道


以上課程及自動化作業分發工具都還處於調試階段,大家可以加入 Talent Plan Courses Working Group 參與 2.0 課程體驗、交流或吐槽,期待與各位共同打磨這門課程!

另外,在 2.0 課程細節完全敲定對外公佈之前,大家依然可以繼續學習 Talent Plan 1.0,作業提交與成績評定規則與之前保持一致,更多細則詳見 PingCAP University 官網



分享到:


相關文章: