freeCodeCamp如何使用JAMstack幫助數百萬人學習編碼?
freeCodeCamp.org現在每個月都在幫助數百萬人學習編碼,而我們正在使用單個API伺服器進行編碼。該平臺的其餘部分由CDN和其他服務處理。這是一個名為ofollow,noindex" target="_blank">JAMstack 的新架構,代表JavaScript/">JavaScript,API,Markup。
儘管有1,368人同時使用freeCodeCamp.org,但我們的Node.js / Loopback伺服器幾乎沒有什麼問題。
freeCodeCamp.org是一個小型的非營利組織,預算更加薄弱,因此我們希望最大限度地提高基礎設施的價效比。我們主要提供靜態頁面。即使我們的編碼挑戰 - 所有的互動性 - 完全在客戶端執行,不需要伺服器呼叫。所以JAMstack對我們來說非常有意義。
步驟1:開源貢獻者開啟拉取請求,更改freeCodeCamp.org的6,000多個互動式編碼挑戰和參考文章之一 - 所有這些都儲存為易於編輯的降價檔案。
步驟2:我們的持續整合工具確認構建通過,Git確認沒有任何合併衝突。
步驟#3:一個開源維護者QA並在GitHub上合併拉取請求。
步驟#4:Gatsby - 一個靜態站點構建器 - 將這些6,000多個markdown檔案轉換為單頁React應用程式。
步驟5:Netlify將新構建的應用程式推送到全球資料中心的CDN端點。
第6步:想要練習編碼訪問的人https://www.freecodecamp.org。
步驟#7:他們的瀏覽器從最近的Netlify CDN端點下拉檔案並呈現Gatsby應用程式。
步驟#8:Auth0檢查他們是否登入到freeCodeCamp.org。如果是,它給了他們對我們的公共API的讀寫訪問 - 一個Node.js / Loopback伺服器。
步驟9:API伺服器然後從我們在mLab上託管的MongoDB叢集中讀取和寫入資料。
步驟#10:瀏覽器現在可以獲取使用者的完整freeCodeCamp配置檔案和進度。當他們完成編碼編碼挑戰時,他們的瀏覽器可以將資料寫回他們的個人資料。
JAMstack好處
JAMstack有幾個好處使我們遠離更傳統的以網路伺服器為中心的架構。
好處#1:JAMstack非常便宜!
我們是一個非常小的非營利組織。我們希望將盡可能多的稀缺資金用於幫助人們學習編碼 - 而不是為不必要的伺服器和頻寬付費。
自從我們開始將服務轉移到JAMstack以來,我們的基礎設施成本急劇下降。
好處#2:它更簡單。
當你的籌碼很簡單並且移動部件很少時,你會得到很好的理解。那些可以在半夜破碎的東西更少。
好處#3:它更安全,更可靠。
我們現在依靠一籃子專業的API來做正確的事情。這意味著我們自己可以搞砸的東西更少。
Auth0團隊花了很多時間考慮如何使身份驗證更安全。Algolia花了很多時間思考如何防範惡意查詢。
我們可以專注於保護我們的單一API,而不是泡在影響以Web伺服器為中心的應用程式的所有其他安全注意事項 中。