Через кров, піт та сльози: як 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. А прагнення автоматизувати весь процес значно зменшило навантаження та стрес усередині команди.
Favbet Tech – це ІТ-компанія зі 100% украінською ДНК, що створює досконалі сервіси для iGaming і Betting з використанням передових технологіи та надає доступ до них. Favbet Tech розробляє інноваційне програмне забезпечення через складну багатокомпонентну платформу, яка здатна витримувати величезні навантаження та створювати унікальний досвід для гравців.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: