关于app:如何建设一个用于编译-iOS-App-的-macOS-云服务器集群-京东云技术团队

134次阅读

共计 1858 个字符,预计需要花费 5 分钟才能阅读完成。

作者:京东批发 叶萌

古代软件开发个别会借助 CI/CD 来晋升代码品质、放慢发版速度、自动化反复的事件,iOS App 只能在 mac 机器上编译,CI/CD 工具因而须要有一个 macOS 云服务器集群来执行 iOS App 的编译。

明天就来谈谈如何建设 macOS 云服务器集群

购买 mac mini / Mac Studio 机器

最简略的形式就是购买一批 mac 机器,买它个 1000 台,买回来后放入机房,把其中一台机器作为治理机,申请办公网拜访这台机器的网络权限,每次要保护这批机器里的软件时,先从办公网进入治理机,而后从治理机在近程连贯到其余机器。

虚拟化 macOS 集群

借助 macOS 官网的 Virtualization.Framework,能够分钟级创立 macOS 虚拟机,这种形式创立的虚拟机性能、稳定性、安全性都很高,能够继续采纳更新、更快、更高级的 mac 硬件,最终实现更快的 App 编译速度。

在企业外部申请 macOS 机器,须要经验申请估算、领导审批、洽购、运输、部署至机房等繁琐步骤,当初可通过购买高配置的 mac 机器,而后再将其按需配置成多台虚拟机,缩小了硬件保护老本,进步了扩容效率。这方面代表性产品有

  • https://github.com/cirruslabs/tart
  • https://www.macstadium.com/anka

挪动端 CI/CD 平台 bitrise 采纳的是这种形式,只不过他们做了很多自研工作,打造了 Gen2 编译基础设施,声称能让客户更快、更频繁的公布 App

云端治理 macOS 服务器

自行购买并保护 mac 机器还是不太不便,老本很高,如果能云端治理、按需付费就更好了。亚马逊的 AWS 解决了这个问题,他家的 Amazon EC2 Mac Instances 能让咱们按需申请 macOS 服务器,如果能承受云端服务的话,其实这种形式最省事。与这种服务相似的产品有

  • https://flow.swiss/mac-bare-metal
  • https://www.scaleway.com/en/hello-m1/

在 linux 里运行 macOS 虚拟机

sickcodes/Docker-OSX 是最近风行的一个我的项目。

  • 借助 KVM 技术,实现了在 linux 里运行 macOS 虚拟机
  • 借助 docker,简化了 macOS 虚拟机的部署

这个我的项目具备很多劣势,例如

  1. 不依赖专门的 Apple 硬件,可能运行 KVM 的 x86_64 机器就行
  2. 可能通过 docker 容器来部署 macOS 虚拟机。将来借助 k8s,可能实现大规模 macOS 服务器的治理,轻易实现扩缩容

也有危险

  1. 不太合规,macOS 失常只能在 Apple 硬件上运行
  2. 在 KVM 里运行 macOS,兼容性、性能、稳定性须要评估。如果呈现问题须要付费找我的项目维护者解决

我在裸金属上利用 Docker-OSX 我的项目的确跑起来了 macOS 虚拟机。运行该我的项目有以下几点要留神

  1. linux 宿主机须要反对嵌套虚拟化(Nested Hardware Virtualization)。开启硬件虚拟化后能力装置 kvm。裸金属和物理机失常都反对
  2. 对 Linux 内核有要求,操作系统最好比拟新,CentOS 8 能够,CentOS 7 不行

在 Apple 硬件上用 k8s 来调度 macOS

有没有可能在公有云里实现 aws 这种 mac 治理体验呢?MacStadium 家的 Orka 平台做到了。Orka 有以下益处

1 – 升高了 mac 集群的治理老本
花工夫更少,例如治理服务器、在服务器上安装软件

利用 Kubernetes 调度 mac 服务器,这与 Linux 服务器的治理保持一致,不便融入公司已有技术栈

2 – 在真正的 Apple 硬件上运行 mac 虚拟机
不必放心兼容性、稳定性、性能问题

3 – 用心为开发者设计
提供多种操作形式(命令行、REST API)来治理 mac 虚拟机

对于企业来说,能够思考购买 Orka 平台,在公有云外面搭建 macOS 云服务器集群。GitLab SaaS 版也是应用这种形式来提供托管的 macOS Runner 的

总结

我讲了建设 macOS 云服务器集群的 5 种形式,这些形式各有利弊,总的来说:

  • 如果能承受应用云服务器,倡议间接购买 AWS 的 Amazon EC2 Mac Instances,不便、成本低
  • 自建机房,如果打算建设的 macOS 集群规模很大,倡议购买 MacStadium 的 Orka 平台来建设,业余服务,防止踩坑,省时省力
  • 自建机房,如果 macOS 集群规模比拟小,对自动化要求不高,倡议购买高配的 apple 硬件,而后通过 Virtualization.Framework 虚拟化出多台 macOS 机器,整体架构比较简单,也能解决问题
正文完
 0