Kubernetes ,讓世界維基大變樣架構
衆所周知的非營利性維基媒體基金會,旗下包括全世界最大的協同編輯參考項目:維基百科。爲幫助用戶維護和使用維基,基金會成立了維基媒體工具實驗室,在這個宿主環境里社區開發人員工做能夠藉助工具跟機器人幫助編輯和其餘志願者完成工做,還有減小破壞等。維基媒體工具實驗室的周邊社羣在 10 年前已開始造成。工具
維基媒體優化
「維基媒體工具實驗室的關鍵做用是,確保全世界的維基以最佳狀態運轉。維基百科已經有近 10 年的歷史,如今環境極其複雜,難以維護。如今它看起來像一個大泥球——讓你看不透。有了 Kubernetes ,咱們能夠簡化環境,開發人員優化起來也更加便捷。「網站
——維基媒體基金會和維基媒體工具實驗室的運營工程師 Yuvi Panda開發
挑戰:部署
簡化複雜,難管理的基礎架構。 容許開發人員用現有技術繼續編寫工具和機器人。get
爲何選擇 Kubernetes :同步
維基媒體工具實驗室選擇 Kubernetes 是由於 Kubernetes 能夠在刪繁就簡的前提下模仿現有工做流程。kubernetes
方法:工作流
把舊系統和複雜基礎設施遷轉到 Kubernetes 上。
結果:
有 20% 的的網頁工具如今運行在 Kubernetes 上(這些網頁工具佔據了 40% 的網頁流量)。 Kubernetes 每一個版本更新的時候, 25 節點集羣也會與之保持同步。感謝 Kubernetes ,咱們刪除了數千行舊代碼。
用 Kubernetes 產生工具維護維基
維基媒體工具實驗室由四個全職員工,一個兼職員工和兩個志願者維護運營。已存在的基礎設施並無使得建立機器人和其餘工具變得輕鬆,達到讓維基運行更加輕鬆便捷的目的。 Yuvi 說,「這簡直亂成一團,填滿了 Perl 和 Bash 的膠水語言。全部這一切,弱不堪擊。
爲了解決這個問題,維基媒體工具實驗室將其基礎設施部分遷移到 Kubernetes ,以便最終移動整個系統。 Yuvi 說 Kubernetes 大大簡化了維護過程。目的就是可讓開發人員用他們喜歡的開發方法來建立機器人和其餘工具,同時讓維基媒體工具實驗室更加輕鬆地對託管、分享所需的基礎設施進行維護。
「有了 Kubernetes ,我就能夠刪除不少定製的代碼,維護起來更加方便。用戶代碼也比之前更穩定了「 Yuvi 說。 簡化基礎設施使維基更好地運行
維基媒體工具實驗室一開始使用 Kubernetes 部署就得到了極大的成功。老代碼會被慢慢簡化跟刪除,貢獻開發人員沒必要改變他們編寫工具和機器人的方式,這些工具和機器人能夠比以往更穩定的運行。這些問題修復以後,維基百科的工做人員和志願者也可以更好地運營網站。
將來,在全面遷移到 Kubernetes 後,維基媒體工具實驗室但願可以更容易地託管和維護幫助在全世界運行 Wiki 的機器人和工具。該工具實驗室已經從 800 名志願者中接管了大約 1300 個工具和機器人,天天還有更多的工具和機器人被提交。工具實驗室中 20% 的網頁工具如今運行在 Kubernetes 上(這些網頁工具承載了 60% 的網頁流量)。工具實驗室有一個 25 節點的集羣,與每一個新的 Kubernetes 版本保持一致。許多現有的網頁工具正在遷移到 Kubernetes 。
「咱們但願世界各地的人們都能便捷地分享知識。 Kubernetes 助咱們一臂之力,讓世界各地的維基可以更加輕鬆地使用他們賴以生存的工具。」 Yuvi 說。