أوضحت AWS كيف تمكنت شركة ProGlove، الشركة المصنعة للأجهزة الصناعية القابلة للارتداء، من توسيع نطاق منصة SaaS الخاصة بها لتشغيل أكثر من مليون وظيفة AWS Lambda منتشرة عبر الآلاف من حسابات العملاء المخصصة.
في منشور على مدونة AWS Architecture، يرجع الفريق الفضل إلى نموذج الحساب الواحد لكل مستأجر، والأتمتة الشاملة باستخدام CloudFormation StackSets، والسياسات الصارمة للتوسع إلى الصفر لإبقاء تكاليف الخمول أقل من دولار أمريكي شهريًا لكل حساب.
اختارت ProGlove عزل كل عميل في حساب AWS الخاص به، وتداول النفقات التشغيلية الإضافية من أجل حدود أمنية أقوى، وحصص خدمة مستقلة، وإسناد واضح للتكلفة لكل عميل.
تنص AWS على أن القرار أدى إلى احتكاك تشغيلي بمجرد تجاوز النظام الأساسي 50 حسابًا.
يوجد داخل كل حساب عميل مجموعة من الخدمات الصغيرة، عادةً ما تكون من خمس إلى خمس عشرة وظيفة Lambda يتم تنسيقها بواسطة جهاز حالة Step Functions الذي يستوعب قراءات الماسح الضوئي، ويستمر بها في Amazon DynamoDB، ويبث أحداث الأعمال إلى ناقل Amazon EventBridge مشترك يستهلكه مستوى التحليلات الخاص بـ ProGlove.
أدى التزويد اليدوي إلى إبطاء الإصدارات وكشف أسقف حصص الخدمة، لذلك قام المهندسون بدمج AWS Organizations وStep Functions وCloudFormation StackSets في سير عمل يقوم بإنشاء كل حساب وتحديثه من مسار واحد. قال الفريق إن التعاون مع مهندسي خدمة AWS أدى لاحقًا إلى زيادة إنتاجية StackSet حتى تتمكن الآلية من إحداث تغييرات عبر آلاف الحسابات التي تستضيف معًا أكثر من مليون وظيفة Lambda.
المصدر: أوس
تشير AWS إلى أن الحصص لم تكن التحدي الوحيد للتوسع. أطلقت الجداول الزمنية المبكرة ذات نمط cron نفس الوظيفة في كل حساب في أوقات متطابقة، مما أدى إلى ما وصفه المهندسون بأنه DDoS ذاتي.
لقد استبدلوا أجهزة ضبط الوقت الصارمة بنوافذ تنفيذ متوترة ومشغلات تعتمد على الأحداث، مما أدى إلى تسهيل التحميل الإقليمي دون اللجوء إلى التزامن المحجوز أو السعة المتوفرة.
اتبعت تكاليف إمكانية الملاحظة مسارًا مشابهًا. تُصدر كل وظيفة من وظائف Lambda سجلات ومقاييس؛ تضاعف الحجم الناتج عبر آلاف الحسابات، وهدد بالسيطرة على الفاتورة. قامت ProGlove بدمج حالات الفشل ذات الأولوية العالية في قائمة انتظار مركزية للأحرف الميتة وإزالة قوائم انتظار Amazon SQS غير المستخدمة. وفقًا للمدونة، أدت هذه التغييرات إلى خفض الإنفاق الخامل لكل حساب إلى أقل من دولار أمريكي واحد.
وقد ظهرت مخاوف عملية مماثلة في أماكن أخرى. وصفت Capital One توحيد ممارسات النشر وقابلية المراقبة والحوكمة بأنها ضرورية لتشغيل أعباء عمل Lambda بشكل متسق عبر المؤسسات الكبيرة، بحجة أن النطاق الفني يتطلب أيضًا توحيدًا تشغيليًا.
يشير منشور AWS أيضًا إلى أن الأتمتة جلبت تنازلات خاصة بها. ظلت عمليات نشر StackSet أبطأ من عمليات نشر CloudFormation للحساب الواحد، كما أدت السجلات المركزية إلى تقليل بعض التفاصيل لكل مستأجر. اعتبر الفريق أن هذه التنازلات مقبولة نظرًا للتحسينات التي تم إجراؤها على العزلة ورؤية التكلفة والاتساق التشغيلي.
تقترح تجربة ProGlove وجود نمط: البدء بنموذج الإيجار الذي يفرض حدودًا صارمة، وأتمتة كل إجراء للبنية التحتية في وقت مبكر، والتعامل مع الإنفاق على إمكانية المراقبة باعتباره قيدًا للتوسع من الدرجة الأولى. يشير الترحيل بدون خادم في DoorDash إلى موضوعات مماثلة، مما يسلط الضوء على أن الأتمتة المنضبطة حافظت على أكثر من عشرة ملايين مكالمة يومية لواجهة برمجة التطبيقات (API) من تجاوز حدود التزامن. وفي حين تختلف التكتيكات، فإن القاسم المشترك هو أن رؤية التكلفة والحصص تدفع الاختيارات المعمارية قبل وقت طويل من ظهور تقلصات القدرات.
