作者:京东零售 叶萌 现代软件开发一般会借助 CI/CD 来提升代码质量、何建加快发版速度
、用于云服自动化重复的编译事情 ,iOS App 只能在 mac 机器上编译
,集群CI/CD 工具因此需要有一个 macOS 云服务器集群来执行 iOS App 的何建编译。 今天就来谈谈如何建设 macOS 云服务器集群 最简单的用于云服方式就是购买一批 mac 机器 ,买它个 1000 台,编译买回来后放入机房 ,集群把其中一台机器作为管理机
,何建申请办公网访问这台机器的用于云服网络权限,每次要维护这批机器里的编译软件时,服务器租用先从办公网进入管理机 ,集群然后从管理机在远程连接到其他机器。何建 借助 macOS 官方的用于云服 Virtualization.Framework,可以分钟级创建 macOS 虚拟机,编译这种方式创建的虚拟机性能、稳定性、安全性都很高 ,可以持续采用更新、更快、更高级的 mac 硬件,最终实现更快的 App 编译速度。 在企业内部申请 macOS 机器 ,高防服务器需要经历申请预算、领导审批、采购、运输
、部署至机房等繁琐步骤,现在可通过购买高配置的 mac 机器 ,然后再将其按需配置成多台虚拟机
,减少了硬件维护成本,提高了扩容效率
。这方面代表性产品有 移动端 CI/CD 平台 bitrise 采用的是这种方式 ,只不过他们做了很多自研工作,打造了 Gen2 编译基础设施 ,宣称能让客户更快
、香港云服务器更频繁的发布 App 自行购买并维护 mac 机器还是不太方便,成本很高,如果能云端管理 、按需付费就更好了 。亚马逊的 AWS 解决了这个问题 ,他家的 Amazon EC2 Mac Instances 能让我们按需申请 macOS 服务器,如果能接受云端服务的话,其实这种方式最省事。与这种服务类似的产品有 sickcodes/Docker-OSX 是最近流行的亿华云一个项目 。 这个项目具有很多优势,例如 也有风险 我在裸金属上利用 Docker-OSX 项目确实跑起来了 macOS 虚拟机 。运行该项目有以下几点要注意 有没有可能在私有云里实现 aws 这种 mac 管理体验呢?MacStadium 家的 Orka 平台做到了。Orka 有以下好处 1 - 降低了 mac 集群的管理成本 利用 Kubernetes 调度 mac 服务器
,这与 Linux 服务器的管理保持一致
,方便融入公司已有技术栈 2 - 在真正的源码库 Apple 硬件上运行 mac 虚拟机 3 - 用心为开发者设计 对于企业来说,可以考虑购买 Orka 平台,在私有云里面搭建 macOS 云服务器集群 。GitLab SaaS 版也是使用这种方式来提供托管的 macOS Runner 的 我讲了建设 macOS 云服务器集群的 5 种方式,这些方式各有利弊,总的来说:购买 mac mini / Mac Studio 机器
虚拟化 macOS 集群
云端管理 macOS 服务器
在 linux 里运行 macOS 虚拟机
在 Apple 硬件上用 k8s 来调度 macOS
总结