作者简介:董必胜(叔大),阿里巴巴配置管理专家,负责集团、蚂蚁的移动端构建,负责研发协同平台rdc无线。
背景:在移动物联网大潮中ios构建的重要性日益突出,如何能提供稳定的ios构建服务?中大型的企业如何搭建、管理这种非标准的ios构建集群?如何能做到集群搭建的成本最优?本文以alibaba集团的场景和大家分享ios构建集群搭建的方案选型。
我们都知道ios的构建需要在macos sierra的系统上构建。针对我们构建集群的搭建有几种思路:
直接采购mac mini、mac pro用于构建;
在linux虚机里安装macos sierra(应用层);
在pc、linux等裸机上安装macos sierra(系统层)。
一、 系统层虚拟化方案
这种机器在业界有个说法叫黑苹果,最著名的黑苹果论坛:https://www.tonymacx86.com/ 。详细装机文档:https://www.tonymacx86.com/threads/unibeast-install-macos-sierra-on-any-supported-intel-based-pc.200564/。
从文档可以看出:
装机过程比较复杂;
常见做法是在pc上直接装,pc机运维成本比较高;
无法做到自动化。
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兼容范围有限。
装机过程比较复杂
常见做法是在pc上直接装,pc机运维成本比较高
无法做到自动化

另外上述方案最大的优点在成本低。但是还有两个通用致命的问题:
根据macosx的使用协议, macosx 只能用在apple-labeled computer,所以在部分企业基本不能使用非mac的机器用来做ios构建
<code>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.</code>
从黑苹果用户了解到,在黑苹果机器上构建的app无法通过app store审核。也就是说你即使打出app也没发走官方渠道,只用用于framework构建或者一些越狱渠道。
这种方式装机的问题不存在,但是也存在一些问题
成本相比较下偏高,这个问题是相对的mac mini也才几k
运维也是非标的,运维标准化包括:
idc的标准化,像bat这种会自己搭建了符合idc规范的机房
装机的标准化,已有的os升级安装等都可以实现命令行自动化
监控的标准化:mac机器已经接入到服务端监控平台
mac mini、mac pro的运维标准化已经在路上了
黑苹果的包有法务、app store上传的问题,这条路在部分大企业是走不通的
扫码免费体验研发协同rdc