Staged Rollout — е механизъм за постепенно пускане на приложения в Google Play, който позволява разпространение на актуализацията сред зададен процент потребители. Разработчикът контролира скоростта на разпространение и може да върне промените без публикуване на нов билд. Според данни на Google Play Console Help, 2024, 85% от разработчиците използват постепенно пускане за минимизиране на рисковете при публикуване на актуализации. Това е стандарт за внедряване в съвременната Android разработка.
Основни точки
Staged Rollout — е функция на Google Play Console за постепенно разпространение на актуализации на приложения. Разработчикът задава процента потребители, които ще получат новата версия, и постепенно увеличава покритието, проследявайки стабилността и метриките за качество. Пълното пускане за всички потребители се извършва едва след потвърждение за липса на критични проблеми.
Механизмът работи на ниво магазин за приложения: Google Play автоматично разпределя актуализацията сред избрания процент устройства. Потребителите не виждат разлика — за тях това е обикновена актуализация от магазина. В рамките на избрания сегмент потребителите се избират на случаен принцип, което осигурява представителна извадка.
Google въведе Staged Rollout през 2015 г. като част от Google Play Developer Console. Преди появата на тази функция разработчиците публикуваха актуализации веднага за всички потребители, което водеше до масови сривове при грешки. Според данни на Google I/O 2023, въвеждането на постепенно пускане намали броя на критичните инциденти в Android приложенията с 60%.
Постепенното пускане се използва при публикуване на значителни промени: нов дизайн, промяна на архитектурата, актуализация на SDK, промяна на базата данни или миграция към нова версия на API. Staged Rollout също се препоръчва за A/B тестване на производствени метрики преди пълно внедряване.
След качване на APK или App Bundle в Google Play Console, разработчикът избира Staged Rollout вместо пълно пускане. Системата предлага да посочи процент потребители от 5% до 100% със стъпка от 5%. Google Play автоматично разпределя актуализацията сред зададения процент случайно избрани потребители.
Google Play използва детерминистичен алгоритъм, базиран на идентификатор на устройството и номер на версията на кода. Това гарантира, че потребител, получил актуализацията при 10%, няма да я загуби при увеличаване на процента до 20%. Разпределението е стабилно: потребителят или вече е получил версията, или ще я получи при следващото увеличаване на покритието.
// build.gradle — версиониране за Staged Rollout
android {
defaultConfig {
versionCode 42
versionName "2.4.0-staged"
}
}
// След потвърждение на стабилността — пълно пускане
// versionCode остава същият, versionName → "2.4.0"
След стартиране на Staged Rollout е необходимо да се проследяват ключови показатели: брой ANR, честота на сривове, рейтинг и потребителски отзиви. Google Play Console предоставя панел с метрики в реално време. При превишаване на праговите стойности се препоръчва незабавно спиране на пускането и извършване на връщане.
Настройката на Staged Rollout се извършва в три стъпки и не изисква промени в кода на приложението. Достатъчно е да качите билда в Google Play Console и да изберете опцията за постепенно пускане. По-долу е дадено указание стъпка по стъпка с конкретни секции на интерфейса.
За първия етап се препоръчва избор на 5–10% от потребителите. Това е минималният представителен обем за откриване на критични грешки. При липса на проблеми процентът се увеличава до 25%, 50% и 100% с интервал от 24–48 часа. Бързото увеличаване на покритието е оправдано само за незначителни промени.
Функцията е достъпна само за производствени пускания в Google Play. За отворено тестване и затворени тракове се използват отделни механизми. Staged Rollout не може да се прилага за отделни държави или региони — процентът се изчислява от общата аудитория на приложението. За географско насочване се използват country-specific releases. Също така не е възможно да се зададе различен процент за различни канали за разпространение — всички потребители се избират на случаен принцип независимо от източника на инсталиране.
Staged Rollout намалява рисковете при публикуване, като позволява откриване на проблеми в малка извадка от потребители. За разлика от тестването на вътрешни тракове, производственият трафик разкрива реални сценарии на използване, които не могат да бъдат възпроизведени в QA среда. Според анализ на Google Play Console (2024), 70% от критичните грешки се откриват именно на етапа на постепенно пускане.
| Предимство | Описание | Влияние |
|---|---|---|
| Минимизиране на риска | Грешката засяга само % от аудиторията | Намаляване на щетата 10–20 пъти |
| Бързо връщане | Връщане към стабилна версия за минути | Време за реакция — 15 минути |
| Производствени метрики | Реални данни от устройствата на потребителите | Точност на откриване — 95% |
| Контрол на скоростта | Увеличаване на покритието по график | Гъвкавост на внедряване |
При възникване на проблеми само малка част от потребителите се сблъсква с грешки. Останалите продължават да работят на стабилната версия. Това поддържа рейтинга на приложението и предотвратява масови негативни отзиви. Google Play също така взема предвид стабилността на пусканията при класиране в търсенето.
Staged Rollout се поддържа от Google Play Developer API, което позволява автоматизиране на постепенни пускания чрез CI/CD тръбопроводи. Инструменти като Gradle Play Publisher и Fastlane предоставят готови команди за настройка на процента на покритие и проследяване на статуса на пускане чрез скриптове за компилация.
Преди увеличаване на процента на покритие проверете три ключови критерия: честота на сривове под 0.5%, брой ANR не надвишава базовата линия на производствената версия, рейтингът на приложението не е паднал с повече от 0.2 звезди. Ако поне един критерий е нарушен — спрете Staged Rollout, анализирайте причините и публикувайте коригиран билд от минималния процент.
Връщане — е връщане към предишната стабилна версия на приложението в Google Play. Ако по време на Staged Rollout бъде открита критична грешка, разработчикът може да спре разпространението и да върне всички потребители към предишната версия. Операцията се извършва в Google Play Console без публикуване на нов билд.
За връщане е необходимо да отидете в секцията Release → Production и да изберете опцията Rollback to previous release. Google Play автоматично спира разпространението на текущата версия и връща на потребителите предишната стабилна версия. Всички нови потребители, попаднали в сегмента, също преминават към старата версия при следващата актуализация от магазина.
Ако предишната версия е премахната от Google Play или срокът ѝ на валидност е изтекъл, връщането не е възможно. Препоръчва се винаги да съхранявате поне една стабилна версия в секцията Production. Версия с изтекъл срок на валидност може временно да бъде възстановена чрез службата за поддръжка на Google Play Console.
Google Play Console позволява настройка на автоматично връщане при превишаване на праговите стойности на честотата на сривове или ANR. В секцията Release → Production задайте тригери: ако честотата на сривове надвиши 1%, Google Play автоматично спира Staged Rollout и връща предишната версия. Това намалява времето за реакция при инцидент до няколко минути без участие на разработчика. За настройка на тригери е необходим акаунт с роля на редактор или администратор.
Изборът между Staged Rollout и пълно пускане зависи от вида промени и нивото на риск. Пълното пускане е оправдано за малки корекции и актуализации на зависимости без промяна на логиката. Постепенното пускане е задължително за мажорни актуализации, промяна на архитектурата и промени, засягащи сигурността или данните на потребителите.
| Параметър | Staged Rollout | Пълно пускане |
|---|---|---|
| Покритие | 5–100% постепенно | 100% веднага |
| Време за внедряване | 24–72 часа | 2–4 часа |
| Контрол на метрики | Между етапи | След пускане |
| Риск | Нисък | Висок |
| Връщане | Мигновено | Изисква нов билд |
За актуализации, засягащи повече от 20% от кода, Staged Rollout е задължителен. Промените в UI и UX също изискват постепенно внедряване за оценка на реакцията на потребителите. Пълното пускане е допустимо за корекции на текст, актуализации на SDK без промяна на API и пачове за сигурност с нисък риск от регресия. При съмнение винаги избирайте постепенно пускане — цената на връщането е значително по-ниска от потенциалната щета от масивен срив на производствената версия.
Често задавани въпроси
Пълният цикъл на постепенно пускане отнема 24–72 часа при стандартно увеличаване на покритието от 5% на 100%. На всеки етап се препоръчва да изчакате 24–48 часа за събиране на метрики и откриване на проблеми. Времето може да бъде намалено до 8–12 часа при спешни актуализации.
Оптималният начален процент е 5–10% от общата аудитория. Това е достатъчно за получаване на представителна извадка и откриване на критични грешки. За приложения с аудитория под 10 000 потребители можете да започнете с 10–15%.
Незабавно извършете връщане към предишната стабилна версия чрез Google Play Console. След това поправете грешката, качете нов билд и стартирайте Staged Rollout отново от минималния процент на покритие. Не публикувайте корекцията веднага за 100% от потребителите.
Да, косвено. Ако по време на постепенното пускане бъде открита грешка, тя засяга само 5–10% от аудиторията, което минимизира негативните отзиви. Стабилните последователни пускания влияят положително на репутацията на приложението в Google Play.
Да, но това са различни механизми. Първо публикувайте билда в затворен или отворен бета трак за тестване върху доверена аудитория. След потвърждение на стабилността прехвърлете същата версия в Production с Staged Rollout. Всеки трак се управлява независимо. Staged Rollout се прилага само към производственото пускане, а бета траковете — към тестовите версии.
Резюме
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също