Иллюстрация
Вероятно, вы уже слышали про операционную систему от Google — Chrome OS, но есть в корпорации и другие подобные разработки. Например, внутри самой Google используется собственный дистрибутив Linux для настольных ПК — gLinux.
«Самодельный» дистрибутив Linux в разных версиях используется в компании уже в течение десяти лет. Первой версией была Goobuntu — как вы могли догадаться из названия, он основан на Ubuntu. Его использовали до 2018 года, когда был запущен новый дистрибутив — gLinux на основе Debian.
Зачем было избавляться от Goobuntu? Как объяснил Google, выпуск Ubuntu раз в два года с долгосрочной поддержкой означал необходимость вручную обновлять каждый компьютер в компании — более 100 тысяч устройств — до даты окончания срока службы каждой версии ОС.
Добавьте к этому трудоемкую необходимость полной настройки компьютеров инженеров после обновления… Как понимаете, это серьезная головная боль. Потому Google решил, что это обходится компании слишком дорого. Кроме того, установка Goobuntu на все рабочие машины обычно занимала большую часть года. С двухлетним окном поддержки оставался только один год свободного пользования, после чего приходилось заново проходить тот же процесс на всех машинах.
«Весь этот процесс был огромным стрессом для нашей команды, так как мы получали отчеты на сотни ошибок с просьбами о помощи в крайних случаях», — вспоминают в Google.
Когда Google надоело постоянно возиться с обновлениями Goobuntu, компания частично перешла на Debian Linux. Инженеры корпорации создали скользящий дистрибутив Debian: GLinux Rolling Debian Testing (Rodete). Его основная идея была в том, чтобы предоставлять последние обновления и исправления по мере их создания и готовности к работе, а не в какие-то строгие временные рамки. К таким дистрибутивам относятся Arch Linux, Debian Testing и openSUSE Tumbleweed.
Естественно, для Google первой целью было вырваться из двухлетнего цикла обязательного обновления ОС. Как показала практика, переход к непрерывной интеграции/непрерывному развертыванию, сработали хорошо: стало легче контролировать и откатывать систему, если что-то идет не так.
Чтобы все новшества работали без лишней крови, пота и слез, Google создала систему Sieve. Так, она одна смогла автоматизировать производственный конвейер непрерывного дистрибутива до такой степени, что сегодня в компании требуется только один инженер для обслуживания программы, используемой более чем 100 000 пользователей! Это дежурная должность, которая чередуется между членами команды.
Иллюстрация
Как это работает? Всякий раз, когда Sieve обнаруживает новую версию пакета Debian, она запускает новую сборку. Эти пакеты объединены в группы, поскольку отдельные пакеты зачастую необходимо обновлять вместе. После создания всей группы Google запускает виртуализированный набор тестов, чтобы убедиться, что основные компоненты и рабочие процессы разработчиков не нарушены. Затем каждая группа тестируется отдельно с полной установкой системы, загрузкой и запуском локального набора тестов. Сборка пакета завершается в течение нескольких минут, хотя тестирование может занять до часа.
Как только сборка завершится, все новые пакеты будут объединены с новейшим пулом пакетов gLinux. Затем, когда Google решает, что пора выпустить его в производство, команда делает снимки этого пула. Наконец, он выпускает свежую версию ОС без всяких многоступенчатых альфа-, бета-версий и общедоступных выпусков.
Благодаря скользящему графику выпусков Google теперь может быстро устранять бреши в системе безопасности всех компьютеров без ущерба для стабильной работы. А раньше инженерам приходилось тщательно просматривать каждый совет по безопасности Debian, чтобы убедиться, что исправление включено.
Кроме того, улучшенный набор тестов Google и интеграционные тесты с ключевыми командами, которые запускают критические системы разработчиков, также дали более стабильный опыт использования дистрибутива Linux. А стремление автоматизировать весь процесс значительно уменьшило нагрузку и стресс внутри команды.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…