Для тех, кто отвечает и за пайплайн, и за машину

Мы перенесли сборочный Mac из офисного угла в дата-центр

После слияния кода вам нужно проверить результат сборки, а не выяснять, не отключилось ли электричество в офисе. OSXPort размещает выделенные физические Mac mini для руководителей CI: питание, сеть и охлаждение остаются в дата-центре, а инженерные задачи и график релизов — в руках команды.

От $19.7 в день, оплата в USD. Сначала проверьте свой пайплайн, а затем решайте, переносить ли его на постоянной основе.

Расписание сборок команды Один физический узел — расписание по вашим правилам

Ветки используют общую машину команды, не конкурируя за ресурсы с другими клиентами.

Ветка Пример порядка сборок
main
Проверка слияния
release/2.4
Сборка и архивирование
nightly
Ночное тестирование
Работа 365 дней в году За питание, сеть и охлаждение отвечает дата-центр; команда задаёт параллельность и порядок выполнения задач.
Это схема организации сборок, а не замер времени выполнения или журнал доступности за прошлый период. Весь Mac mini выделяется одному клиенту и не является виртуальной машиной.
Чёткое распределение обязанностей важнее ещё одной машины

Дата-центр отвечает за инфраструктуру, команда — за релизы

Собственная машина в офисе, общий runner и выделенный хостинг — все эти варианты позволяют выполнять сборки. Разница в том, кто поддерживает постоянную доступность машины и нужна ли вам собственная среда для непрерывной работы. Наш сервис рассчитан на команды с несколькими слияниями в день, которые хотят меньше заниматься оборудованием, а не на тех, кому нужно арендовать сервер для любой сборки.

За что отвечает дата-центр

Питание, подключение к сети и охлаждение входят в инфраструктуру размещения. Узел работает 365 дней в году; ночные задачи больше не зависят от выключателя в офисе и режима работы кондиционера.

Это избавляет ответственных сотрудников от части задач, не связанных с кодом, но не гарантирует успешность каждой сборки. Проблемы с загрузкой зависимостей, результатами тестов и настройками проекта нужно диагностировать отдельно.

Что остаётся на команде

Команда настраивает и контролирует код, регистрацию runner, версии инструментов, материалы для подписи, лимиты параллельных задач и артефакты сборки. Графический интерфейс macOS и командная строка доступны полностью — существующий процесс можно подключить обычным способом.

Сертификаты подписи, настройки проекта и важные артефакты необходимо резервировать самостоятельно. Кэш ускоряет подготовку повторных сборок, но не заменяет резервные копии проекта и учётных данных, необходимые для восстановления.

Что делать при неполадках

Если узел теряет соединение, сначала определите, связана ли проблема с сетью, системой или самой задачей. При подозрении на неисправность оборудования создайте обращение в панели управления, указав идентификатор узла, время возникновения и симптомы. Это запустит диагностику и процедуру замены машины.

После замены потребуется заново проверить runner, инструменты и настройки подписи. Документировать порядок восстановления заранее надёжнее, чем рассчитывать на то, что с машиной никогда не возникнет проблем.

Выделенные ресурсы — не бесконечная параллельность

Своя среда — с ограничениями одной машины

Выделенная физическая машина упрощает контроль ресурсов и изменений среды. Она исключает конкуренцию за ресурсы с другими клиентами на той же машине, но не устраняет колебания нагрузки из-за размера проекта, количества задач и сторонних сервисов.

Вся машина — одному клиенту

CPU, унифицированная память и SSD используются только вашими задачами. Кэш DerivedData, зависимости и проекта контролирует команда; сборки других клиентов его не очищают.

Если изменилось время выполнения задач, можно искать причину в изменениях проекта, попаданиях в кэш, объёме тестов и параллельности на машине — не гадая, не занял ли её посторонний процесс.

Очередь задач по-прежнему настраивает команда

Несколько веток одной команды всё ещё могут конкурировать за один узел. Одновременный запуск всех задач не добавит вычислительных ресурсов — настройте параллельность runner с учётом потребления памяти и приоритетов релизов.

Один узел менее гибок, чем общий пул с масштабированием по запросу. Если сборки нужны лишь изредка или кратковременные пики непредсказуемы, общий runner может подойти лучше. Если у вас уже есть свободный Mac и сборка нужна всего раз-два в месяц, выгоднее может быть собственная машина.

Наш совет: перенесите сначала один пайплайн, а не всю команду целиком.

На одном и том же коде сравните получение исходников, подготовку зависимостей, компиляцию, тестирование и загрузку артефактов. Так вы поймёте, где узкое место: в вычислительных ресурсах, сети или настройке задач. Выделенная машина решает вопрос принадлежности ресурсов, но не все проблемы сборки.

Конфигурация должна соответствовать нагрузке

Три конфигурации — чтобы выбирать на основе фактов

Apple Silicon M4 подходит для лёгких сборок и повседневной разработки. M4 Pro — ещё один вариант для крупных проектов и повышенных требований к памяти. Мы указываем чип, объём унифицированной памяти и SSD, а не заменяем характеристики расплывчатыми названиями классов. И мы не обещаем, что любая конфигурация ускорит все проекты в одинаковой мере.

Port M4 Base

Apple Silicon M4 · 16GB унифицированной памяти · 256GB SSD

Подойдёт для одного приложения, нескольких сборок в день или проверки того, подходит ли вам удалённая сборка. Не рекомендуется одновременно запускать несколько симуляторов и множество параллельных задач компиляции.

$19.7/день · $98.5/месяц

Неделя — $53.2 · квартал — $267.9

Арендовать Port M4 Base

Port M4 Plus

Apple Silicon M4 · 24GB унифицированной памяти · 512GB SSD

Подойдёт для повседневных сборок после слияния, задач из нескольких веток и тестирования в симуляторах. Решая, увеличивать ли параллельность, ориентируйтесь на пиковое потребление памяти проекта, а не выставляйте максимальное число задач сразу.

$40.3/день · $201.6/месяц

Неделя — $108.9 · квартал — $548.4

Арендовать Port M4 Plus

Port M4 Pro

Apple Silicon M4 Pro · 64GB унифицированной памяти · 2TB SSD

Подойдёт для крупных проектов с несколькими target, задач с высоким потреблением памяти и экспериментов с локальным инференсом моделей. Если нагрузка требует обучения на нескольких ускорителях, Mac mini не заменит соответствующее оборудование.

$61.4/день · $307.1/месяц

Неделя — $165.8 · квартал — $835.3

Арендовать Port M4 Pro

Это базовая стоимость узла, оплата производится в USD. Расширение хранилища и другие дополнительные опции оплачиваются отдельно. Полная конфигурация и итоговая сумма будут указаны при оформлении заказа.

Учитывайте и сетевой маршрут

Пять регионов: сначала проверьте расположение репозитория и зависимостей

Сингапур, Япония (Токио), Южная Корея (Сеул), Гонконг и запад США — варианты для команд в Азиатско-Тихоокеанском регионе и на западном побережье США. Все три конфигурации доступны во всех пяти регионах. Фактическую доступность проверяйте в панели управления. При выборе учитывайте не только расстояние от команды до узла, но и весь маршрут: получение кода, загрузку зависимостей и отправку артефактов.

Сингапур

Хороший вариант для первичной проверки командами из Юго-Восточной Азии. Во время тестового запуска используйте и репозиторий, и часто загружаемые зависимости, чтобы понять, сколько времени занимает подготовка.

Выбрать узел в Сингапуре

Япония (Токио)

Вариант для команд, работающих в Японии и Восточной Азии. Если вы часто подключаетесь удалённо, оцените также удобство работы и скорость загрузки артефактов.

Выбрать узел в Токио

Южная Корея (Сеул)

Регион для сравнения командами из Северо-Восточной Азии. Проверяйте на одной и той же версии кода и зависимостей, чтобы не принять разницу в кэшировании за разницу в производительности региона.

Выбрать узел в Сеуле

Гонконг

Этот регион стоит проверить командам, работающим в Южном Китае и Юго-Восточной Азии. Маршруты через сети разных операторов могут отличаться — ориентируйтесь на результат тестирования собственного проекта.

Выбрать узел в Гонконге

Запад США

Стоит оценить, если репозитории, источники зависимостей и подключение команды находятся на западном побережье Северной Америки. Для распределённой команды выбирайте регион с учётом основного потока данных пайплайна.

Выбрать узел на западе США

Это рекомендации по выбору региона, а не результаты замеров задержки в каждом городе. При работе между регионами сначала зафиксируйте время получения исходников и отправки данных, а затем решайте, стоит ли переносить узел. Не подменяйте проверку географическим названием.

Эти принципы помогают и на странице, и в ответах на вопросы

Три принципа, по которым мы рассказываем о сервисе

Руководителям CI нужна информация, на основе которой можно принять решение. Мы отдельно описываем каталог, ограничения и условия оплаты, чтобы важные нюансы не выяснялись уже после подключения.

  1. 01

    Полные характеристики и цены

    Указываем чип, унифицированную память, SSD и все четыре периода оплаты. Базовую стоимость узла отделяем от дополнительных опций: месячную цену не выдаём за дневную и не подменяем конфигурацию словами «высокая производительность». При выборе сначала проверьте характеристики, затем посчитайте расходы за весь период использования.

  2. 02

    Честно говорим, если вариант не подходит

    Если у вас уже есть свободный Mac, а сборки нужны редко, собственная машина может обойтись дешевле. При коротких и непредсказуемых пиках нагрузки общий runner может быть гибче. А для отладки, требующей локального реального устройства, одного удалённого узла недостаточно. Выделенный хостинг подходит для регулярной работы, но не должен заменять все способы разработки.

  3. 03

    Прозрачная оплата в USD

    Поддерживаются только USDT-TRC20 и Visa / Mastercard / Amex (через Stripe). Фактически доступные способы оплаты зависят от ответа платёжного шлюза. Перед заказом проверьте модель, регион, период и дополнительные опции. По вопросам оплаты или счетов создайте обращение в панели управления, а вопросы до покупки отправляйте на support@osxport.com.

Проверьте перенос на полной сборке

Выполните весь цикл: получите исходники, подготовьте зависимости, скомпилируйте проект, запустите тесты и сохраните артефакты. Зафиксируйте время и пиковое потребление памяти, а затем выберите конфигурацию, параллельность и период оплаты. Тестовая аренда на день — от $19.7; не обязательно сразу принимать решение о долгосрочном размещении.

Если у вас уже есть свободная машина и сборки нужны всего раз-два в месяц, сначала рекомендуем посчитать стоимость собственной инфраструктуры.