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-ова не прелази baseline продукцијске верзије, рејтинг апликације није опао за више од 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. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође