作者简介:董必胜(叔大),阿里巴巴配置管理专家,负责集团、蚂蚁的移动端构建,负责研发协同平台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,这种方案的装机文档网上比较多,不过也存在上述问题:
- 装机过程比较复杂
- 常见做法是在PC上直接装,PC机运维成本比较高
- 无法做到自动化
linux+ VirtualBox + macOS Sierra,这种方案存在一个问题,virtualBox只能支持 i386和AMD64的架构。
另外上述方案最大的优点在成本低。但是还有两个通用致命的问题:
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集群
这种方式装机的问题不存在,但是也存在一些问题
- 成本相比较下偏高,这个问题是相对的mac mini也才几k
- 运维也是非标的,运维标准化包括:
- IDC的标准化,像BAT这种会自己搭建了符合IDC规范的机房
- 装机的标准化,已有的OS升级安装等都可以实现命令行自动化
- 监控的标准化:mac机器已经接入到服务端监控平台
说了这么多,总结下:
- mac mini、mac pro的运维标准化已经在路上了
- 黑苹果的包有法务、app store上传的问题,这条路在部分大企业是走不通的
扫码免费体验研发协同RDC
点此立即预约