阿里配管专家解读:如何最优成本搭建非标准的iOS构建集群

简介: 在移动物联网大潮中iOS构建的重要性日益突出,如何能提供稳定的iOS构建服务?中大型的企业如何搭建、管理这种非标准的iOS构建集群?如何能做到集群搭建的成本最优?本文以alibaba集团的场景和大家分享iOS构建集群搭建的方案选型。

作者简介:董必胜(叔大),阿里巴巴配置管理专家,负责集团、蚂蚁的移动端构建,负责研发协同平台RDC无线。

背景:在移动物联网大潮中iOS构建的重要性日益突出,如何能提供稳定的iOS构建服务?中大型的企业如何搭建、管理这种非标准的iOS构建集群?如何能做到集群搭建的成本最优?本文以alibaba集团的场景和大家分享iOS构建集群搭建的方案选型。


我们都知道iOS的构建需要在macOS Sierra的系统上构建。针对我们构建集群的搭建有几种思路:

  • 直接采购mac mini、mac pro用于构建;
  • 在linux虚机里安装macOS Sierra(应用层);
  • 在PC、linux等裸机上安装macOS Sierra(系统层)。

一、 系统层虚拟化方案

在裸机上直接安装macOS Sierra。

这种机器在业界有个说法叫黑苹果,最著名的黑苹果论坛:https://www.tonymacx86.com/ 。详细装机文档:https://www.tonymacx86.com/threads/unibeast-install-macos-sierra-on-any-supported-intel-based-pc.200564/。
从文档可以看出:

装机过程比较复杂;
常见做法是在PC上直接装,PC机运维成本比较高; 无法做到自动化。

使用vmware的虚拟化工具 vmwareEXSi,测试验证结果:

1)最新版本6.5.0版本在mac pro安装失败,achi无法识别;
2)6.0.0patch2版本在mac pro安装成功一次,但安装后,访问虚拟机管理页面有错误。测试重启服务器,虚拟机自动重新开机不生效。部分帖子反馈,磁盘读取部分虚拟化有问题,读写效率低,目前未验证;
3)在惠普微服务器gen8上安装6.0.0版本,虽然6.0.0标记仅支持macOS10.10,但可以升级到macOS10.12.4;
4)烧制6.5.0EXSi后安装后,即使返回安装6.0.0patch2,EXSi安装后,能正常读取ip,但网络访问有问题,并且无法进入exsi系统的命令行模式;
5)借用Lenovo T4500,因网卡不识别,无法安装EXSi,可见EXSi兼容范围有限。

二、应用层的虚拟化方案

Windows + vmare + macOS Sierra,这种方案的装机文档网上比较多,不过也存在上述问题:

  1. 装机过程比较复杂
  2. 常见做法是在PC上直接装,PC机运维成本比较高
  3. 无法做到自动化

linux+ VirtualBox + macOS Sierra,这种方案存在一个问题,virtualBox只能支持 i386和AMD64的架构。

4670a96ed685c21bbdc4ca658758b500a0f9bee6

另外上述方案最大的优点在成本低。但是还有两个通用致命的问题:

1. 法务问题: https://store.apple.com/Catalog/US/Images/MacOSX.htm

根据MacOSX的使用协议, MacOSX 只能用在Apple-labeled computer,所以在部分企业基本不能使用非mac的机器用来做iOS构建

 

2. Permitted License Uses and Restrictions. A. This License allows you to install and use one copy of the Apple Software on a single Apple-labeled computer at a time. This License does not allow the Apple Software to exist on more than one computer at a time,and you may not make the Apple Software available over a network where it could be used by multiple computers at the same time. You may make one copy of the Apple Software (excluding the Boot ROM code) in machine-readable form for backup purposes only; provided that the backup copy must include all copyright or other proprietary notices contained on the original.

2. app上传问题:

从黑苹果用户了解到,在黑苹果机器上构建的app无法通过app store审核。也就是说你即使打出app也没发走官方渠道,只用用于framework构建或者一些越狱渠道。

三、直接用mac mini、mac pro搭建mac集群

这种方式装机的问题不存在,但是也存在一些问题

  1. 成本相比较下偏高,这个问题是相对的mac mini也才几k
  2. 运维也是非标的,运维标准化包括:
  • IDC的标准化,像BAT这种会自己搭建了符合IDC规范的机房

803ab64829f3b9fd51fa15dd998f13095932dc22

  • 装机的标准化,已有的OS升级安装等都可以实现命令行自动化
  • 监控的标准化:mac机器已经接入到服务端监控平台

说了这么多,总结下:

  • mac mini、mac pro的运维标准化已经在路上了
  • 黑苹果的包有法务、app store上传的问题,这条路在部分大企业是走不通的

扫码免费体验研发协同RDC

d06bfad45fad84a730b1aa3b7e993687656f5485

4f4e845bd429d3ef8d84e43447bd33e591acc6a3

点此立即预约

相关文章
|
8天前
|
设计模式 存储 Swift
探索iOS应用开发:从新手到专家
【6月更文挑战第28天】在这篇文章中,我们将深入探讨iOS应用开发的各个方面。无论你是刚开始学习iOS开发的新手,还是已经有一定经验的开发者,这篇文章都将为你提供有价值的信息和指导。我们将从基础知识开始,逐步深入到更复杂的主题,包括设计模式、性能优化和最新的iOS技术趋势。通过这篇文章,你将获得从新手到专家的全面指导。
|
12天前
|
设计模式 IDE Swift
探索iOS开发:从新手到专家的旅程
【6月更文挑战第25天】在数字时代的浪潮中,iOS开发作为一门艺术和科学的结合体,吸引了众多开发者的目光。本文将带领读者踏上一场精彩的旅程,从基础的搭建环境开始,逐步深入到高级编程技巧,再到应用发布与市场策略,全方位解读iOS开发的魅力所在。通过实际案例分析,我们将揭示那些让应用脱颖而出的秘密,以及如何在竞争激烈的应用市场中保持竞争力。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧,让你的iOS开发之旅更加顺畅。
|
2月前
|
安全 Swift iOS开发
【Swift 开发专栏】Swift 与 UIKit:构建 iOS 应用界面
【4月更文挑战第30天】本文探讨了Swift和UIKit在构建iOS应用界面的关键技术和实践方法。Swift的简洁语法、类型安全和高效编程模型,加上与UIKit的紧密集成,使开发者能便捷地创建用户界面。UIKit提供视图、控制器、布局、动画和事件处理等功能,支持灵活的界面设计。实践中,遵循设计原则,合理组织视图层次,运用布局和动画,以及实现响应式设计,能提升界面质量和用户体验。文章通过登录、列表和详情界面的实际案例展示了Swift与UIKit的结合应用。
|
2月前
|
安全 Android开发 iOS开发
构建未来:安卓与iOS的无缝集成技术探索
【5月更文挑战第20天】随着智能设备的普及和技术的不断进步,安卓和iOS两大操作系统之间的界限正在逐渐模糊。本文将深入探讨如何通过最新的API、框架和工具实现安卓与iOS应用的无缝集成,以及这一趋势对开发者和用户的潜在影响。我们将从技术可行性、安全性挑战、用户体验优化等角度出发,分析当前的发展状况,并展望未来可能的技术融合路径。
|
2月前
|
iOS开发 开发者 UED
利用SwiftUI构建动态列表:iOS开发的新范式
【4月更文挑战第22天】在本文中,我们将深入探讨如何使用SwiftUI来创建动态列表。SwiftUI是苹果最新推出的用户界面工具集,它允许开发者以声明式的方式描述用户界面,从而简化了代码的复杂性。我们将通过具体的代码实例,展示如何利用SwiftUI的List和ForEach视图来创建动态列表,并讨论其在实际开发中的应用。
34 2
|
2月前
|
存储 编解码 JSON
利用SwiftUI构建高效iOS天气应用
【4月更文挑战第21天】 在本文中,我们将深入探讨如何运用SwiftUI框架打造一个响应迅速且用户友好的iOS天气应用程序。我们将重点放在利用SwiftUI的声明式语法简化界面开发,并通过结合Core Location和Networking APIs实现实时天气数据的获取与展示。文章将详细阐述整个开发过程,包括API集成、数据模型设计、用户界面布局以及动态适配不同屏幕尺寸的策略。
|
2月前
|
搜索推荐 API iOS开发
利用SwiftUI构建动态iOS天气应用
【4月更文挑战第23天】 在本文中,我们将探讨如何使用SwiftUI框架实现一个动态的iOS天气应用程序。将重点介绍如何通过集成第三方天气API、设计响应式用户界面以及应用数据绑定技术来增强用户体验。我们的目标是创建一个能够根据当前位置实时更新天气信息的应用,并确保其界面简洁、易用且美观。
32 0
|
2月前
|
搜索推荐 iOS开发 开发者
利用SwiftUI构建动态用户界面:iOS开发新篇章
【4月更文挑战第10天】在移动应用的世界中,流畅的用户体验和引人注目的界面设计是至关重要的。随着SwiftUI的推出,iOS开发者被赋予了创造高度动态且响应式界面的能力。本文将深入探讨如何利用SwiftUI的强大特性来实现一个动态用户界面,包括其声明性语法、状态绑定以及视图更新机制。我们将通过一个天气应用案例,了解如何有效地运用这些工具来提升应用的交互性和视觉吸引力。
|
2月前
|
开发工具 Swift iOS开发
利用SwiftUI构建动态用户界面:iOS开发新范式
【4月更文挑战第3天】 随着苹果不断推进其软件开发工具的边界,SwiftUI作为一种新兴的编程框架,已经逐渐成为iOS开发者的新宠。不同于传统的UIKit,SwiftUI通过声明式语法和强大的功能组合,为创建动态且响应式的用户界面提供了一种更加简洁高效的方式。本文将深入探讨如何利用SwiftUI技术构建具有高度自定义能力和响应性的用户界面,并展示其在现代iOS应用开发中的优势和潜力。
|
2月前
|
数据安全/隐私保护 开发者 iOS开发
iOS-打包上架构建版本一直不出现/正在处理/自动消失
iOS-打包上架构建版本一直不出现/正在处理/自动消失
65 0