閱讀81 返回首頁    go 阿裏雲 go 技術社區[雲棲]


國民基金-餘額寶-對企業研發效能的探索與思考

餘額寶誕生於互聯網,13年發展至今,用戶量已突破4億,資金達萬億規模,針對這樣一支如此年輕而體量龐大的基金,在IT層麵無可避免碰到過各種各樣的問題。其中之一便是如何提升整個技術團隊的研發效能。
我們的IT係統發展到2015年已然成為了一個龐然大物,下圖是我們實際業務係統中的一環,大家可以看到這個局部流程對於整個研發測試團隊帶來的考驗。自建係統、外采係統、按照監管要求建立的標準係統、同業合作係統以及跨平台(Windows、Linux)係統等各種不同環境的係統交織在一起,導致了業務上線前的測試環節工作量無比巨大,我曾經做了個大致的評估,這種傳統研發協同模式下,我們的項目上線周期平均在3個月,這對於一個誕生於互聯網的金融企業來說無疑是致命的,互聯網講究快速試錯與創新,而這種傳統的企業IT協同模式卻正在成為創新落地的絆腳石。

1

我們也曾引入一些開源測試工具(Jenkins/github/ subversion/trac/testlink)快速建立CI:CD的分層模式,以期能夠改善現狀,然而在實踐過程中隨著工具越來越多,一些問題也隨之爆出來:

第一:學習成本太高,近千人的技術團隊使用了各種開發發言,JAVA、C++、div,而開源測試工具支持的語言較為單一,我們無法要求非java領域的同學使用支持Java的測試工具並且快速上手開發;另外一方麵金融研發團隊的人才其實分為兩種類型,一類是技術開發性人才,還有一類為業務開發型人才,業務開發型的成員能夠設計出全麵的業務解決方案,能夠避免因為觸犯合規問題而引起的推倒重來,但是這類同學通常沒有接受過深度的技術培訓,使用這些技術工具學習成本非常高;

第二:係統間彼此獨立,數據不能打通共享。即便是自建的一些係統要做到數據共享也是一件不太容易的事情,那采用開源框架自然就更難以達到,數據不能共享嚴重影響了團隊之間的配合,也增加了操作成本;

第三:維護成本越來越大,個性化支持越來越差,每個係統都需要專人進行維護,使得僅僅就工具的人力投入越來越大,產生了額外的資源缺口。

工欲善其事必先利其器

參加今年的杭州雲棲大會,非常認同阿裏雲副總裁李津的一句話,“今天的成功與失敗也許跟一個人的做事方法相關,而跟努力與否無關。如果不能在最高效的平台上發揮創造力和想象力,那麼越努力可能會越失敗。這個新平台是數據與智能的平台、是互聯網的思維和方法的平台。”
餘額寶上線以來,隨著業務的發展與阿裏金融雲展開了非常緊密的合作,對雲的需求早已僅僅不局限於計算、網絡、存儲等基礎資源的使用,我們通過引入EDAS、流計算、大數據等解決方案解決了以往很多無法支持的業務問題。那對於提升研發效能的訴求,我們該使用什麼樣的平台?經過多方評估,最終我們選定了阿裏雲的雲效平台進行實踐。雲效於2016年正式上線部署,一年多的實踐以來,雲效帶來的幾大便利之處主要體現在以下幾個方麵:
1. 支持絕大多數的開發語言,區別於引入多套開源框架後形成的“孤島”模式,雲效一站式融合平台形態全麵滿足研發團隊的個性化需求,在同樣的時間和人員條件下,可以覆蓋更多的測試內容,大大提升了資源利用率;
2. 支持多種開發環境滿足持續部署要求,如上圖所示,隨著各類係統環境的複雜多樣化,迭代開發和集成環境間的不匹配成為了業務上線的最後一道瓶頸,雲效平台支持大部分標準開發框架讓研發測試團隊不再受到環境兼容產生問題困擾;
3. 支持持續交付,雲效平台所包含的研發測試流程各環節的自動化工具,提供了自動化編譯打包、代碼掃描、一鍵部署測試環境、自動化UI測試、接口測試等方麵的功能,能夠有效的幫助測試團隊提高研發速度和測試質量。
除此之外,雲效平台在我看來還值得一提的幾個亮點還包括:係統平台化,不強製要求使用者變更自身的研發模式;規範引入,基於阿裏標準的研發模式持續改進內部研發體係建設;整合對接了阿裏雲中間件產品,讓阿裏雲的技術可以在企業內部更加迅速穩定的落地。
通過引入雲效平台,目前餘額寶研發項目中,貼近敏捷研發模式的項目平均上線周期在2周左右,瀑布迭代模式的項目平均上線周期在1.5個月左右。當然針對每個行業屬性不一,雲效平台難免也有一些需要完善的地方,在引入初期,對於金融行業特有的清算係統,雲效團隊定製開發了測試模型,在離線業務分離減少整體係統測試和集成環境搭建的複雜度,相信通過雙方持續的磨合與探索,雲效能為企業在研發效能方麵提供更多價值。
原文發布時間為:2017-10-26
本文作者:邱誌鑫
本文來自雲棲社區合作夥伴“阿裏金融雲”,了解相關信息可以關注“阿裏金融雲”微信公眾號

最後更新:2017-10-27 11:04:02

  上一篇:go  開源大數據周刊-第70期
  下一篇:go  [WCF安全係列]綁定、安全模式與客戶端憑證類型:BasicHttpBinding