背景
石家莊掌訊資訊技術有限公司創立于2009年,是一家提供企業資訊化咨詢、創新型軟體産品、電商代營運服務,标準化管理、快速發展的高新技術企業。目前公司正處于企業網際網路市場突破轉型重要階段,希望将更多精力轉移到業務創新,提升開發和傳遞效率,低成本試錯。是以選擇一套低門檻開箱即用的持續傳遞、快速部署&運維平台尤為重要。
面對的挑戰
-
組織、人員權限管理複雜:
Jenkins的權限管理獨立一套,與其它系統不能很好的對接,維護成本非常高。
-
好的工程實踐、流程規範不容易複用,品質更無法保證:
代碼開發過程中加入了阿裡巴巴P3C規範,與內建工作流無打通,不得不依賴人工介入的效果,當項目的時間緊,任務重,往往執行不到位,效果無法保證,形同虛設。代碼品質很難保證。
-
FTP手工釋出效率慢,Jenkins需要編寫大量的腳本,降本提升效率成為了瓶頸:
公司在很長一段時間在使用Jenkins作為自動化部署工具,Jenkins易用的插件化模式和靈活的流水線腳本編寫能力是我們一直使用他的原因。不過對于我們這種0運維人員的小團隊來說,一些平台細小的不便性也會團隊效率帶來很大的負面影響。Jenkins的流水線腳本編寫維護的繁瑣性以及第三方平台(服務)與Jenkins整合的複雜度都給我們帶來不小的麻煩。
-
缺少專職運維人員和微服務改造實戰經驗,研發運維效率不高:
公司未設定專職運維人員,在做業務創新同時,微服務架構同步改造進行中。采用自建微服務架構+APM,技術門檻和人力不足很難在短時間成功落地。急切需要一條快速上手的平台支撐,需要最大限度屏蔽底層IaaS, 容器,以及常用微服務套件的學習成本。
-
測試開發環境和生産環境的閑置計算資源較高:
長期保有固定的IaaS資源,單台ECS單部署應用,導緻資源使用率很低,存在較多的閑置浪費。

架構圖
解決效果
總體上來說,掌訊資訊公司在與雲效&SAE共建之後,通過Codeup自動化代碼檢查提升了代碼品質,降低了生産的故障,FLow自動化流水線、SAE的接入不但降低了成本,同時提升了傳遞效率。
1. 降成本:
零成本投入提高品質管理能力和持續傳遞能力
免費使用的codeup代碼庫讓我們節省了自建git代碼庫的成本,codeup中內建的代碼審查和安全審查子產品又讓我們節省了品質管理的投入成本。免費的流水線flow讓我們節省了原本在jenkins中投入的環境成本。這些還隻是節省的有形成本,對于平台整合後效率的提升所節省的成本更是不可估量。
低成本高品質玩轉微服務架構
對于我們這樣的小團隊想要玩轉微服務架構一直是一個可望不可即的事情,直到發現了阿裡雲的SAE(Serverless應用引擎)産品,SAE(Serverless應用引擎)節省了自建微服務架構的ECS成本。基于秒級彈性能力,無需長期保有固定資源,按需啟停和自動彈性、按分鐘計費,極大的提升了資源使用率。使用SAE(Serverless應用引擎)後,公司單從硬體成本上就節省了50%。
2. 提效率:
SAE,從0到1的高效體驗
SAE 提供了應用托管和應用監控的開箱即用的體驗,幫助我們關注業務開發而非底層資源的運維,節省了大量的人力成本。目前,我們通過 SAE 上線了 5 個核心業務:商品中心、使用者中心、銷售中心、采購中心和庫存中心。
SAE,0改造使用Serverless技術
SAE實作了微服務應用的無縫遷移,WAR/JAR無需容器化改造直接部署,這也是SAE差別其它Serveless産品的重要優勢,平滑遷移企業線上應用。
雲效codeup代碼庫,加速你的code review
在codeup代碼庫中code review是在每一次commit後自動進行審查,和我們之前的集中時間,集中人力做code review工作相比,分散在commit後的自動審查模式更節約時間,并且自動化的觸發模式減少了人為參與産生誤判的可能性。
雲效flow,高易用性,高內建性
使用雲效flow産品後很多問題迎刃而解,可視化的流水線配置讓之前繁瑣的腳本編寫工作一去不複返。flow高度內建阿裡雲産品線,在流水線flow中輕松內建我們在阿裡雲使用的SAE環境。我們曾嘗試讓一名有3年工作經驗的普通的開發人員在flow中建構一個java測試應用部署的流水線,結果他在沒有檢視任何文檔的情況下很快的完成了流水線的配置工作。這些體驗都讓我們切身感受到flow産品的高易用性和高內建性。
3. 提升品質,減少故障:
一提到流量增長,大家第一時間可能想到的就是加機器加帶寬,但往往這個時候加機器已經來不及了。以往我們都是提前預估峰值,按峰值保有ECS資源,但經常出現容量預估不準的情況(比如資源浪費或資源不足),更嚴重的是會影響系統的SLA。通過SAE的秒級自動彈性,我們可以輕松的動态擴容應對峰值大考,峰谷時按需自動縮容。
以前團隊中的code review工作隻能指定專人在合并代碼後執行審查任務,并根據生成的審查報告統一對問題進行修訂,在使用雲效codeup代碼庫後,代碼審查工作被配置設定在每次commit後自動執行,以前統一的稽核時間被配置設定在團隊中每個人commit代碼後自動執行,不但減少了人員參與的人力成本而且減少了code review工作執行的時間成本,大大提高了工作效率。由于整個code review工作提前到了代碼commit階段,将發現并解決代碼潛在問題的階段提前到了代碼合并之前,這樣就減少了在後續環節中出現遺漏問題的可能性,這裡不得不提一下codeup審查代碼階段包含的敏感資訊和依賴包漏洞掃描功能,這兩個在codeup中自帶的安全掃描功能,不但調高了代碼品質的安全性,而且潛移默化的提高了團隊的安全意識。
對比 | 原來 | 現在 |
---|---|---|
代碼規範評審 | 代碼評審環節滞後,人為控制環節多。 | commit自動化評審 |
代碼安全評審 | 缺失安全評審工作 | commit自動化安全評審 |
釋出方式 | Jenkins手工編寫流水線腳本 | 高度可視化操作--簡單 |
Jenkins通過API方式內建阿裡雲産品(SAE) | 高度內建阿裡雲産品(SAE)--便捷 | |
分布式環境建設 | 購買ECS裝置建構環境 | SAE無需購買ECS,按資源使用量彈性付費 |
分布式環境運維 | 自建運維環境,內建多種運維工具 | SAE提供統一運維平台,高度內建阿裡雲運維相關産品。 |
結語
企業創新要做的是成長速度快于消費者需求變化的速度,是以「掌訊資訊」深感依靠自身摸索固然也可以持續提升能力,但面臨的挑戰要求能力的提升也必須更快、更好。在尋求提升開發和傳遞效率,低成本試錯中,「掌訊資訊」發現阿裡經過數年網際網路研發實戰,已經總結出了一套高效能的研發思想、流程及工具,那就是阿裡雲SAE+雲效。
持續傳遞、降本提效是一個很大的主題,一篇文章要講透是不夠的,隻是簡單分享了我們在這個過程中遇到的幾個關鍵問題。「掌訊資訊」在實踐中其實都在摸着石頭過河。希望大家可以多交流,共同探索網際網路傳遞效率的成功模式。
最後,感謝 「SAE + 雲效」 這兩款工具及官方團隊給予我們的支援,希望在未來更加深度的合作中,「掌訊資訊」和 「SAE + 雲效」 都能為更多團隊的傳遞效率提供更多更好的經驗。
作者介紹
喬亞浩,2009年加入石家莊掌訊資訊技術有限公司,從業務開發至産品管理,現任職「掌訊企業智能服務部主管」。先後承擔多次技術攻堅及推動技術演進:前端混合開發技術落地,産品後端微服務化改造、服務自動化建構及容器化部署、雲效CI/CD落地等。
