История собственного настольного Linux от Google

История собственного настольного Linux от Google

Если вы посмотрите на офисы Google в Маунтин-Вью, штат Калифорния, вы увидите машины с Windows, Chromebook, Mac и настольные компьютеры gLinux. Г что, спросите вы? Что ж, в дополнение к использованию Linux для своих серверов, у Google есть собственный дистрибутив Linux для настольных компьютеров.

Вы не можете получить его, черт возьми! - но уже более десяти лет Google готовит и ест свой собственный самодельный дистрибутив Linux для настольных ПК. Первым релизом был Goobuntu. (Как вы можете догадаться из названия, он был основан на Ubuntu.)

В 2018 году Google переместил свой собственный рабочий стол Linux с Goobuntu на новый дистрибутив Linux, основанный на Debian, gLinux. Потому что? Потому что, как объяснил Google, выпуск Ubuntu с двухлетней долгосрочной поддержкой (LTS) «означал, что мы должны были обновить каждую машину в нашем парке из более чем 100,000 XNUMX устройств до даты окончания срока службы операционной системы».

это было мучительно.Добавьте к этому утомительную необходимость полностью настраивать компьютеры инженеров, и Google решил, что это слишком дорого. Кроме того, «усилия по обновлению нашего флота Goobuntu обычно занимали большую часть года. С двухлетним окном поддержки оставался только год, прежде чем нам пришлось бы снова проходить тот же процесс для следующего LTS. Все этот процесс стал огромным стрессом для нашей команды, поскольку мы получили сотни сообщений об ошибках с просьбами о помощи в критических случаях».

Поэтому, когда Google надоело, он переключился на Debian Linux (но не только на стандартный Debian). Компания создала скользящий дистрибутив Debian: GLinux Rolling Debian Testing (Rodete). Идея состоит в том, что пользователям и разработчикам лучше обслуживать, предоставляя им последние обновления и исправления по мере того, как они создаются и считаются готовыми к работе. Эти дистрибутивы включают Arch Linux, Debian Testing и openSUSE Tumbleweed.

Для Google ближайшей целью было выйти из двухлетнего цикла обновлений. Как показал переход к непрерывной интеграции/непрерывному развертыванию (CI/CD), эти дополнительные изменения работают хорошо. Их также легче контролировать и отменить, если что-то пойдет не так.

Чтобы все это работало без лишней крови, пота и слез, Google создала новую систему рабочего процесса Sieve. Каждый раз, когда Sieve обнаруживает новую версию пакета Debian, она запускает новую сборку. Эти пакеты объединяются в группы пакетов, поскольку отдельные пакеты часто необходимо обновлять вместе. После создания всего пула Google запускает виртуализированный набор тестов, чтобы гарантировать, что основные компоненты и рабочие процессы разработчиков не будут нарушены. Затем каждая группа тестируется отдельно с полной установкой системы, загрузкой и запуском локального набора тестов. Пакет создается за считанные минуты, но тесты могут занять до часа.

После этого все новые пакеты объединяются в последнюю группу пакетов gLinux. Затем, когда Google решает, что пора запускать его в производство, команда делает снимок этого пула. Наконец, разверните новую версию флота. Конечно, это не только будет загружено для пользователей. Вместо этого он использует принципы проектирования надежности сайта (SRE), такие как инкрементная канареечность, чтобы гарантировать, что ничего не пойдет не так.

С годами Google улучшился в этой области. Сегодня, благодаря Sieve, вся команда разработчиков gLinux состоит из одной должности Serving Release Engineer, которая чередуется между членами команды. Серьезных усилий по модернизации флота не предпринимается. Не существует альфа-, бета-версий и многоэтапных общедоступных (GA) выпусков.

Более того, благодаря постоянному графику выпусков Google может быстро устранять недостатки безопасности во всем парке без ущерба для стабильности. Раньше инженерам по безопасности приходилось тщательно проверять каждый совет по безопасности Debian (DSA), чтобы убедиться в наличии исправления.

Кроме того, «расширенный набор тестов Google и интеграционное тестирование с ключевыми командами партнеров, использующих критически важные системы разработки, также привели к более стабильной работе при использовании дистрибутива Linux, который предоставляет последние версии ядра Linux». конвейер значительно сократил работу и стресс внутри команды, и теперь мы также можем сообщать об ошибках и несовместимостях с другими версиями библиотек, одновременно следя за тем, чтобы инструменты Google лучше работали в экосистеме Linux.

Команда Google заявила, что в дальнейшем они будут «более тесно сотрудничать с исходной ветвью Debian и вносить больший вклад в наши внутренние исправления для поддержания экосистемы пакетов Debian».

Все звучит хорошо. Но у меня есть две мысли, чтобы поделиться.

Во-первых, для некоторых организаций LTS-релизы по-прежнему имеют смысл. Если вам не нужно новейшее и лучшее программное обеспечение для вашего бизнеса, Ubuntu Linux или Red Hat LTS по-прежнему имеет смысл.

Второе и более важное: Sieve звучит как кошачье мяуканье. Программа, которая может автоматизировать производственный конвейер доставки вещания до такой степени, что требуется всего один инженер для обслуживания рабочего стола, используемого более чем 100,000 XNUMX пользователей? Запишите меня!

А еще лучше, пожалуйста, опубликуйте код для Sieve, чтобы мы все могли начать создавать сборки Linux для настольных ПК на постоянной основе. А как насчет Google? Что ты говоришь?

© 2022 IDG Communications, Inc.