背景
石家莊掌訊信息技術有限公司創立於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落地等。