شحن تطبيقات الجوال دون ذعر: الطرح التدريجي، التهيئة عن بُعد، ومراقبة الإصدارات
لقد أصدرت للتو نسخة جديدة من تطبيق الجوال الخاص بك إلى المتجر. بعد ثلاث ساعات، تبدأ تقارير الأعطال في التدفق. ارتفع معدل الأخطاء لمستخدمي Android ذوي الأجهزة منخفضة الذاكرة من 0.5% إلى 8%. يندفع فريقك للعثور على السبب الجذري، لكن الإصلاح سيستغرق يومًا آخر للبرمجة والاختبار والتقديم للمراجعة. وفي هذه الأثناء، يعاني آلاف المستخدمين من أعطال في كل مرة يفتحون فيها التطبيق.
هذا السيناريو شائع بشكل مؤلم في المؤسسات التي تعتمد على الجوال أولاً. على عكس الخدمات الخلفية حيث يمكنك التراجع عن نشر في دقائق، تخضع تطبيقات الجوال لعمليات مراجعة المتجر التي تستغرق ساعات أو أيامًا. كما أن المستخدمين لا يقومون بالتحديث فورًا دائمًا. كثير من الأشخاص يستخدمون إصدارات أقدم لأسابيع أو أشهر. لا يمكنك ببساطة تبديل حاوية أو التراجع عن تغيير في الخادم.
إذن، كيف تشحن ميزات جديدة دون انتظار كل مستخدم للتحديث؟ وعندما يحدث خطأ ما، كيف توقف النزيف دون تقديم بناء آخر؟
ابدأ صغيرًا مع الطرح التدريجي
خط الدفاع الأول هو الطرح التدريجي. بدلاً من إصدار نسخة جديدة لـ 100% من المستخدمين دفعة واحدة، تبدأ بنسبة صغيرة. ربما 5% من المستخدمين يحصلون على التحديث أولاً. تراقب المقاييس: معدل الأعطال، معدل الأخطاء، شكاوى المستخدمين. إذا كان كل شيء نظيفًا، تزيد إلى 25%، ثم 50%، ثم 100%.
يدعم كل من Google Play Store و Apple App Store الطرح التدريجي من خلال واجهات لوحة التحكم الخاصة بهما. بعض المؤسسات التي لديها أنظمة توزيع داخلية تبني آليات الإصدار المرحلي الخاصة بها. المبدأ هو نفسه: الحد من نصف قطر الانفجار. إذا كان هناك خطأ ما، فإن جزءًا صغيرًا فقط من المستخدمين يتعرضون له.
ومع ذلك، فإن الطرح التدريجي وحده لديه نقطة عمياء. بعض المشاكل تستغرق أيامًا لتظهر. قد تعمل ميزة بشكل جيد لمعظم المستخدمين ولكنها تتعطل في ظل ظروف محددة لا تظهر إلا بعد أسبوع من الاستخدام. وبحلول ذلك الوقت، قد تكون قد دفعت الإصدار بالفعل إلى 100% من المستخدمين.
تحكم في الميزات عن بُعد
هنا يأتي دور التهيئة عن بُعد. تتيح لك التهيئة عن بُعد تغيير سلوك تطبيقك دون شحن نسخة جديدة. تقوم بتعريف قيم التهيئة على خادم، ويقرأها التطبيق عند بدء التشغيل أو على فترات منتظمة. يمكن للتهيئة التحكم في أي شيء: أي الميزات مرئية، أي نقاط نهاية API يجب الاتصال بها، أي مكونات واجهة المستخدم يجب عرضها، أو أي تدفقات تجريبية يجب تمكينها.
يستخدم التنفيذ النموذجي ملف JSON أو مخزن قيم مفاتيح مستضاف على خادمك الخلفي. عند تشغيل التطبيق، يقوم بجلب هذه التهيئة ويضبط سلوكه وفقًا لذلك. إذا كنت بحاجة إلى تعطيل ميزة إشكالية، تقوم بتحديث التهيئة على الخادم. في المرة التالية التي يفتح فيها المستخدمون التطبيق، تختفي الميزة. لا مراجعة متجر، لا انتظار للتحديثات.
التهيئة عن بُعد مفيدة بشكل خاص لأعلام الميزات في تطبيقات الجوال. يمكنك شحن ميزة معطلة افتراضيًا، وتمكينها لـ 10% من المستخدمين للاختبار، وزيادة النسبة تدريجيًا مع اكتساب الثقة. إذا تسببت الميزة في مشاكل، تقوم بإيقاف تشغيلها فورًا.
لكن التهيئة عن بُعد تعمل فقط إذا كنت تعرف أي إصدار من التطبيق يقوم كل مستخدم بتشغيله. علم الميزة الذي يعمل في الإصدار 3.2 قد لا يكون موجودًا في الإصدار 3.0. إذا قمت بتمكين ميزة بشكل أعمى لجميع المستخدمين، فقد تتعطل الإصدارات الأقدم لأنها لا تحتوي على كود تلك الميزة على الإطلاق.
اعرف ما الذي يشغله مستخدموك
مراقبة إصدار التطبيق تحل هذه المشكلة. يجب أن يتضمن كل طلب من تطبيق الجوال الخاص بك إصدار التطبيق في رأس أو معامل استعلام. يسجل خادمك الخلفي هذه المعلومات ويجمعها في لوحات معلومات. يمكنك رؤية توزيع الإصدارات بين المستخدمين النشطين، ومقارنة معدلات الأخطاء عبر الإصدارات، واتخاذ قرار بشأن موعد إيقاف الإصدارات القديمة.
على سبيل المثال، قد تلاحظ أن الإصدار 3.0 لديه معدل أعطال 4% بينما الإصدار 3.1 لديه 0.3% فقط. يخبرك هذا أن إصلاح العطل في 3.1 كان فعالاً. يمكنك بعد ذلك مطالبة المستخدمين على 3.0 بالتحديث، أو حتى حظر الوصول إلى الميزات الهامة إذا كان الإصدار قديمًا جدًا وغير آمن.
تساعد مراقبة الإصدار أيضًا في قرارات الطرح التدريجي. إذا أصدرت الإصدار 3.2 لـ 5% من المستخدمين ورأيت ارتفاعًا في معدل الأعطال فقط على الأجهزة التي تحتوي على أقل من 2 جيجابايت من ذاكرة الوصول العشوائي، يمكنك إيقاف الطرح مؤقتًا، وإصلاح المشكلة، وإصدار تصحيح. بدون مراقبة الإصدار، سترى زيادة عامة في الأعطال ولكن ليس لديك أي فكرة عن أي إصدار تسبب فيها.
كيف تعمل هذه الممارسات الثلاث معًا
يشكل الطرح التدريجي والتهيئة عن بُعد ومراقبة إصدار التطبيق شبكة أمان ثلاثية الطبقات لإصدارات الجوال.
يوضح الرسم البياني أدناه كيف تتصل الممارسات الثلاث في سيناريو إصدار نموذجي:
يتولى الطرح التدريجي التعامل مع المخاطر الأولية للنسخة الجديدة. تلتقط المشاكل الواضحة مبكرًا، قبل أن تؤثر على معظم المستخدمين.
تمنحك التهيئة عن بُعد تحكمًا مستمرًا. حتى بعد نشر النسخة بالكامل، يمكنك ضبط السلوك دون دورة إصدار أخرى.
توفر مراقبة إصدار التطبيق الرؤية التي تحتاجها لاتخاذ كلا القرارين. أنت تعرف من لديه أي إصدار، وكيف يعمل كل إصدار، ومتى تتدخل.
بدون هذه الممارسات، غالبًا ما تقع فرق الجوال في دورة رد فعل: تقديم بناء، انتظار المراجعة، الذعر عند ارتفاع الأعطال، التسرع في الإصلاح، تقديم بناء آخر، الانتظار مرة أخرى. تستغرق كل دورة أيامًا. يعاني المستخدمون في هذه الأثناء.
قائمة التحقق العملية لإصدارات الجوال
قبل إصدار الجوال التالي، راجع قائمة التحقق هذه:
- حدد نسب الطرح التدريجي ومعايير التقدم إلى المرحلة التالية (مثل: معدل الأعطال أقل من 1%، عدم وجود أخطاء حرجة مبلغ عنها).
- قم بإعداد مفاتيح التهيئة عن بُعد لأي ميزة جديدة قد تحتاج إلى تعطيل سريع.
- تأكد من أن كل طلب API يتضمن إصدار التطبيق في رأس أو معامل.
- أنشئ لوحة معلومات تظهر توزيع الإصدارات، ومعدل الأعطال لكل إصدار، ومعدل الأخطاء لكل إصدار.
- وثق خطة التراجع: قيم التهيئة التي يجب تغييرها، والنسبة المئوية التي يجب الرجوع عنها، ومن لديه صلاحية إجراء هذه التغييرات.
- اختبر آلية التهيئة عن بُعد نفسها. تأكد من أن التطبيق يتعامل مع التهيئة المفقودة أو غير الصحيحة بأمان.
الخلاصة
لا يمكن للمؤسسات التي تعتمد على الجوال أولاً معاملة الإصدارات مثل نشر الخلفية. عملية مراجعة المتجر، وتأخر التحديث من المستخدمين، وتنوع الأجهزة، كلها تتطلب استراتيجية مختلفة. الطرح التدريجي يحد من ضرر الإصدار السيئ. التهيئة عن بُعد تمنحك تحكمًا جراحيًا في الميزات بعد الإصدار. مراقبة إصدار التطبيق تخبرك بما يحدث بالفعل في الميدان. معًا، يحولون إصدارات الجوال من حدث عالي المخاطر إلى عملية قابلة للإدارة. بدونها، أنت على بعد بناء سيئ واحد من ليلة طويلة جدًا.