01Три сигнала, похожих на баг Xcode, но это выбор узла
Стабильный CPU скрывает RTT, RAM и диск, которые проявляются только при upload IPA.
- Слепота RTT: ping не бьёт в endpoint App Store Connect API и Transporter, которые держит pipeline.
- Потолок 16 ГБ: два Archive плюс фоновый upload выглядят как «нестабильный узел».
- Общий Keychain: общие provisioning между конвейерами падают раньше, чем растёт CPU.
02App Store Connect API и Transporter: RTT Гонконг, Сингапур, US West
С одного office egress, тем же DNS и окном времени: по десять проб на регион к хостам API и Transporter. Запишите медиану и p95 джиттера в журнал релиза — принцип тот же, что в FAQ Сингапур vs Гонконг. Для крупных IPA сравнивайте также пропускную способность upload: если медиана RTT зелёная, а throughput падает ниже ожидаемого при плоском CPU, проверьте маршрут egress и политику прокси — это не повод менять город без повторного замера.
| Endpoint | Гонконг | Сингапур | US West | Порог (медиана) |
|---|---|---|---|---|
| App Store Connect API | Сильный для дневного VNC Южного Китая | Часто стабилен для ASEAN egress | Часто лучший upload backbone | Выше 120 мс → жёлтый |
| Transporter upload | Команды Greater Bay | Команды ASEAN | Крупные IPA ночью | Выше 180 мс → красный |
| Джиттер poll processing | p95 выше 20 мс пять минут → удлините интервал poll | Судите p95, не один spike | ||
03Mac mini M4 16 ГБ: бюджет параллельной загрузки
Upload pipeline — резервирование памяти, а не фоновая задача «как получится». Технический потолок: unified memory на Apple Silicon делится между Archive, Transporter, индексацией Xcode и симуляторами; при swap выше нуля пять минут в пик upload сначала снижайте параллель, а не меняйте регион узла.
| Сценарий | Нагрузка | Рекомендация |
|---|---|---|
| Одно приложение: Archive + Transporter | Базовая линия на 16 ГБ | Одного слота neokvm достаточно |
| Каждый доп. upload pipe | ≈ +2 ГБ headroom | Throttle или очередь |
| Два приложения, always-on upload | Четыре и более pipe | Второй параллельный слот или 24 ГБ |
- Изолируйте
DerivedDataпо приложению; не делите Keychain между upload и debug профилями. - Разделите compile (дневной VNC в APAC) и upload (ночной US West) — снижает пик concurrency.
04Параллельный слот вместо двух upload на одном хосте
Не кладите Transporter и опрос API на один Mac 16 ГБ, если оба приложения шипят еженедельно. Реестр слотов по той же логике, что в FAQ параллель QA — колонки gateway замените на upload pipeline.
- Основной слот: подпись Xcode, Archive, ежедневный debug.
- Вторичный слот: только Transporter или poll App Store Connect API — отдельная папка API key.
- Изоляция: два инстанса neokvm; не делите Keychain и provisioning между слотами.
05Диск 1 ТБ vs 2 ТБ: чеклист ценности расширения
Давление на диск маскируется под TLS timeout на длинном IPA. Сверьте строки на тарифах до подписи финансов.
| Проверка | 1 ТБ | 2 ТБ | Срок аренды |
|---|---|---|---|
| Буфер free | Две недели выше 15% | Несколько IPA + dSYM, всё ещё >15% free | Сутки: двухнедельный tri-region sampling |
| Артефакты | Одна линия TestFlight | Два приложения IPA + dSYM | Неделя: релиз 2–4 недели |
| Экономика | Месяц коэф. = 1; сутки ≈ 1,7× дневной средней месяца (иллюстрация) | Месяц: always-on upload узел | |
Checkout по региону после «светофора» RTT: Гонконг, Сингапур, US West, хаб покупки.
06Частые сбои upload: FAQ troubleshooting
- Transporter timeout: красная строка RTT, диск 1 ТБ <15% free, перехват HTTPS на egress.
- API 401/403: роль API key, срок, Issuer ID — не переиспользуйте просроченный key на upload-слоте.
- Archive OK, upload fail: вынесите upload на выделенный слот; симуляторы выключите на upload-хосте в пик.
- US West всегда быстрее? Нет — решает медиана десяти проб с вашего egress.
- Processing «завис» в Connect: удлините poll при жёлтом джиттере; не перезапускайте Transporter, пока не исключите красную строку RTT и нехватку диска.
07Пять шагов runbook до аренды upload-узла
- Три региона: по десять медиан на API и Transporter; зелёный, жёлтый, красный.
- Зафиксировать регион: Гонконг, Сингапур или US West в change log релиза.
- Бюджет concurrency: Archives, upload pipes, пути DerivedData по приложению.
- Слот и диск: таблицы параллели и 1 vs 2 ТБ; срок на тарифах.
- Smoke TestFlight: после успеха — покупка, SSH в консоли, вопросы в справке.
08Параметры для архитектурных заметок
09FAQ для лидов: цифры, не города
Гонконг, Сингапур или US West для TestFlight? Прогоните таблицу RTT с office egress; берите регион зелёный на API и Transporter.
Когда второй параллельный слот дешевле 24 ГБ? Когда двум приложениям нужны always-on upload и изолированные Keychain — см. FAQ параллель QA.
Где контекст RTT по регионам? Сингапур vs Гонконг и матрица APAC vs US West.
Нужен ли отдельный узел только для API key rotation? Да, если rotation совпадает с ночным IPA — вынесите poll на вторичный слот, чтобы не сбивать Archive на основном Mac 16 ГБ.