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% کاربران را انتخاب کنید. این حداقل حجم نماینده برای شناسایی خطاهای بحرانی است. در صورت عدم وجود مشکل، درصد با فاصله 24–48 ساعت به 25%، 50% و 100% افزایش مییابد. افزایش سریع پوشش فقط برای تغییرات جزئی توجیه میشود.
این قابلیت فقط برای انتشارات Production در Google Play در دسترس است. برای آزمایش باز و ترکهای بسته از مکانیزمهای جداگانه استفاده میشود. Staged Rollout را نمیتوان برای کشورها یا مناطق جداگانه اعمال کرد — درصد از کل مخاطبان برنامه محاسبه میشود. برای هدفگیری جغرافیایی از country-specific releases استفاده میشود. همچنین نمیتوان درصد متفاوتی برای کانالهای توزیع مختلف تنظیم کرد — همه کاربران بدون توجه به منبع نصب به طور تصادفی انتخاب میشوند.
Staged Rollout ریسکهای انتشار را کاهش میدهد و امکان شناسایی مشکلات در نمونه کوچکی از کاربران را فراهم میکند. برخلاف آزمایش در ترکهای داخلی، ترافیک Production سناریوهای استفاده واقعی را نشان میدهد که در محیط QA قابل بازتولید نیستند. طبق تحلیل Google Play Console (2024)، 70% از خطاهای بحرانی دقیقاً در مرحله انتشار مرحلهای شناسایی میشوند.
| مزیت | توضیحات | تأثیر |
|---|---|---|
| به حداقل رساندن ریسک | خطا فقط درصدی از مخاطب را تحت تأثیر قرار میدهد | کاهش خسارت 10–20 برابر |
| بازگشت سریع | بازگشت به نسخه پایدار در چند دقیقه | زمان واکنش — 15 دقیقه |
| معیارهای Production | دادههای واقعی از دستگاههای کاربران | دقت شناسایی — 95% |
| کنترل سرعت | افزایش پوشش طبق برنامه | انعطافپذیری استقرار |
در صورت بروز مشکلات، فقط بخش کوچکی از کاربران با خطاها مواجه میشوند. بقیه به کار با نسخه پایدار ادامه میدهند. این کار امتیاز برنامه را حفظ میکند و از نظرات منفی گسترده جلوگیری میکند. Google Play همچنین پایداری انتشارها را هنگام رتبهبندی در جستجو در نظر میگیرد.
Staged Rollout توسط Google Play Developer API پشتیبانی میشود که امکان خودکارسازی انتشارهای مرحلهای را از طریق خطوط لوله CI/CD فراهم میکند. ابزارهایی مانند Gradle Play Publisher و Fastlane دستورات آماده برای تنظیم درصد پوشش و نظارت بر وضعیت انتشار از طریق اسکریپتهای ساخت ارائه میدهند.
قبل از افزایش درصد پوشش، سه معیار کلیدی را بررسی کنید: دفعات کرش کمتر از 0.5%، تعداد ANR از خط پایه نسخه Production تجاوز نمیکند، امتیاز برنامه بیش از 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 و وصلههای امنیتی با ریسک پایین بازگشت مجاز است. در صورت تردید، همیشه انتشار مرحلهای را انتخاب کنید — هزینه بازگشت به طور قابل توجهی کمتر از خسارت احتمالی ناشی از خرابی گسترده نسخه Production است.
سوالات متداول
چرخه کامل انتشار مرحلهای با افزایش استاندارد پوشش از 5% به 100% 24–72 ساعت طول میکشد. در هر مرحله توصیه میشود 24–48 ساعت برای جمعآوری معیارها و شناسایی مشکلات صبر کنید. در بهروزرسانیهای فوری میتوان زمان را به 8–12 ساعت کاهش داد.
درصد شروع بهینه 5–10% از کل مخاطبان است. این برای به دست آوردن نمونه نماینده و شناسایی خطاهای بحرانی کافی است. برای برنامههایی با کمتر از 10 000 کاربر میتوان از 10–15% شروع کرد.
فوراً از طریق Google Play Console بازگشت به نسخه پایدار قبلی را انجام دهید. سپس خطا را برطرف کنید، بیلد جدید را بارگذاری کرده و Staged Rollout را از حداقل درصد پوشش دوباره شروع کنید. اصلاحیه را بلافاصله برای 100% کاربران منتشر نکنید.
بله، به طور غیرمستقیم تأثیر میگذارد. اگر در فرآیند انتشار مرحلهای خطایی شناسایی شود، تنها 5–10% از مخاطب را تحت تأثیر قرار میدهد که نظرات منفی را به حداقل میرساند. انتشارات پایدار متوالی تأثیر مثبتی بر شهرت برنامه در Google Play دارند.
بله، اما اینها مکانیزمهای متفاوتی هستند. ابتدا بیلد را در ترک بتای بسته یا باز برای آزمایش بر روی مخاطبان مورد اعتماد منتشر کنید. پس از تأیید پایداری، همان نسخه را با Staged Rollout به Production منتقل کنید. هر ترک به طور مستقل مدیریت میشود. Staged Rollout فقط برای انتشار Production اعمال میشود و ترکهای بتا برای نسخههای آزمایشی.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید