Рубріки: Історії

Через кров, піт та сльози: як Google розробляла власний Linux

Анастасія Пономарьова

Ймовірно, ви вже чули про операційну систему від Google — Chrome OS, але є в корпорації й інші розробки. Наприклад, усередині Google використовується власний дистрибутив Linux для настільних ПК — gLinux.

Goobuntu

«Саморобний» дистрибутив Linux у різних версіях використовується в компанії вже протягом десяти років. Першою версією була Goobuntu — як ви могли здогадатися з назви, вона ґрунтується на Ubuntu. Її використовували до 2018 року, коли запустили новий дистрибутив — gLinux на основі Debian.

Навіщо було позбавлятися Goobuntu? Як пояснив Google, випуск Ubuntu раз на два роки з довгостроковою підтримкою означав необхідність вручну оновлювати кожен комп’ютер у компанії — понад 100 тисяч пристроїв — до дати закінчення терміну служби кожної версії ОС.

Додайте до цього трудомістку необхідність повного налаштування комп’ютерів інженерів після оновлення. Як розумієте, це серйозний головний біль. Тому Google вирішив, що це обходиться компанії надто дорого. Крім того, установка Goobuntu на всі робочі машини зазвичай займала більшу частину року. З дворічним вікном підтримки залишався лише один рік вільного користування, після чого доводилося знову проходити той же процес на всіх машинах.

“Весь цей процес був величезним стресом для нашої команди, тому що ми отримували звіти на сотні помилок з проханнями про допомогу в крайніх випадках”, — згадують у Google.

Debian Linux

Коли Google набридло постійно поратися з оновленнями Goobuntu, компанія частково перейшла на Debian Linux. Інженери корпорації створили ковзаючий дистрибутив Debian: GLinux Rolling Debian Testing (Rodete). Його основна ідея була в тому, щоб надавати останні оновлення та виправлення в міру їх створення та готовності до роботи, а не в якісь суворі часові рамки. До таких дистрибутивів належать Arch Linux, Debian Testing та openSUSE Tumbleweed.

Звичайно, для Google першою метою було вирватися із дворічного циклу обов’язкового оновлення ОС. Як показала практика, перехід до безперервної інтеграції/безперервного розгортання спрацювали добре: стало легше контролювати і відкочувати систему, якщо щось йде не так.

Sieve

Щоб усі нововведення працювали без зайвої крові, поту та сліз, Google створила систему Sieve. Так, вона одна змогла автоматизувати виробничий конвеєр безперервного дистрибутива настільки, що сьогодні в компанії потрібен лише один інженер для обслуговування програми, що використовується більш ніж 100 тис. користувачів! Це чергова посада, що чергується між членами команди.

Ілюстрація

Як це працює? Коли Sieve виявляє нову версію пакета Debian, вона запускає нову збірку. Ці пакети об’єднані в групи, оскільки окремі пакети часто необхідно оновлювати разом. Після створення групи Google запускає віртуалізований набір тестів, щоб переконатися, що основні компоненти та робочі процеси розробників не порушені. Потім кожна група тестується окремо з повним встановленням системи, завантаженням та запуском локального набору тестів. Збірка пакета завершується протягом декількох хвилин, хоча тестування може тривати до години. 

Як тільки збірка завершиться, всі нові пакети будуть об’єднані з найновішим пулом пакетів gLinux. Потім, коли Google вирішує, що час випустити його у виробництво, команда робить знімки цього пулу. Нарешті, він випускає нову версію ОС без усіляких багатоступеневих альфа-, бета-версій та загальнодоступних випусків.

Завдяки ковзаючому графіку випусків Google тепер може швидко усувати недоліки в системі безпеки всіх комп’ютерів без шкоди для стабільної роботи. А раніше інженерам доводилося ретельно переглядати кожну пораду з безпеки Debian, щоб переконатися, що виправлення увімкнено.

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

Останні статті

Експериментальна LLM-модель OpenAI досягла рівня переможця Міжнародної математичної олімпіади

Експериментальна модель OpenAI досягла рівня золотої медалі на Міжнародній математичній олімпіаді (IMO), вирішивши п'ять із…

21.07.2025

JetBrains переводить всі продукти IntelliJ IDEA на єдиний інсталятор

Компанія JetBrains повідомила, що всі програмні продукти серії IntelliJ IDEA відтепер переходять на єдиний уніфікований…

21.07.2025

Українські кіберфахівці викрили намагання росіян використати LLM-модель для атак на держустанови

Команда реагування на комп'ютерні надзвичайні ситуації України (CERT-UA) розкрила деталі фішингової кампанії, спрямованої на поширення…

21.07.2025

Hugging Face представляє AnyCoder — безкоштовний інструмент для веб-розробки без знання мов програмування

Платформа Hugging Face представляє AnyCoder — середовище для розробки веб-додатків з відкритим кодом. Новий інструмент,…

21.07.2025

Intel припинила 10-річний проект розробки власного дистрибутиву Linux

Компанія Intel оголосила про згортання проекту Clear Linux, робота над яким тривала 10 років. Метою…

21.07.2025

Програміст створив браузерний емулятор першої операційної системи Apple Lisa OS

Розробник Ендрю Ярос продемонстрував веб-емулятор оригінальної операційної системи Lisa OS, яка є першою графічною ОС…

18.07.2025