现状
- 企业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构建部分的成本主要包括三个部分:
1. 机器成本
用途
|
数量
|
配置
|
价格(元/年)
|
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仓库等。
2. 人力成本
人力成本主要体现在以下几个方面:
- jenkins服务的搭建、日常维护、升级、异常处理
- Android编译机器的环境搭建、维护、Android SDK升级等
- mac mini环境搭建、维护,xcode、cocoapods、证书等升级维护管理
- 构建异常等特殊情况下的问题排查、解决
简单测算下一名Android 研发薪资 13263/月* 12 = 159156 (平均薪资数据取自猎聘网)
假设平均花费0.5个Android研发资源 159156 * 0.5 = 79578 元/年
3. 时间成本
中小企业团队没有足够的资源进行构建效率提升,使得每次构建相对消耗时间较长。无形中消耗了更多的时间成本。
这部分目前没有能直观的量化数据进行成本核算。简单折算1000元/年, 实际研发时间价值远远不止这个数。
总计成本: 9184.45 + 79578 +1000 = 89762.45 元
从成本结构观察,支撑APP 构建的成本主要在于人力成本的支出,而且这部分的工作是相对分散和繁杂的,也相对比较隐蔽不容易直观体现和测算。
云构建
云构建是指通过云技术提供Linux、MacOS的构建服务,为用户提供简单接入、低成本运行、高效的构建能力。
优势
- 提供编译缓存、并发构建等能显著提升构建效率的加速能力
- 提供环境、网络隔离,稳定的编译环境
- 按需获取资源进行构建,根据实际的构建需求动态调度实现资源的扩展和缩减
- 根据构建日志智能反馈构建失败的排查建议
- 能够无缝对接代码扫描、APP自动化测试、APP灰度发布等能力,支持持续集成和支持交付
总结
随着云计算概念的普及,大家对IAAS已经有比较多的认知。构建是研发基本的需求,通过云服务既可以降低机器成本,又能有效降低开发者在构建服务的资源投入,将精力和时间更多的关注在业务中。