من الاختبار إلى الإنتاج: قائمة التبديل
يوم الانتقال إلى الإنتاج تغيّرون شيئًا واحدًا: المفتاح. يبقى أن يكون الباقي جاهزًا.
تُفتح بيئة الاختبار (السندبوكس) فورًا. ويُفعَّل الإنتاج على حسابكم بعد التحقق من شركتكم. وبينهما مفتاح واحد يُبدَّل — أما العناوين والحمولات ورموز الأخطاء فهي نفسها.
ولأن التبديل بهذه البساطة بالذات، فهو يستحق قائمة. وهذه هي القائمة التي نمرّ عليها مع فرق الإدماج.
ما يجب أن يكون صحيحًا قبلها
معالج الويب هوك لديكم يتحقق من التوقيع. على الجسم الخام، قبل أي تحليل. وإن لم تختبروه بحدث اختبار، فأنتم لم تختبروه.
معالج الويب هوك لديكم غير قابل للتكرار. قد يصل الإشعار نفسه مرتين. وإن كان كودكم يشحن طلبية عند كل استلام، فسيظهر ذلك يومًا.
عمليات الإنشاء لديكم ترسل مفتاح Idempotency. مشتقًّا من مرجع طلبكم أنتم، لا من سحب عشوائي.
تسجّلون `correlationId`. يُعاد في كل استجابة، بما فيها الناجحة. وهو ما سيطلبه الدعم، وهو ما يحوّل تحقيقًا ليوم كامل إلى بحث في ثلاثين ثانية.
مفاتيحكم في خزنة أسرار. لا في المستودع، ولا في ملف إعدادات مُودَع، ولا في رسالة على قناة الفريق.
اختبرتم غير المسار السعيد. كحدّ أدنى: دفعة مرفوضة، واسترداد، واسترداد جزئي، وويب هوك يردّ عليه خادمكم بخطأ — لتروا ما يحدث حين نعيد التسليم.
ما تسمح به بيئة الاختبار ويمنعه الإنتاج
توجد نقطة تفرض الاستحقاق القادم لاشتراك. وهي لا توجد إلا في بيئة الاختبار، وهي ما يتيح لكم أن تجروا سنة اشتراك في دقيقة: أنشئوا الاشتراك، وافرضوا ثلاثة استحقاقات، وتحقّقوا أن فوترتكم تتبع، وأن تذكيركم يعمل، وأن الإلغاء يُسجَّل.
افعلوا ذلك. فهو السبيل الوحيد لاكتشاف خلل في الفوترة المتكررة قبل أن يمسّ زبونًا حقيقيًا.
يوم التبديل
تغيّرون المفتاح. لا غير.
وإن لم يكن الإنتاج مفعّلًا بعد على حسابكم، فسيتلقى مفتاح الإنتاج رمز 403 صريحًا بالرمز PRODUCTION_ACCESS_NOT_ENABLED — وهذا ليس خللًا في الدمج، بل خطوة إدارية.
أبقوا مفتاح الاختبار فعّالًا: ستحتاجونه لبيئات القبول لديكم، ومن الأسلم بكثير أن تختبروا تطويرًا في بيئة الاختبار بدل أن تختبروه «بحذر» في الإنتاج.
الإغفالات الكلاسيكية الثلاثة
سرّ الويب هوك. توقّع بيئة الاختبار والإنتاج بسرّين مختلفين. الإدماج الذي يبدّل مفتاح الواجهة ويحتفظ بالسر القديم يرفض بصمت كل إشعارات الإنتاج — تمرّ الأداءات ولا تنطلق الطلبيات، ويبدو الحادث أي شيء إلا سببه.
مبالغ الاختبار في الكود. amount: 100 بقي من تجربة، خصم استعراضي، سقف مصطنع: أعيدوا قراءة كل ما يمسّ المبلغ بسؤال «من أين جاء هذا الرقم؟». في الإنتاج، يجب أن يأتي كل رقم من قاعدتكم، لا من ملف أبدًا.
عناوين البريد وروابط التطوير. عنوان الإشعار الذي ما يزال يشير إلى بريد المطوّر، ورابط العودة إلى localhost: بيئة الاختبار تغفر، والإنتاج يفضح. البحث في الإعدادات عن localhost وtest@ و.dev يستغرق دقيقتين.
فصل البيئتين، على الدوام
الانتقال إلى الإنتاج ليس هجرة بل فصل: تبقى بيئة الاختبار قائمة، وهي أفضل أداة لما بعده.
أبقوا بيئة من تطبيقكم موصولة دائمًا ببيئة الاختبار. فهناك تُجرَّب الميزة القادمة وترقية الإصدار والويب هوك الجديد — ببيانات وهمية وأداءات بلا عواقب. الفرق التي تحذف إدماجها التجريبي يوم الإطلاق تجد نفسها بعد ثلاثة أشهر تختبر تعديلًا على مسار الأداء... في الإنتاج، وببطاقات حقيقية.
عمليًا: مجموعتا متغيرات بيئة لا تختلطان في ملف واحد؛ ومفاتيح مسماة حسب البيئة في مدير الأسرار؛ ومنع تقني — لا ثقافي فحسب — لنداء واجهة الإنتاج من جهاز تطوير.
الأسبوع التالي
انظروا إلى ثلاثة أمور كل يوم لمدة أسبوع:
- سجل تسليمات الويب هوك — النقطة التي تتراكم عليها الإخفاقات تنتهي معلّقة؛
- المطابقة اليومية — إن لم تتوازن مجاميعكم في الأسبوع الأول، فلن تتوازن أفضل بعد شهر؛
- المدفوعات المعلّقة التي تنتهي صلاحيتها — نسبة مرتفعة تشير إلى مشكلة في المسار لا في البنك.
يُعرَف مسار التحصيل الناجح بهذا: لم يعد أحد يتحدث عنه.
بقلم فريق ChariPay.