Библиотека сайта rus-linux.net
Технология подготовки релизов веб-браузера Firefox
Глава 2 из книги "Архитектура приложений с открытым исходным кодом", том 2.
Оригинал: Firefox Release Engineering
Авторы: Chris AtLee, Lukas Blakk, John O'Duinn, Armen Zambrano Gasparian
Перевод: А. Панин
2.7. Размещение сборок на внутренних зеркалах и контроль качества
Проверка того, что в результате выполнения процесса подготовки релиза был получен ожидаемый результат, является ключевым шагом. Этот шаг осуществляется группой контроля качества в ходе процесса проверки и подтверждения работоспособности сборки.
Как только подписанные сборки становятся доступны, группа контроля качества начинает ручное и автоматизированное тестирование. Контроль качества осуществляется участниками сообщества, нанятыми сторонними специалистами, а также работниками организации, находящимися в различных часовых поясах с целью возможного ускорения этого процесса проверки работоспособности. В то же время наша автоматизированная система подготовки релизов генерирует обновления для всех языков и всех платформ, которые смогут быть применены ко всем поддерживаемым релизам. Фрагменты информации об обновлениях обычно становятся доступны до того момента, как группа контроля качества завершает проверку подписанных сборок. После этого группа контроля качества проверяет возможность осуществления пользователями безопасного обновления при использовании предыдущих релизов для перехода к использованию новейшего релиза с помощью представленных обновлений.
Технически наша система автоматизации перемещает бинарные файлы на наши "внутренние зеркала" (серверы, обслуживаемые организацией Mozilla) с целью проверки обновлений группой контроля качества. Только после того, как группа контроля качества закончит проверку сборок и обновлений, мы перемещаем их на наши зеркала сообщества. Эти зеркала сообщества важны для обработки нагрузки, создаваемой пользователями со всего мира, так как они позволяют пользователям осуществлять запросы обновлений с локальных узлов, на которых размещаются зеркала, вместо отправки запроса напрямую серверу ftp.mozilla.org
. В том, что мы не делаем сборки и обновления доступными на серверах сообщества до подтверждения их работоспособности группой контроля качества нет ничего плохого, так как в последний момент вполне могут возникнуть сложности в случае обнаружения группой контроля качества серьезной ошибки, в результате чего релиз-кандидат будет отозван.
- Группа контроля качества вместе с участниками сообщества и сторонними специалистами в других часовых поясах проводит тестирование вручную.
- Группа контроля качества запускает автоматизированные системы для проведения функционального тестирования.
- Группа контроля качества независимо проверяет, исправлены ли известные проблемы и достаточно ли высоко качество реализации новых функций для предоставления их в распоряжение пользователей в рамках релиза.
- В это же время система автоматизации процесса подготовки релиза генерирует обновления.
- Группа контроля качества подтверждает работоспособность сборок.
- Группа контроля качества подтверждает работоспособность обновлений.
Следует отметить, что пользователи не получат обновления до тех пор, пока группа контроля качества не подтвердит их работоспособность и координатор релиза не отправит электронное сообщение с командой для перемещения сборок и обновлений в публичный репозиторий.
2.8. Перемещение файлов на публичные зеркала и в систему автоматического обновления
Как только координатор релиза получает подтверждение работоспособности программных компонентов от группы контроля качества и других различных групп организации Mozilla, группа подготовки релизов может продолжить работу, перемещая файлы на серверы из сети зеркал сообщества. Мы используем серверы сообщества для того, чтобы иметь возможность обрабатывать запросы от нескольких сотен миллионов пользователей, загружающих обновления в течение нескольких следующих дней. Все установщики наряду с полными и частичными обновлениями для всех платформ и локализаций в этот момент уже находятся на серверах нашей внутренней сети зеркал. Процесс публикации файлов на внешних зеркалах предполагает внесение изменений в файл исключений приложения rsync для задействования модуля публичных зеркал. После осуществления этих изменений файла начнется синхронизация зеркал, в ходе которой будет осуществлено копирование файлов новых релизов. Каждое зеркало имеет ассоциированный параметр рейтинга или веса; мы отслеживаем то, какие зеркала содержат синхронизированные файлы и суммируем их индивидуальные рейтинги для вычисления общего показателя "распространения" данных. После того, как достигается определенное пороговое значение распространения данных, мы информируем координатора релиза о том, что на зеркалах содержится достаточное количество копий данных для распространения релиза.
Это тот момент, когда релиз становится "официальным". После того, как координатор релиза отправляет финальное сообщение с командой "отправка на публикацию", группа подготовки релизов обновит символьные ссылки на веб-сервере, таким образом посетители наших веб- и ftp-ресурсов смогут найти новейшую версию Firefox. Мы также публикуем все фрагменты информации об обновлениях для пользователей прошлых версий Firefox на ресурсах системы автоматического обновления.
Установленные на пользовательских машинах копии приложения Firefox регулярно проверяют доступность обновленной версии Firefox на серверах системы автоматического обновления. После того, как мы публикуем эти фрагменты информации об обновлениях, у пользователей появляется возможность автоматически обновить Firefox до новейшей версии.
Продолжение статьи: Выученные уроки