Поиск по сайту:

Google: вот как мы начали выпускать выпуски Linux для настольных компьютеров после перехода Ubuntu на Debian

Google подробно описывает преимущества перехода от «больших взрывных» обновлений ОС к последовательным выпускам. Это спасло своих инженеров от выгорания.

Несколько лет назад Google завершил переход с рабочего стола Linux на базе Ubuntu на Debian. Теперь Google подробно рассказал, как это изменение привело к чередованию выпусков настольных компьютеров Linux с более быстрыми и плавными обновлениями, а также более быстрыми исправлениями безопасности.

После более чем 15 лет использования Ubuntu в качестве основы для внутренних устройств Google компания перешла на Debian, чтобы избежать крупных обновлений ОС каждые два года и распределить рабочую нагрузку по обновлению во времени.

Google объявила, что завершила переход в 2018 году, как тогда сообщало ZDNet. Маргарита Мантерола, инженер Google, объяснила, что компания переходит с Goobuntu, сборки Ubuntu от Google, на gLinux, скользящий выпуск, основанный на тестировании Debian, который является бета-версией следующей стабильной версии Debian.

СМОТРИТЕ: вакансии с открытым исходным кодом существуют

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

Мантерола и коллеги-инженеры Google, Кордиан Брук и Свен Мюллер, теперь объяснили, как компания пришла к выпуску выпусков Linux для настольных компьютеров, в блоге, в котором подробно рассказывается, как другие крупные фирмы могли бы внедрить ту же систему обновления для настольных компьютеров.

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

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

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

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

Google разработал gLinux Rodete (постоянное тестирование Debian) с целью сократить двухлетний цикл обновления и постепенно развертывать его, чтобы снизить нагрузку на инженеров.

Как они отмечают, общий переход индустрии программного обеспечения к CI/CD (непрерывная интеграция/непрерывная разработка) показал, что небольшие постепенные изменения легче контролировать и откатывать. По тем же причинам дистрибутивы Linux, такие как Arch Linux и NixOS, также реализовали чередующиеся выпуски. Подвижные выпуски Linux постоянно обновляются, исходя из идеи, что пользователям и разработчикам будет лучше, если они будут предоставлять им последние обновления и исправления по мере их создания.

Google выбрал Debian из-за доступности пакетов, большого сообщества, а также существующих внутренних пакетов и инструментов в формате Debian. Google объясняет, почему они выбрали бета-версию Debian, а не Stable.

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

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

Когда сегодня выходит новый выпуск, команда обновлений делает снимки пакетов, полученных из Debian в тот момент. Затем Google запускает, принимает, тестирует, а затем «осторожно» развертывает обновление для специального тестирования и «канарейки» для всего парка в размере 1%. Канарейка дает ему несколько дней на обнаружение проблем с пакетами Debian или внутренними пакетами Google, прежде чем распространять его на весь парк.

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

Одним из преимуществ безопасности, которого добился Google, является уменьшенный «конверт доверия», который он размещает в исходном Debian.

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

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

Google заявляет, что она также «значительно улучшила нашу позицию в области безопасности, приблизив наш парк к более ранним версиям».

«Хотя Debian предоставляет хороший источник исправлений безопасности для стабильной и старой стабильной версии, мы поняли, что не каждая дыра в безопасности, на которую установлены исправления, обязательно имеет номер Debian Security Advisory (DSA) или CVE», — отмечают инженеры.

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

СМОТРИТЕ: Как включить Linux на Chromebook (и почему это следует сделать)

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

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

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

Статьи по данной тематике