作者 :京东零售 叶萌 现代软件开发一般会借助 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
总结