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

Через кров, піт та сльози: як 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. А прагнення автоматизувати весь процес значно зменшило навантаження та стрес усередині команди. 

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

Швейцарська компанія скуповує акаунти на хакерських форумах, щоб шпигувати за кіберзлочинцями

Швейцарська компанія з кібербезпеки Prodaft запустила ініціативу під назвою «Продай своє джерело», в рамках якої…

16.04.2025

Реалізацію мови програмування Ruby для JVM оновлено до версії 10

Презентовано JRuby 10 — останню версію реалізації мови програмування Ruby на основі JVM. Вона має…

16.04.2025

xAI представляє Grok Studio — інструмент для генерації та запуску коду

Компанія Ілона Маска xAI презентувала новий онлайн-інструмент під назвою Grok Studio. Він призначений для редагування…

16.04.2025

В «Мрію» додадуть генератор тестів за допомогою ШІ

В освітній платформі «Мрія» планують впровадити генератор тестів на основі штучного інтелекту. Про це в…

15.04.2025

OpenAI працює над запуском соціальної мережі

OpenAI працює над власною X-подібною соціальною мережею, згідно з кількома джерелами, знайомими з цим питанням,…

15.04.2025

Хакери з КНДР змінюють тактику злому комп’ютерів Python-розробників

Команда Unit 42 з Palo Alto Networks помітила чергову активність хакерської групи з КНДР, яка…

15.04.2025