移動APP持續交付系列之雲構建價值分析
現狀
企業A:小APP,Android、iOS研發各三人;大APP,Android、iOS研發各10人。CICD通過部署一臺jenkins伺服器 + 一臺Android 構建機器來完成Android的APP構建,iOS構建完全依賴開發本地環境。
企業B:3個APP5個研發同學,5臺伺服器年成本一萬左右 ,程式碼規範比較差導致質量不好
企業C:十幾個研發,五六臺伺服器。 尋求一站式交付平臺
可以看出:在企業內部為了支援APP構建需求一般會部署一臺jenkins用作構建任務管理,一臺以上的linux伺服器用於Android APP構建,視實際使用情況量級較小的iOS APP一般在本地完成構建,量級較大的APP會有單獨的構建機器。
成本
中小企業在APP構建部分的成本主要包括三個部分:
- 機器成本
用途
數量
配置
價格(元/年)
jenkins伺服器
1
4C8G+50G儲存
3830.10
Android構建機器
1
4C8G+50G儲存
3830.10
iOS構建機器(自行採購)
1
2.6GHz 處理器1 TB 儲存容量 mac mini
4945.00/4 (三年使用壽命來均攤成本)
OSS 儲存
200G
0.12元/GB/月 * 12
maven、cocoapods類庫倉庫
總計
9184.45
以最小資源消耗來看至少 1臺jenkins + 1臺Android + 1臺mac ,在業務量偏大的場景下可能需要更多的資源來支援構建、maven倉庫、cocoapods倉庫等。
- 人力成本
人力成本主要體現在以下幾個方面:
jenkins服務的搭建、日常維護、升級、異常處理
Android編譯機器的環境搭建、維護、Android SDK升級等
mac mini環境搭建、維護,xcode、cocoapods、證書等升級維護管理
構建異常等特殊情況下的問題排查、解決
簡單測算下一名Android 研發薪資 13263/月* 12 = 159156 (平均薪資資料取自獵聘網)
假設平均花費0.5個Android研發資源 159156 * 0.5 = 79578 元/年
- 時間成本
中小企業團隊沒有足夠的資源進行構建效率提升,使得每次構建相對消耗時間較長。無形中消耗了更多的時間成本。
這部分目前沒有能直觀的量化資料進行成本核算。
總計成本: 9184.45 + 79578 = 88762.45 元
從成本結構觀察,支撐APP 構建的成本主要在於人力成本的支出,而且這部分的工作是相對分散和繁雜的,也相對比較隱蔽不容易直觀體現和測算。
雲構建
雲構建是指通過雲技術提供Linux、MacOS的構建服務,為使用者提供簡單接入、低成本執行、高效的構建能力。
優勢
提供編譯快取、併發構建等能顯著提升構建效率的加速能力
提供環境、網路隔離,穩定的編譯環境
按需獲取資源進行構建,根據實際的構建需求動態排程實現資源的擴充套件和縮減
根據構建日誌智慧反饋構建失敗的排查建議
能夠無縫對接程式碼掃描、APP自動化測試、APP灰度釋出等能力,支援持續整合和支援交付
總結
隨著雲端計算概念的普及,大家對IAAS已經有比較多的認知。構建是研發基本的需求,通過雲服務既可以降低機器成本,又能有效降低開發者在構建服務的資源投入,將精力和時間更多的關注在業務中。
相關文章
- iOS 持續交付之 FastlaneiOSAST
- 談談持續整合,持續交付,持續部署之間的區別
- 持續整合持續部署持續交付_持續整合與持續部署之間的真正區別
- 持續整合、持續部署、持續交付、持續釋出
- 持續整合、持續交付、持續部署簡介
- 雲原生下的DevOps與持續交付dev
- 持續交付探索與實踐(二):自動化工具鏈建設
- 淺談持續整合(CI)、持續交付(CD)、持續部署(CD)
- 如何構建更好的複雜系統?容器、微服務和持續交付微服務
- 《持續交付》(第六章)——構建與部署的指令碼化指令碼
- GitOps | 一種雲原生的持續交付模型Git模型
- 釋出 Spinnaker 1.0:持續的雲交付平臺
- 對持續整合、 持續交付、持續部署和持續釋出的介紹
- 從持續整合到持續交付——DockerCloud概覽DockerCloud
- Java後端中的持續交付:如何構建從開發到上線的自動化流程Java後端
- 雲原生入門第六章:持續交付
- 持續交付一——軟體交付的問題
- 持續整合之hudson的構建任務排程
- 微服務、容器與持續交付微服務
- 玩轉spring boot——結合阿里雲持續交付Spring Boot阿里
- SAP開源的持續整合-持續交付的解決方案
- [譯] 構建、測試、分發!運用 Fastlane 與 Jenkins,完整的 iOS 持續交付指南ASTJenkinsiOS
- 深入分析C++物件模型之移動建構函式C++物件模型函式
- CI Weekly #5 | 微服務架構下的持續部署與交付微服務架構
- 安卓 ROM 持續交付及小米雲測平臺實踐 - 劉斌安卓
- 使用 KubeSphere 和極狐GitLab 打造雲原生持續交付系統Gitlab
- 持續交付與傳統敏捷的矛盾敏捷
- #翻譯#持續交付成熟度模型模型
- 持續交付探索與實踐(一):交付流水線的設計
- 如何構建高效自主的容器雲交付平臺?
- 雲效DevOps實踐-8分鐘如何快速實現持續交付dev
- 持續整合、持續交付和持續部署有什麼區別?0基礎學習linux技能Linux
- 「持續整合實踐系列 」Jenkins 2.x 構建CI自動化流水線常見技巧Jenkins
- 移動端經驗總結(持續更新)
- 持續輸出面試題系列之ZooKeeper篇面試題
- eBay透過事件溯源實現持續交付事件
- 持續交付中的分支管理與版本控制
- 太多指令碼將會毀掉持續交付指令碼