مقدمة
(سأحكي لكم عن حادثة وقعت خلال مشاركتي في مشروع عالمي قديمٍ). وكان من الضروري آنذاك نشر النظام في بلد معين، لذا قمنا بإنشاء بيئة على خدمة Tencent Cloud السحابية في تلك المنطقة. كانت الخدمة تواجه بعض التحديات من حيث الموثوقية والكفاءة مقارنة بالخدمات السحابية الكبرى، وكانت بعض وظائفها غير مكتملة، مما تسبب في عدة صعوبات. في هذه المقالة، سأتحدث عن الحدث الأكثر إثارة للاهتمام.
الشروط
- يتم إدارة البنية التحتية التي تم إنشاؤها على Tencent Cloud بشكل أساسي باستخدام Terraform.
مشكلة إعادة إنشاء موارد إدارة المستخدم تلقائيًا
المنبع
- قمت بإضافة رمز Terraform لتحديث مورد البنية التحتية ونفذت خطة terraform.
الظاهرة
- حدث خطأ في تطبيق SDK أثناء تنفيذ الخطة. محتوى الخطأ كان يشير إلى أن بعض الموارد لم تكن موجودة على الجهاز الفعلي.
- الموارد المعنية لم تكن ذات صلة بالموارد التي تم تحديثها، ولم تواجه مشكلة من قبل عند إدارتها باستخدام Terraform.
السبب
- بعد البحث، تم اكتشاف أن معرّف UUID (المعرف الفريد للمورد) على حالة الحفظ tfstate لم يعد يتطابق مع القيمة الفعلية.
- لم يتم تحديث المستخدم للمورد المعني، وتم التواصل مع دعم خدمة Tencent Cloud.
- كانت الموارد التي حدثت فيها المشكلة هي موارد المراقبة.
وهي خدمة تشبه تنبيهات CloudWatch في AWS.
نتيجة الاستفسار
- اكتشفنا أن خدمة المراقبة المزودة من قِبل Tencent Cloud قامت بإعادة إنشاء موارد إدارة المستخدم بسبب ترقية تم تطبيقها على هذه الخدمة.
- نتيجةً لإعادة إنشاء الموارد، اختلف معرّف UUID على حالة الحفظ tfstate، مما أدى إلى فشل عملية التنفيذ.
التعامل مع المشكلة
- تم ترتيب قائمة بالموارد المُعاد إنشاؤها، ثم تنفيذ state rm للموارد القديمة وstate import للموارد الجديدة (كتبنا بعض النصوص البرمجية البسيطة، لكن بسبب العدد الكبير للموارد، استغرق الأمر وقتًا طويلًا).
- نظرًا لأن خدمة Tencent Cloud لم توفر عملية تلقائية لهذه المشكلة، كان على المستخدم تنفيذها يدويًا.
السبب الجذري الذي اعتقدته
-
تحديث مفاجئ بدون إشعار مسبق
- لم يتم إرسال إشعار مسبق من Tencent Cloud حول هذا التغيير.
-
عدم كفاية التحقيق في التأثير الناتج عن التحديث
- لم تجرِ Tencent Cloud تحقيقًا كافيًا لتحديد التأثيرات المحتملة للتحديث.
-
تصميم الخدمة غير المثالي
- لا يوجد توضيح منطقي لسبب إعادة إنشاء الموارد بعد التحديث.
خاتمة
للأشخاص الذين يعتمدون على خدمات سحابية مثل Tencent Cloud، أردت توثيق هذه التجربة لتجنب مشاكل مماثلة في المستقبل. آمل أن تكونوا قد استفدتم من هذه المقالة.