如何建设一个用于编译 iOS App 的 macOS 云服务器集群?

yizhihongxing

作者:京东零售 叶萌

现代软件开发一般会借助 CI/CD 来提升代码质量、加快发版速度、自动化重复的事情,iOS App 只能在 mac 机器上编译,CI/CD 工具因此需要有一个 macOS 云服务器集群来执行 iOS App 的编译。

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

image.png

购买 mac mini / Mac Studio 机器

最简单的方式就是购买一批 mac 机器,买它个 1000 台,买回来后放入机房,把其中一台机器作为管理机,申请办公网访问这台机器的网络权限,每次要维护这批机器里的软件时,先从办公网进入管理机,然后从管理机在远程连接到其他机器。

虚拟化 macOS 集群

借助 macOS 官方的Virtualization.Framework,可以分钟级创建 macOS 虚拟机,这种方式创建的虚拟机性能、稳定性、安全性都很高,可以持续采用更新、更快、更高级的 mac 硬件,最终实现更快的 App 编译速度。

在企业内部申请 macOS 机器,需要经历申请预算、领导审批、采购、运输、部署至机房等繁琐步骤,现在可通过购买高配置的 mac 机器,然后再将其按需配置成多台虚拟机,减少了硬件维护成本,提高了扩容效率。这方面代表性产品有

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

云端管理 macOS 服务器

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

在 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 机器,整体架构比较简单,也能解决问题

原文链接:https://www.cnblogs.com/jingdongkeji/p/17352910.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何建设一个用于编译 iOS App 的 macOS 云服务器集群? - Python技术站

(0)
上一篇 2023年4月25日
下一篇 2023年4月25日

相关文章

  • 云计算“软硬”之争:管用才是王道

    如今,谈云不谈混合云就是耍流氓的时代来了。相比国外私有云、公有云泾渭分明,中国的大型政企、泛互联网企业甚至一些中小企业,既要安全与合规,又要业务的灵活与适配,人人见面恨不得都得问一句:你混合云了吗? 而中大型政企才是上云的主力。随着行业创新从数字化迈向智能化,数字化转型从边缘应用拓展到核心应用,从新应用辐射到传统应用,中大型政企在云化时遇到的最大颈瓶是,基础…

    云计算 2023年4月13日
    00
  • 游戏业务安全实时计算集群:云原生资源优化实践

    「毛东方,腾讯后台开发工程师,负责IEG-业务安全部的后台实时系统Kubernetes相关的开发与运营,目前主要致力于提高集群的资源利用率,减少机器成本。」 背景 随着公司内部上云的呼声越来越高,越来越多的团队已经完成业务上云的进程。 然而,本人所在平台的应用部署上云后,在资源管理方面依然出现了一系列的问题,这些问题或多或少都对成本优化或应用的服务质量造成了…

    2023年4月10日
    00
  • Asp.net Core 如何设置黑白名单(路由限制)

    下面是关于”Asp.net Core 如何设置黑白名单(路由限制)”的完整攻略,包含两个示例说明。 简介 在Asp.net Core中,我们可以使用中间件来设置黑白名单,以限制路由的访问。黑白名单可以根据IP地址、用户角色、请求路径等进行设置。本攻略将介绍如何使用Asp.net Core设置黑白名单。 实现步骤 以下是使用Asp.net Core设置黑白名单…

    云计算 2023年5月16日
    00
  • 元宇宙技术是指什么?元宇宙技术风险介绍

    元宇宙技术是指什么?元宇宙技术风险介绍 元宇宙技术是指一种虚拟现实技术,它可以将现实世界和虚拟世界融合在一起,创造出一个全新的虚拟空间。元宇宙技术可以用于游戏、社交、教育、医疗等领域,具有广泛的应用前景。但是,元宇宙技术也存在一些风险,例如隐私泄露、虚拟资产安全等问题。下面是一些方法和示例说明,帮助你了解元宇宙技术和相关风险。 1. 元宇宙技术的定义 元宇宙…

    云计算 2023年5月16日
    00
  • 软件研发落地实践,要从设计就开始

    摘要:设计安全是实现DevSecOps非常重要的一环,大量历史经验也表明,越早在架构设计阶段考虑到安全设计的系统,比那些在越晚的开发设计阶段才考虑安全设计的系统,要安全得多。 本文分享自华为云社区《DevSecOps研发安全实践——设计篇》,作者:华为云PaaS小助手。 前言 随着DevOps的发展,DevOps大幅提升了企业应用迭代的速度。但同时,安全如果…

    2023年4月10日
    00
  • 聊一聊Asp.net过滤器Filter那一些事

    请看下面的详细讲解: 聊一聊Asp.net过滤器Filter那一些事 1. 过滤器Filter是什么? 过滤器(Filter)是ASP.NET中一种非常重要和有用的概念,它用于对应用程序中的请求和响应进行拦截和处理,以完成一些特定的任务。过滤器可以在请求执行之前、期间和之后被执行。 2. 过滤器类型 ASP.NET中提供了以下5种过滤器类型: 2.1. 授权…

    云计算 2023年5月17日
    00
  • 云计算推波助澜 非关系数据库蓄势待发(转载)

    摘要:非关系型数据库正在吸引人们的注意,因为它们可以忽略许多的规则,而这些规则正是经验丰富的数据库管理员积累的深刻教训。所有的Web应用程序设计者都梦想构建一个多机运行的应用程序,保存所有用户的所有数据,要想做到这些,有些老的规则需要避开,甚至是打破。   在过去的日子,当你有数据需要存储管理的时候,办法很简单:安装一个正式的数据库,将需要存储的数据录入进去…

    云计算 2023年4月10日
    00
  • 揭开云计算的面纱:走近Windows Azure

    1.Windows Azure简介   2008年10月27日,在洛杉矶举行的专业开发者大会PDC2008上,微软首席软件架构师Ray Ozzie宣布了微软的云计算战略以及云计算平台——Windows Azure。The Azure? Services Platform (Azure)是一个互联网级的运行与微软数据中心系统上的云计算服务平台,它提供操作系统和…

    云计算 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部