移动APP持续交付系列之云构建价值分析

简介: 随着人力成本升高,研发团队需要更聚焦在自己的核心业务上,云计算时代研发支撑的工具平台能极大的节约企业的人力成本、机器成本和时间成本。

现状

  1. 企业A:小APP,Android、iOS研发各三人;大APP,Android、iOS研发各10人。CICD通过部署一台jenkins服务器 + 一台Android 构建机器来完成Android的APP构建,iOS构建完全依赖开发本地环境。
  2. 企业B:3个APP5个研发同学,5台服务器年成本一万左右 ,代码规范比较差导致质量不好
  3. 企业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元/年, 实际研发时间价值远远不止这个数。

image.png | left | 254x249

总计成本: 9184.45 + 79578 +1000 = 89762.45 元
从成本结构观察,支撑APP 构建的成本主要在于人力成本的支出,而且这部分的工作是相对分散和繁杂的,也相对比较隐蔽不容易直观体现和测算。

云构建

云构建是指通过云技术提供Linux、MacOS的构建服务,为用户提供简单接入、低成本运行、高效的构建能力。

image.png | left | 345x344

优势

  • 提供编译缓存、并发构建等能显著提升构建效率的加速能力
  • 提供环境、网络隔离,稳定的编译环境
  • 按需获取资源进行构建,根据实际的构建需求动态调度实现资源的扩展和缩减
  • 根据构建日志智能反馈构建失败的排查建议
  • 能够无缝对接代码扫描、APP自动化测试、APP灰度发布等能力,支持持续集成和支持交付

总结

随着云计算概念的普及,大家对IAAS已经有比较多的认知。构建是研发基本的需求,通过云服务既可以降低机器成本,又能有效降低开发者在构建服务的资源投入,将精力和时间更多的关注在业务中。

相关文章
|
24天前
|
监控 安全 Apache
构建安全的URL重定向策略:确保从Web到App平滑过渡的最佳实践
【10月更文挑战第2天】URL重定向是Web开发中常见的操作,它允许服务器根据请求的URL将用户重定向到另一个URL。然而,如果重定向过程没有得到妥善处理,可能会导致安全漏洞,如开放重定向攻击。因此,确保重定向过程的安全性至关重要。
29 0
|
3月前
|
Web App开发 Android开发
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
实时数据传输在互联网中至关重要,不仅支持即时通讯如QQ、微信的文字与图片传输,还包括音视频通信。一对一通信常采用WebRTC技术,如《Android Studio开发实战》中的App集成示例;而一对多的在线直播则需部署独立的流媒体服务器,使用如SRT等协议。SRT因其优越的直播质量正逐渐成为主流。本文档概述了SRT协议的使用,包括通过OBS Studio和SRT Streamer进行SRT直播推流的方法,并展示了推流与拉流的成功实例。更多细节参见《FFmpeg开发实战》一书。
52 1
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
|
2月前
|
安全
【Azure App Service】App service无法使用的情况分析
App Service集成子网后,如果子网网段中的剩余IP地址非常少的情况下,会在App Service实例升级时( 先加入新实例,然后在移除老实例 )。新加入的实例不能被分配到正确的内网IP地址,无法成功的访问内网资源。 解决方法就是为App Service增加子网地址, 最少需要/26 子网网段地址。
|
3月前
【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析
【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析
|
3月前
|
Android开发 iOS开发 C#
Xamarin:用C#打造跨平台移动应用的终极利器——从零开始构建你的第一个iOS与Android通用App,体验前所未有的高效与便捷开发之旅
【8月更文挑战第31天】Xamarin 是一个强大的框架,允许开发者使用单一的 C# 代码库构建高性能的原生移动应用,支持 iOS、Android 和 Windows 平台。作为微软的一部分,Xamarin 充分利用了 .NET 框架的强大功能,提供了丰富的 API 和工具集,简化了跨平台移动应用开发。本文通过一个简单的示例应用介绍了如何使用 Xamarin.Forms 快速创建跨平台应用,包括设置开发环境、定义用户界面和实现按钮点击事件处理逻辑。这个示例展示了 Xamarin.Forms 的基本功能,帮助开发者提高开发效率并实现一致的用户体验。
131 0
|
3月前
|
存储 XML Linux
深入理解操作系统:进程管理与调度策略探索安卓应用开发:从零开始构建你的第一个App
【8月更文挑战第28天】在数字世界里航行,操作系统是掌控一切的舵手。本文将带你领略操作系统的精妙设计,特别是进程管理和调度策略这两大核心领域。我们将从基础概念出发,逐步深入到复杂的实现机制,最后通过实际代码示例,揭示操作系统如何高效协调资源,确保多任务顺畅运行的秘密。准备好了吗?让我们启航,探索那些隐藏在日常电脑使用背后的奥秘。 【8月更文挑战第28天】在这个数字时代,拥有一款自己的移动应用程序不仅是技术的展示,也是实现创意和解决问题的一种方式。本文将引导初学者了解安卓开发的基础知识,通过一个简单的待办事项列表App项目,逐步介绍如何利用安卓开发工具和语言来创建、测试并发布一个基本的安卓应用
|
3月前
|
Java 程序员 Android开发
探索安卓开发:构建你的第一个App
【8月更文挑战第27天】在数字化时代的浪潮中,移动应用成为人们生活不可或缺的一部分。对于渴望进入软件开发领域的新手而言,掌握如何构建一款简单的安卓App是开启技术之旅的关键一步。本文旨在通过浅显易懂的语言和步骤分解,引导初学者了解安卓开发的基础知识,并跟随示例代码,一步步实现自己的第一个安卓App。从环境搭建到界面设计,再到功能实现,我们将一同揭开编程的神秘面纱,让每个人都能体会到创造软件的乐趣。
|
3月前
|
开发框架 缓存 .NET
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
|
3月前
|
C# 开发工具
【Azure 应用服务】Azure Function App使用SendGrid发送邮件遇见异常消息The operation was canceled,分析源码渐入最源端
【Azure 应用服务】Azure Function App使用SendGrid发送邮件遇见异常消息The operation was canceled,分析源码渐入最源端
|
3月前
|
网络协议 NoSQL 网络安全
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)