Работая на MacBook с Docker Desktop, я часто сталкивался с тем, что система становилась менее отзывчивой, особенно при запуске нескольких контейнеров одновременно. Высокая нагрузка на CPU и память заметно влияла на время автономной работы.

Но недавно я наткнулся на OrbStack, и это изменило мой рабочий процесс настолько, что я решил поделиться своим опытом. Спойлер: теперь мой MacBook не превращается в печку, батарея держится дольше, а Docker-контейнеры летают.

Что такое OrbStack?

OrbStack - это не просто еще одна альтернатива Docker Desktop. Это полноценное решение "всё в одном" для запуска контейнеров, Kubernetes кластера и Linux виртуальных машин на macOS. Когда я впервые услышал об этом, я был настроен скептически. Мы все видели множество "альтернатив" Docker Desktop, которые в итоге создавали больше проблем, чем решали.

Но OrbStack оказался другим. Его главное отличие в том, что он изначально создавался с учетом особенностей macOS и специфики работы с контейнерами на Mac. И это чувствуется буквально во всем.

Почему я перешел на OrbStack?

Производительность

Первое, что я заметил после перехода - это разница в скорости работы:

  • OrbStack запускается за 2 секунды, в то время как Docker Desktop обычно требует 20-30 секунд

  • Сборка образов происходит быстрее примерно на 40-50%

  • Работа с файлами заметно ускорилась, что особенно заметно в крупных проектах

Эффективное использование ресурсов

Значительные улучшения заметны и в использовании системных ресурсов:

  • RAM используется в 3-4 раза эффективнее

  • Нагрузка на CPU в режиме ожидания минимальна

  • Энергопотребление заметно ниже - тесты показывают 180 mW против 726 mW у Docker Desktop при запуске одинаковых контейнеров (такие цифры можно получить при запуске Sentry, commit 15fa261f)

Полезные особенности для разработки

В процессе работы я оценил несколько функций, которые заметно упрощают разработку:

  • Автоматическое управление доменными именами: каждый контейнер доступен как container-name.orb.local, сервисы Kubernetes как service.namespace.svc.cluster.local, Linux машины как machine-name.orb.local

  • Прямой доступ к файлам контейнеров через Finder - можно работать с файлами контейнера как с обычной папкой

  • Отличные возможности отладки, которые особенно полезны при работе с minimal и distroless контейнерами. Правда, эта функция доступна только в платной версии, тогда как остальной функционал доступен в OpenSource версии для личного и некоммерческого использования. Я отказался от платной версии после пробного периода - бесплатной версии вполне достаточно для моих задач.

Техническая реализация

Архитектура у приложения достаточно интересная, сразу видно постарались, а не натянули UI. Из ключевого:

  • Использование Rosetta вместо QEMU для эмуляции x86 на Apple Silicon, что обеспечивает лучшую производительность

  • Компоненты, написанные специально для macOS на Swift, Go, Rust и C, что позволяет эффективно использовать системные API

  • Оптимизированная файловая система на базе VirtioFS с продуманным кэшированием

  • Собственная реализация сетевого стека с корректной поддержкой VPN и SSH

Простая миграция

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

# Установка 
brew install orbstack 
# Миграция данных 
orb migrate docker 
# Переключение контекста 
docker context use orbstack

И всё. Правда. Все мои контейнеры, образы и тома перенеслись автоматически. Более того, я могу легко переключаться между OrbStack и Docker Desktop, если нужно - достаточно сменить контекст.

Что с инструментами разработки?

Это был мой главный страх - совместимость с существующими инструментами. Но оказалось, что всё работает как часы:

  • В моих любимых JetBrains IDE даже не заметил изменений

  • В VS Code так же работает без проблем

  • docker-compose, kubectl, helm - всё продолжает работать как раньше

Полноценная работа с Linux

Отдельно хочу отметить возможность работы с Linux машинами. В отличие от Docker Desktop, OrbStack позволяет запускать полноценные виртуальные машины с различными дистрибутивами Linux. Это особенно удобно, когда нужно:

  • Протестировать приложение в конкретном дистрибутиве

  • Запустить сервисы, которые сложно контейнеризировать

  • Использовать специфичные версии Linux для разработки

OrbStack поддерживает 15 различных дистрибутивов, и работать с ними действительно удобно - каждая машина доступна по имени (machine-name.orb.local), а файлы можно передавать простым перетаскиванием.

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

Итоги

После нескольких месяцев работы с OrbStack могу сказать, что это достойная альтернатива Docker Desktop. Основные преимущества, которые я заметил в повседневной работе:

  • Более быстрый запуск и работа контейнеров

  • Эффективное использование системных ресурсов

  • Удобная работа с файлами и сетью

  • Возможность запуска полноценных Linux-машин

  • Простая миграция существующих проектов

При этом важно отметить, что как и любой инструмент, OrbStack может не подойти для всех сценариев использования. Рекомендую попробовать его самостоятельно - благодаря простой миграции это не займет много времени. Потом можно вернуть

P.S. Если вы на Colima, то он тоже быстрее, можно перейти так же легко - установить и переключить контекст.

Комментарии (101)


  1. RodionGork
    26.10.2024 19:39

    Любопытно, спасибо - однако всё же неясно что удерживает всех кому нужен докер от использования его непосредственно в Linux-е :) типа сами себе создаём проблему потому что макбук удобнее для созвонов и вообще попрестижнее выглядит - и потом мужественно боремся с кучей мелких неуобств возникающих тупо из-за того что OsX это не Linux. Ну или уж как вариант два ноута использовать - один для профессиональных задач, второй для созвонов и совещаний :)))


    1. TimonKK
      26.10.2024 19:39

      Почему не линукс - моя безпроводная перефирия очень плохо работает на линуксе. Как десят лет назад, я не готов постоянно-периодически мучаться, почему отвалились наушники, где моя мыш и т.п. Люблю линуск, но на расстоянии


      1. antonkzt
        26.10.2024 19:39

        Дичайше плюсую. 7 лет работал на Ubuntu/mint/ZorinOS. Каждый раз при созвонах тратились нервы. То скролл перестает работать на беспроводной мышке, то микрофон у наушников отъедет и приходится лезть в настройки и выбирать устройство ввода…


    1. Homyakin
      26.10.2024 19:39

      Что на работе выдают, с тем и работаем


    1. N-Cube
      26.10.2024 19:39

      Четверть века назад нужно было на линуксе поддерживать пачку chroot с разными версиями софта и дистрибутивами. Сегодня можно сделать то же самое куда проще и быстрее с помощью контейнеров докера. Какую систему выбрать хостовой - дело вкуса, а не необходимость. Кстати, линукс на эппл силикон до сих пор далек от идеала - и всегда будет игрушкой, пока это не дебиан :) - а другого выбора ноутов и моноблоков со сравнимым экраном (не говоря обо всем остальном) просто нет.


      1. TimonKK
        26.10.2024 19:39

        Я года три на WSL на nodejs проекты пилил. Версия 1.0 прям сырая была, а вот 2.0 прям огонь. Причем можно виртуалку в файл экспортнуть, так несколько раз между виндовыми компами ubuntu со всеми настройками/пакетами/проектами переносил - красота! Пришлось пересесть на мак, поскольку ВПН + интернет в WSL стали шалить, то работает, то нет, то опять работает


        1. NeoNN
          26.10.2024 19:39

          Я тоже с этим столкнулся, когда каждый раз при запуске wsl перепрописывался dns сервер, он не работал с впн и приходилось его менять в resolv.conf на 1.1.1.1.


          1. vvv1965
            26.10.2024 19:39

            Wsl.conf править не пробовали ?


            1. NeoNN
              26.10.2024 19:39

              Пробовали


        1. Alexufo
          26.10.2024 19:39

          мост к файловой системе через WSL крайне медленный. Хотел гит из SWL в винде увидеть - скорость доступа убила


    1. Vasjen
      26.10.2024 19:39

      всех кому нужен докер от использования его непосредственно в Linux-е :)

      Линукс как ОС нужен где-то в 5% от всех рабочих задач, ради этого использовать ее как основную ОС, уж тем более заводить второй ноут – очень странное решение, на любителя, так сказать.


      1. Pavel1114
        26.10.2024 19:39

        смелое утверждение. Особого веса ему придаёт конкретная цифра.
        На самом деле всё зависит от профессии, занимаемой позиции и, конечно же, личных предпочтений. Мне использование linux как основной и единственной системы, в разы упрощает многие вещи. От MacOS я плевался почти так же как типичный маковод от ubuntu. Дело вкуса. Везёт нам что есть альтернативы. Надеюсь они сохраняться


        1. Vasjen
          26.10.2024 19:39

          Ну я конкретно за свой случай и говорю. Веб разработчик, использую .NET + React, Rider + WebStorm + Insomnia. Все это прекрасно работает под любой ОС. конкретных преимуществ линукса при таком сценарии просто нет, а контейнеры нужны для того, чтобы развернуть базу, брокер сообщений, проверить работу приложения в условиях, максимально близким к хостингу. И работать под маком просто гораздо проще, чем под линуксом, где все работает из коробки и работает нормально.


          1. andmerk93
            26.10.2024 19:39

            конкретных преимуществ линукса при таком сценарии просто нет

            Докер на хостовой ОС, а не через ВМ-прослойку.


          1. Kahelman
            26.10.2024 19:39

            Главное не что хотели сказать а что сказалось:
            «.. и работать под Маком проще чем под Линуксом, где все работает из коробки и работает нормально».

            Т.е. ежики кололись и продолжали есть кактус, вместо того чтобы пересесть на Линукс :)


        1. isden
          26.10.2024 19:39

          Ну у меня макбук и ноут на линуксе, обоими пользуюсь с удовольствием (я уж не говорю про "парк" личных серверов на линуксах). Не нужно обобщать свои личные заморочки на всех.


    1. ExTalosDx
      26.10.2024 19:39

      Смотри я человек, который не верит в б... то есть в принципе в подобные штуки.

      Я сижу на линуксе с 13 лет, мне 27. Я настраивал 6 Centos, когда мне было 15 лет.

      И знаешь что я тебе скажу Линукс до появления flatpak это страх, смерть личной и социальной жизни и ужас.

      Вместо того чтобы делать уроки я настраивал Линукс, чинил драйвера, ядро, жор памяти.... чинил UI менял UI.

      Большинство тех кто мне заливает про линукс даже не знает о существовании Timeshift, которая must have на линуксе, если ты на работе хочешь работать, а не настраивать Линукс.

      Так вот я как-то раз попробовал мак, для меня это был кринж другая ракладка, некоторые ограничения в ОС.

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

      Понимаешь. ПРОСТО сажусь и работаю.

      Не мучаюсь с настройкой всего и вся, а просто работаю.

      Линукс у меня остался на рабочем ноуте и по прежнему за 10+ лет не починили выключение Карл системы. А этому ноуту 3 года всего. Мне приходится удерживать кнопку выключения чтобы ноут отрубился.

      И Линукс мне нравится, у меня его всё ещё очень много дома, рабочий ноут, роутер, steam deck.

      Но единственные кто реально сделал всё красиво с линуксом что он работает практически нормально это Valve со Steam Deck и знаешь на чем они основали свою SteamOS v2? На Arch Linux и flatpak. Я уже говорил что "я же говорил что будущее за арчем + flatpak!"?

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

      Если ты не веришь мне, то ты не поверишь никому и в таком случае диалог окончен.


      1. Aquinary
        26.10.2024 19:39

        Timeshift, которая must have на линуксе

        А вот в nixos...


      1. h1pp0
        26.10.2024 19:39

        У меня похожий бекграунд, но другие впечатления. Познакомился в 14 лет, начал использовать как основную систему с 15 лет, а сейчас мне тоже 27.

        Всё работает как часы. Да, иногда настройки ("время") могут сбиться, и их надо немного поправить.

        В отличие от мака каких-то непредсказуемых изменений не происходит. Если что-то пойдет не так, то я могу поставить другое ядро/систему. Могу сделать апгрейд железа. Могу заменить сломанную клавиатуру за 2 минуты.

        Timeshift не использовал. Сборка некоторых хитрых пакетов стала отличным шагом в сторону вычислительной дискретной математики. Не уверен, что смог бы собрать под мак.


      1. andmerk93
        26.10.2024 19:39

        1. У меня с ноутом на винде такое было.

        2. На PS3-PS5 и Nintendo'вски консолях не линукс, а вообще FreeBSD. Тоже включается одной кнопкой, тоже работает из коробки, тоже не требует настроек.

        3. Куча сетевого оборудования (роутеры, коммуты), в т.ч. домашнего на openwrt или его форках (линукс без флатпака). Работает из коробки, настраивается мышкой, держит годы аптайма.

        Вывод? Нормально делай - нормально будет. Дело не в ОС.


      1. vvzvlad
        26.10.2024 19:39

        Какой же вы самодовольный ***...

        Линукс у меня остался на рабочем ноуте и по прежнему за 10+ лет не починили выключение Карл системы. А этому ноуту 3 года всего. Мне приходится удерживать кнопку выключения чтобы ноут отрубился.

        Т.е. вы за 10 лет не смогли разобраться c systemd и реакцией на кнопки и вырубаете систему на горячую каждый раз? Немного не то, что ожидаешь от линукс-пользователя с 14 летним стажем..


        1. crackcraft
          26.10.2024 19:39

          Ничего удивительного!
          Например у меня есть знакомая с 12 летним стажем безаварийного вождения.
          Водительские права посто лежат где-то далеко с момента получения :)


    1. dbuhonov
      26.10.2024 19:39

      Потому что это красиво


  1. pomidoroshev
    26.10.2024 19:39

    Поддерживаю, ничем другим на маке после OrbStack пользоваться просто невозможно.

    Отдельно радует, что автор - простой студент (ладно, не очень простой, а студент Стенфорда), который просто любит писать хороший софт.


  1. CitizenOfDreams
    26.10.2024 19:39

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


    1. N-Cube
      26.10.2024 19:39

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


    1. Revolt-or-die
      26.10.2024 19:39

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


    1. MountainGoat
      26.10.2024 19:39

      Так получилось, когда кто-то решил, что разделяемые библиотеки - это хорошо. Точнее, оно и было хорошо, когда для программ один релиз в 2-3 года был нормой, а чаще - странно. Тогда можно было ожидать, что все программы пользуются одной релизной версией библиотеки.

      Потом началось: программы обновляются, библиотеки обновляются, закрывать критические дыры в безопасности в следующем релизе через 3 года стало не нормой. Теперь каждая программа требует свою уникальную версию библиотеки, и все ожидают её увидеть по одному и тому же пути. Многозадачная система: выбирай, какую задачу поставить, да.

      Для решения вопроса придумали стандарт версионирования semver - который оказался следующим провалом. На бумаге красиво: библиотеки, отличающиеся мажорным номером не совместимы, а минорным - совместимы. На новый минорный номер можно спокойно обновлять, исправляя дыры в безопасности. На практике оказалось, что разработчики библиотеки далеко не всегда знают, являются ли их изменения обратно совместимыми. А пользователи ловят приколы: поставил одну программу - сдохла другая. Накатил обновление - сдохли обе.

      Поэтому сначала в моду вошёл chroot, а потом Vargant. Да-да, Docker и Flatpak всех спасли: до них на полном серьёзе становилось нормой запускать каждую отдельную программу в полноценной виртуалке.


      1. Aquinary
        26.10.2024 19:39

        Проблема зависимостей - это та самая причина, по которой я перешёл на nixos. И оно того стоило (не смотря на все трудности перехода).


        1. MountainGoat
          26.10.2024 19:39

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

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


          1. Aquinary
            26.10.2024 19:39

            Пользуюсь дистром уже около двух лет - полёт нормальный. В чатике в тг состою, там тоже такого повода не проскакивает.
            Хотелось бы больше конкретики: где эта "небинарность" и "инклюзивность" проявляется, в каких местах и как. Желательно со ссылками


            1. MountainGoat
              26.10.2024 19:39

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


    1. Megaloss
      26.10.2024 19:39

      "Операционная система в контейнере" - похоже вы неправильно себе представляете как работают контейнеры. И для чего они нужны. Поищите на досуге про контейнеры "the hard way" или "Докер контейнеры без Докера" . Контейнеры - это прежде всего про изоляцию. И если ОС не нужна, в контейнер её тащить не надо (FROM scratch).


  1. vitiok78
    26.10.2024 19:39

    Мне для работы практически всегда надо подымать всю инфраструктуру нашей компании на локалке в контейнерах. Плюс IDE от Jetbrains, которая тоже жрет ресурсы как лошадь, плюс браузер и всякое остальное по мелочи. В итоге с Docker Desktop я постоянно упирался в нехватку памяти при моих 16 Гб. Это в свою очередь влекло за собой нехватку производительности, потому что система сильно залезала в swap.

    Многие не понимают, что память - это главный ресурс на новых Mac.

    OrbStack мгновенно решил все эти проблемы. И мне не пришлось жертвовать ничем, только сплошные плюсы


    1. N-Cube
      26.10.2024 19:39

      Плюс IDE от Jetbrains, которая тоже жрет ресурсы как лошадь…

      Зачем ставить тяжеловесный модный софт, когда есть отличные текстовые редакторы с подсветкой синтаксиса (BBEdit), включая консольные (mcedit)?


      1. kavaynya
        26.10.2024 19:39

        Подозреваю, главная причина в том что человеку нужна IDE, но не текстовый редактор с подсветкой.


        1. N-Cube
          26.10.2024 19:39

          Так нужна IDE, что невозможность нормально работать после ее установки не имеет значения?

          я постоянно упирался в нехватку памяти
          Это в свою очередь влекло за собой нехватку производительности, потому что система сильно залезала в swap.

          Вспоминается анекдот: "Вам шашечки или ехать?". Ну и, конечно, "у тебя учет в рублях, а у меня - в сутках" (c).


          1. fshp
            26.10.2024 19:39

            Если в вашем проект 30 срок кода и 2 файла, то BBEdit подойдёт. А если строк миллион, файлов тысячи, то нужна быстрая навигация, поиск по типам, поиск по использованию, data-flow анализ и куча чего ещё.


            1. MountainGoat
              26.10.2024 19:39

              Пусть пробует VSCode там всё это есть и есть вэб-версия.


            1. Areso
              26.10.2024 19:39

              между 30 строчками и миллионом строк есть целый континуум возможных опций...


              1. fshp
                26.10.2024 19:39

                Да, но в этом континууме опций выбор средств разработки конечен.

                Давайте начнем с самого простого. В IDEA во время отладки я могу написать выражение на java, scala или kotlin с использованием переменных в текущей области видимости и выполнить его.

                Могу дебаггеру предоставить кастомную функцию toString, что бы объекты определенного типа в дебагере отображались так, как мне нужно.

                Например у меня есть объект типа матрица, а дебаггер будет рядом с именем переменной писать размер матрицы или другую интересующую меня информацию.

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

                На самом деле я не считаю определители матриц. Но вот выяснить какой объект по ключу лежит в хеш таблице очень даже часто нужно.

                VSCode не для JS так умеет?

                Знаете почему мне это удобно и важно? Потому что большие корпоративные приложения, в которых миллион строк, собираются и стартуют кучу времени. От кнопки запуска до точки останова может пройти пару минут (это у меня ещё быстро). А со сборкой все 15-20.

                Если я исследую какой-то баг, то без IDEA за час сколько я гипотез могу проверить каждый раз перезапуская приложения с новым кодом для дебага? 5, 10?

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

                IDEA позволяет построить дерево вызовов. Причем в обе стороны: входящие и исходящие связи.

                А вот в микросервисе на 300 строк кода это не нужно, да. Там весь код помещается в голове.

                А например кликнуть по имени колонки в sql запросе и попасть в подключенную базу данных BBEdit умеет?


                1. fshp
                  26.10.2024 19:39

                  Отвечаю на свои же вопросы по VSCode.

                  Выражения в дебаггере работают, дебаг консоль тоже работает.
                  Кастомные вьюхи в дебаггере не нашел.
                  Call hierarhy работает в обе стороны.
                  До sql не дошел.


                  Но на первый взгляд все мои доводы не обоснованы.
                  Я что, превратился в старого ретрограда? Непривычно, но попробую.


            1. N-Cube
              26.10.2024 19:39

              Пока вы тут фантазируете про миллионы строк кода, разработчики линукс (где реально много кода и файлов) пользуются текстовыми редакторами. Конечно, для этого нужно уметь программировать, а не надеяться на автодополнения от IDE. Кстати, называть типы данных так, что их по названию нельзя отличить - это вы нашли, чем хвалиться…


              1. fshp
                26.10.2024 19:39

                Ну я отсылал патч в Linux. С удовольствием использовал бы CLion для разработки. Но он только с cmake тогда умел работать. Поэтому в Eclipse исходники ковырял.

                Вы мне ещё предложите на работе по почте патчи слать.


                1. Areso
                  26.10.2024 19:39

                  на работе по почте патчи слать.

                  вы не поверите, но как минимум в одном банке так и есть!


        1. NAI
          26.10.2024 19:39

          главная причина - распаянная память на маке. Был бы там разъем всеб просто ставили 32/64 Гб и не парились.

          Мне вот надо работать с VM'ками (астра мать ее линукс), сколько там в 16 Гб влезет? штуки 3-4, а если завернуть это все в EVE-NG с парой коммутов/МЭ, то всё, 2-3, VM'ки это в лучшем случае.


          1. sintech
            26.10.2024 19:39

            Кто мешает покупать сразу с нужным объемом распаянной?


            1. NAI
              26.10.2024 19:39

              я конечно не слежу за apple, но разве существуют макбуки с 64\128 Гб ОЗУ?

              Ну и что там с ценами на 32 Гб версии? мне вот 17 тыщ хватит для апгрейда на 64 ОЗУ


              1. sintech
                26.10.2024 19:39

                но разве существуют макбуки с 64\128 Гб ОЗУ?

                Вы сами ответили на вопрос. У процессоров M, память сидит на внутренней шине процессора, поэтому она распаяна с ним на одной подложке и ее нельзя сделать внешней и сменной при сохранении скорости.

                Хотите сменную покупайте Intel/AMD.


                1. NAI
                  26.10.2024 19:39

                  Так о том и речь, что цепочка событий выглядит так:

                  Эпл распаяла память т.к. модно стильно-молодёжно -> повелся на маркетинг, взял мак -> получил ограниченный объем ОЗУ (в среднем 16 Гб), без возможности апгрейда -> начал решать рабочие задачи -> уперся в нехватку -> начались пляски с оптимизацией и костылингом

                  Первопричина то всего этого как раз распаянная память и выбор оборудования не соответствующее задачам.


              1. Tsimur_S
                26.10.2024 19:39

                но разве существуют макбуки с 64\128 Гб ОЗУ?

                Самая топовая прошка как раз и будет 128 GB RAM. Разве что ценник совсем не гуманный.


              1. poimtsev
                26.10.2024 19:39

                Да, тут можешь собрать конфигурацию на свой вкус https://www.apple.com/shop/buy-mac/macbook-pro/14-inch-space-black-apple-m3-max-with-14-core-cpu-and-30-core-gpu-36gb-memory-1tb#


                1. Areso
                  26.10.2024 19:39

                  Могли бы и ценник показать на этот конфиг, че уж там. 4500 долларов или около того.


                  1. poimtsev
                    26.10.2024 19:39

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


      1. vitiok78
        26.10.2024 19:39

        Потому что IDE от Jetbrains - это то, что мне надо.

        Для примера: зачем вы пишете комментарии на Хабре, если есть одноклассники и вконтакте?


        1. N-Cube
          26.10.2024 19:39

          Потому что IDE от Jetbrains - это то, что мне надо.

          То есть задачи написать код у вас нет, нужна только IDE чтобы… что? А когда на (удаленных) хостах доступна только базовая система (дебиан, к примеру) и консольный редактор типа nano? Не говоря уж о том, что подсветка синтаксиса в редакторах работает с полусотней или более языков программирования, а IDE поддерживают лишь некоторые популярные языки. Не потому ли нейросетями заменяют «программистов», что таковые только сниппеты и автоподстановку IDE могут использовать для кодирования, а нейросети все это делают куда быстрее?


          1. vitiok78
            26.10.2024 19:39

            Если вы редактируете код программ напрямую на удаленных хостах, как в нулевых, то могу вас поздравить с наступающей катастрофой с последующим увольнением.

            IDE от Jetbrains - это настоящий комбайн, который включает в себя всё, что мне нужно для работы с проектом. Мне не надо настраивать 100500 разных инструментов для работы с кодом, с базой данных, с http клиентом, с докером и т.д и т.п. Там всё это есть и всё связано друг с другом.

            Но самое главное - это рефакторинг. Такого мощного рефакторинга нет ни в одной другой IDE или текстовом редакторе. Одна эта функция экономит мне часы работы со старым или чужим кодом.

            Если лично вам всё это не надо, это не означает, что другим людям это не требуется.


            1. N-Cube
              26.10.2024 19:39

              Столько слов и ни одного пруфа. Где результаты-то, кроме восхваления IDE? Почему-то линукс, постгрес, эскулайт написали программисты в текстовых редакторах. Где переписанное вами ядро линукса, к примеру, в подтверждение этого «мощного рефакторинга»? Или вы в этой супер IDE только комментарии на хабр писать можете?:)


        1. poimtsev
          26.10.2024 19:39

          Я боюсь, что в текущих условиях, (бывшие) пользователи продуктов JB не имеют возможности (легально) насладиться всеми плюсами IDE от JB :)


    1. Uint16Array
      26.10.2024 19:39

      а в чём проблема собрать себе на интолъ 128гиг-стенд для Всех контейнеров и управлять этим всем с эира в 1.2кило?)


      1. Areso
        26.10.2024 19:39

        стенду нужен интернет, электричество, охлаждение, определенная влажность (Тайландские "номады" передают привет).


        1. Uint16Array
          26.10.2024 19:39

          арендовать облако?


          1. Areso
            26.10.2024 19:39

            лучше уж железку в ДЦ по вкусу, облако на 128 гигов ОЗУ без штанов оставит.


          1. Areso
            26.10.2024 19:39

            как у и любой железки, у нее есть минусы - но, блин, за 50 евро в месяц?)


    1. aakolov
      26.10.2024 19:39

      Но почему тогда не взять линукс за основную рабочую систему вместо мака с осХ? Современные ноуты на интел есть и с 32 гб, и даже с бОльшим размером ОЗУ.


  1. slisli
    26.10.2024 19:39

    Есть одно но - бесплатный только для некоммерческого использования. FAQ на сайте, и в разделе Pricing.


    1. Tsimur_S
      26.10.2024 19:39

      так же как и докер десктоп.


  1. AlexPTS
    26.10.2024 19:39

    У orbstack есть проблема с публикацией портов на кастомный интерфейс https://github.com/orbstack/orbstack/issues/291 Используя кастомные интерфейсы, мы решаем пооблему пространства портов и можем повторяться в портах на хосте, сделав доп подсети и забиндив их на нужный сетевой интерфес. В остальном RnD по orb только положительные эмоции ьоже оставил.


  1. sedyh
    26.10.2024 19:39

    Почему не Podman Desktop?


    1. Apokalepsis Автор
      26.10.2024 19:39

      Честно, не знал что есть Posdman Desktop. Перепробовал много альтернатив и Docker Desktop был удобнее всего, пока с OrbStack не познакомился. Из того что явно отличается, нет поддержки виртуалок, удобно когда с помощью одного приложения можно ставить.

      Поставлю себе рядом, прогоню пару тестов, посмотрим как себя поведет. Если будут интересные результаты - опубликую.


  1. gun_dose
    26.10.2024 19:39

    Не совсем понятно из контекста, это замена Docker или замена Docker Desktop. Если я всегда стартую проекты командой docker-compose up -d из терминала и практически никогда не пользуюсь GUI Docker Desktop, поменяется ли что-то при переходе на Orbstack? И ничего не понятно по миграции: зачем она вообще нужна? Изменился ли синтаксис compose файлов? Что с форматом Dockerfile? Что с реестром образов?


    1. Apokalepsis Автор
      26.10.2024 19:39

      Это замена именно Docker Desktop. Все интеграции, команды docker и т.п. работает нативно. Но это не просто интерфейс, работа сильно эффективнее, батарейку жрет мало, помимо контейнеров можно спокойно запускать Linux виртуалки и есть инструмент для откладки distroless и подобных контейнеров.

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

      Про миграцию - что бы все данные перенести в OrbStack. Docker Desktop можно использовать параллельно, но если что-то соберете в нем, в OrbStack нужно собирать повторно, так как эти ресурсы не шарятся, разные контексты.


      1. gun_dose
        26.10.2024 19:39

        В таком случае это выглядит очень интересно. Предложу затестить коллегам, у кого мак. Я в своё время пересел с рабочего мака на личный ноут с виндой и WSL2 именно из-за недостаточной производительности докера на макоси.


        1. Apokalepsis Автор
          26.10.2024 19:39

          Я в такой же ситуации просто использовал вторую систему с Linux, потому-что у винды были аналогичные проблемы с производительностью файловой системы (для меня это было основная проблема). Потом устал переключаться и просто стал использовать удаленный сервер для разработки. Ну а потом Docker представил новый драйвер и в целом стало можно жить.


  1. Glembus
    26.10.2024 19:39

    Муть опуса не в ОС а в том что десктоп докера ахренеть какой кривой. Но, что мешает использовать докер чисто без десктопа. Все летает. Единственное неудобство это управление. Но для дева это не должно быть проблемой


    1. Apokalepsis Автор
      26.10.2024 19:39

      Что вы под этим подразумеваете?

      brew info --cask docker
      ==> docker: 4.35.0,172550 (auto_updates)
      https://www.docker.com/products/docker-desktop
      Not installed
      From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/d/docker.rb
      ==> Names
      Docker Desktop
      Docker Community Edition
      Docker CE
      ==> Description
      App to build and share containerised applications and microservices
      ==> Artifacts
      Docker.app (App)
      Docker.app/Contents/Resources/etc/docker-compose.fish-completion -> /opt/homebrew/share/fish/vendor_completions.d/docker-compose.fish (Binary)
      /Applications/Docker.app/Contents/Resources/bin/docker -> /usr/local/bin/docker (Binary)
      /Applications/Docker.app/Contents/Resources/bin/docker-credential-desktop -> /usr/local/bin/docker-credential-desktop (Binary)
      /Applications/Docker.app/Contents/Resources/bin/docker-credential-ecr-login -> /usr/local/bin/docker-credential-ecr-login (Binary)
      /Applications/Docker.app/Contents/Resources/bin/docker-credential-osxkeychain -> /usr/local/bin/docker-credential-osxkeychain (Binary)
      /Applications/Docker.app/Contents/Resources/bin/hub-tool -> /usr/local/bin/hub-tool (Binary)
      Docker.app/Contents/Resources/etc/docker.bash-completion -> /opt/homebrew/etc/bash_completion.d/docker (Binary)
      Docker.app/Contents/Resources/etc/docker.zsh-completion -> /opt/homebrew/share/zsh/site-functions/_docker (Binary)
      Docker.app/Contents/Resources/etc/docker.fish-completion -> /opt/homebrew/share/fish/vendor_completions.d/docker.fish (Binary)
      /Applications/Docker.app/Contents/Resources/bin/kubectl -> /usr/local/bin/kubectl.docker (Binary)
      Docker.app/Contents/Resources/etc/docker-compose.bash-completion -> /opt/homebrew/etc/bash_completion.d/docker-compose (Binary)
      /Applications/Docker.app/Contents/Resources/cli-plugins/docker-compose -> /usr/local/cli-plugins/docker-compose (Binary)
      Docker.app/Contents/Resources/etc/docker-compose.zsh-completion -> /opt/homebrew/share/zsh/site-functions/_docker-compose (Binary)
      ==> Analytics
      install: 19,143 (30 days), 57,727 (90 days), 231,687 (365 days)

      Вы думаете что у просто Docker и Docker Desktop разная реализация? Для Mac


      1. mystdeim
        26.10.2024 19:39

        я кстати тоже до конца не понимаю как это работает. Os x не может нативно использовать docker как linux, нужна виртуализация. Docker Desktop -- это типо то что по дефолту ставиться через brew install docker?


        1. slonopotamus
          26.10.2024 19:39

          brew install docker ставит только консольный докер-клиент. Сервера там нет, его надо ставить отдельно.

          brew install --cask docker ставит Docker Desktop - софтину, которая умеет запустить виртуалку с линуксом и докер-демоном внутри, и выставляет сокет от этого демона в хост-систему, чтобы докер-клиент мог общаться с демоном.


      1. Tony-Sol
        26.10.2024 19:39

        Да, разная

        То что cask’ом ставится: docker desktop, это и виртуальная машина, и docker демон внутри, и docker клиент, и расширения типа compose, buildx, scout, etc.

        То что formula’ой ставится: это только клиент, которому нужна обвязка, которая даст сокет, к которому и будет подключаться клиент, например lima/colima или podman


        1. Apokalepsis Автор
          26.10.2024 19:39

          В контексте автора комментария все таки имелся ввиду докер desktop (по крайне мере я так понял), потому что бы использовать его (без других реализаций), нужно установить все что вы перечислили, а официальный дистрибутив который все это включает - Docker Desktop


  1. mystdeim
    26.10.2024 19:39

    Потестировал OrbStack на своих проектах, практически не заметил разницы. Есть 2 проекта: один жирный на kotlin, другой маленький на python. Оба активно используют контейнеры для тестов: redis, kafka, elasticksearch, mongodb, pgsql и другие.

    Docker Desktop

    mvn clean package 785.61s user 50.72s system 190% cpu 7:18.51 total

    poetry run pytest -v 4.72s user 1.70s system 19% cpu 32.080 total

    OrbStack

    mvn clean package 774.98s user 46.27s system 196% cpu 6:57.17 total

    poetry run pytest -v 4.38s user 2.36s system 21% cpu 31.341 total

    Разница на жирном проекте всего лишь 1 процент.

    P.S. У меня macbook m1 (32GB RAM), использую только arm контейнеры, Docker Desktop на всякий случай вообще удалил


    1. Apokalepsis Автор
      26.10.2024 19:39

      Свои замеры не делал, ориентировался на несколько внешних источников.

      Сегодня в течении дня сделаю, заодно еще и Podman Desktop потестирую.


      1. slonopotamus
        26.10.2024 19:39

        Podman Desktop

        Ох и развелось этих десктопов... Ещё Rancher Desktop есть.


        1. Apokalepsis Автор
          26.10.2024 19:39

          Блин, я уже bench написал и запустил :)


          1. Tony-Sol
            26.10.2024 19:39

            Собственно сам bench, а именно то, как сравнивались между собой orbstack и docker desktop, на какой машине, на каких образах, с маунтом/без маунта и тд - вот это было бы неплохо в статье увидеть


            1. Apokalepsis Автор
              26.10.2024 19:39

              Когда писал, не видел в этом смысла, потому что много публичных, и цифры а моей статье им соответствуют + личный опыт.

              Но вы правы, после комментариев понял что актуально, особенно сравнение со специфическими движками (podman и прочее). Поэтому сегодня планирую опубликовать новую статью, вышло много кода и анализа.

              Мне осталось решить одну основную проблему - подсчет mW, что бы понять потребление и сравнить его.


      1. Djaler
        26.10.2024 19:39

        Можно тогда ещё и colima добавить в тест?

        https://github.com/abiosoft/colima


        1. Apokalepsis Автор
          26.10.2024 19:39

          Да, сделаю. Правда результаты будут явно уже не сегодня.


        1. Tony-Sol
          26.10.2024 19:39

          Тогда можно и оригинал еще, в лице https://github.com/lima-vm/lima


          1. Apokalepsis Автор
            26.10.2024 19:39

            Не понятно, будет ли прямое сравнение. Больше похоже на то что нужно сравнивать с запуском в виртуалке.


            1. Tony-Sol
              26.10.2024 19:39

              Ну по сути, любой сравнение работы докера под macos упирается в то, насколько производительная обертка над qemu или vz под капотом, и в этом ключе, как будто, лучше lima пока ничего нет


              1. Apokalepsis Автор
                26.10.2024 19:39

                Я так понял докер внутри Lima нужно устанавливать в явном виде?

                Тестирование производительности Colima даст понимание производительности Lima?


                1. Tony-Sol
                  26.10.2024 19:39

                  Я так понял докер внутри Lima нужно устанавливать в явном виде?

                  не обязательно, есть разные шаблоны, но при желании можно и сконфигурировать все руками

                  Тестирование производительности Colima даст понимание производительности Lima?

                  сложно сказать, как раз по причине выше - надо посмотреть как именно colima конфигурирует виртуалку


                  1. Apokalepsis Автор
                    26.10.2024 19:39

                    Я тогда пока потестирую все движки включая Colima, но без Lima, если будет желание доработать или помочь доработать скрипты (я их на GitHub выложу), то сможем совместно допилить за рамками текущего тестирования.

                    Там в целом можно развить тестирование и посмотреть например на производительность Docker в разных виртуалах.


                    1. Tony-Sol
                      26.10.2024 19:39

                      Вот это хорошо, буду ждать ссылку в статье со сравнением


  1. ddwu
    26.10.2024 19:39

    Парни расходимся, оно на win10 не работает вообще. :Ъ


    1. slonopotamus
      26.10.2024 19:39

      Win10 осталось жить год.


      1. achekalin
        26.10.2024 19:39

        Да, это плохая новость. Прямо как у классика: 2000-ная умерла, 7-ка умерла, 10-ке жить год остался... Но по сути, и правда, на 11 не хочется всеми фибрами, её штормит как бету уже который год (!). Впрочем, никто не мне запретит десятку и дальше использовать, а что обнов не будет, так только спокойнее станет, полагаю, будут только очень редкие затычки для совсем серьезных дыр, а это лучше, чем KB-ки с изменениями в стиле "поменяли местами кнопки в калькуляторе". *Грустная улыбка*


      1. ddwu
        26.10.2024 19:39

        Ничего, буду в зомби-mode експлуатировать. ;)


  1. WebMonet
    26.10.2024 19:39

    Ставлю плюсик Orb за то, что из контейнера стало видно продакшен-БД, которая находится у меня за вайргардом и ВПН. Оно просто заработало. Докер даже после плясок с бубном вокруг роутинга и т.д. не смог так.


  1. IRT
    26.10.2024 19:39

    Попробовал OrbStack, действительно намного быстрее Docker Desktop. К сожалению, для Home Assistant и Homekit по-прежнему не подходит, для этих целей приходится использовать обычную виртуальную машину с мостом к основной сети, внутри нее уже docker контейнер с Home Assistant.

    Host networking with mDNS is supported, but there's something else missing for HomeKit that we're not sure about yet. 

    https://github.com/orbstack/orbstack/issues/183