8.2

View in English

8.2 البنية التحتية كشيفرة والتهيئة

نظرة عامة والدافع

تعني البنية التحتية كشيفرة (IaC) تعريف وتزويد البنية التحتية (الشبكات، والخوادم، وقواعد البيانات، وموازنات التحميل، والأذونات) عبر ملفات تعريف مقروءة آليًا بدل نقرات وحدة تحكم يدوية أو سكربتات ارتجالية. إدارة التهيئة تمد الفكرة نفسها لإعدادات وحالة الأنظمة بمجرد وجودها. معًا تحوّلان البنية التحتية من قطعة هشة مصنوعة يدويًا إلى منتج مُرقَّم بإصدار، وقابل للمراجعة، وقابل لإعادة الإنتاج من الانضباط الهندسي نفسه الذي تستخدمه لشيفرة التطبيق.

للفرق الكبيرة، البنية التحتية كشيفرة ليست راحة بل ضرورة. عندما يحتاج مئات المهندسين بيئات ويجب أن تبقى آلاف الموارد متسقة عبر مناطق وحسابات، لا يستطيع التزويد اليدوي مجاراة ذلك ولا البقاء صحيحًا. البنية التحتية المُهيَّأة بشريًا تنجرف، عاجلًا أو آجلًا، إلى خوادم “ندفة ثلج” فريدة لا يفهمها أحد كليًا ولا يمكن إعادة بنائها بموثوقية بعد فشل. تقنين البنية التحتية يجعلها متسقة، وقابلة للتدقيق، وقابلة للتخلص. يمكن إعادة إنشاء أي بيئة من تعريفها، وأي تغيير فرق قابل للمراجعة.

تكسب مؤسسات المؤسسة والحكومة فائدة أخرى حاسمة: حوكمة قابلة للفرض. متطلبات الأمان والامتثال، مثل التشفير في السكون، وتقسيم الشبكة، والمناطق المعتمَدة، والوسم لتخصيص التكلفة، يمكن تضمينها مباشرة في الشيفرة وفحصها آليًا قبل تزويد أي شيء. بدل تدقيق البنية التحتية بعد وقوعها ومطاردة الانتهاكات، تمنع البنية التحتية غير الممتثلة من الوجود أبدًا. هذا التحول من الكشف إلى المنع هو السبب الجوهري أن البنية التحتية كشيفرة أصبحت أساسية لممارسة المنصات الحديثة.

المبادئ الأساسية

  • فضّل تعريفات إعلانية تصف الحالة المرغوبة على سكربتات أمرية تصف الخطوات.
  • خزّن كل تعريفات البنية التحتية في التحكم بالإصدار، مراجَعة كأي شيفرة أخرى.
  • عامل البنية التحتية كغير قابلة للتغيير: استبدل بدل التعديل في مكانها.
  • اجعل التزويد بلا تأثر بالتكرار بحيث ينتج تطبيق التعريف نفسه مرارًا النتيجة نفسها.
  • اكتشف الانجراف وطابقه، البيئة الجارية تنحرف عن تعريفها المُعلَن، باستمرار؛ الشيفرة، لا النظام الجاري، مصدر الحقيقة.
  • ركّب البنية التحتية من وحدات قابلة لإعادة الاستخدام ومُرقَّمة بإصدار بدل النسخ واللصق.
  • رمّز السياسة كشيفرة، قواعد تنظيمية مُعبَّر عنها كشيفرة قابلة للفحص آليًا، بحيث تكون حواجز الحماية آلية، لا استشارية.
  • أبقِ الأسرار خارج التعريفات؛ أشِر إليها من مدير أسرار مخصص.

التوصيات

اختر أدوات إعلانية وهيكلها حول الوحدات

تبنَّ أداة بنية تحتية كشيفرة إعلانية، مثل Terraform، أو Pulumi، أو خيارًا سحابيًا أصليًا مثل CloudFormation، ووحّد عليها عبر المؤسسة بحيث تتجنب مشهد أدوات مجزّأ. الممارسة المعمارية الرئيسية النمطية: ابنِ وحدات صغيرة، وموثَّقة جيدًا، ومُرقَّمة بإصدار تلتقط أنماطًا شائعة (شبكة ممتثلة، قاعدة بيانات مُصلَّبة، خدمة معيارية). تركّب الفرق بعدها بيئات من هذه الوحدات بدل تأليف موارد خام. هذا ينشر افتراضيات جيدة وإعدادات أمان آليًا ويقلل التكرار بشكل كبير.

أدِر الحالة عمدًا

تتتبع الأدوات الإعلانية التخطيط بين الشيفرة والموارد الحقيقية في ملف حالة. خزّن الحالة عن بُعد في خلفية مشتركة، ومشفَّرة، ومتحكَّم بالوصول إليها، واستخدم القفل بحيث لا تستطيع التعديلات المتزامنة إفسادها. لا تحتفظ بالحالة على حاسوب محمول أبدًا، ولا تحررها يدويًا أبدًا إلا كفعل استعادة أخير الملاذ. الحالة حساسة، لأنها يمكن أن تحتوي بيانات موارد وصفية وأسرارًا، فاحمها وفقًا لذلك.

ابنِ بنية تحتية غير قابلة للتغيير بصور ذهبية

بدل ترقيع خوادم جارية، اخبز “صورة ذهبية” مُرقَّمة بإصدار (صورة آلة أو حاوية مُهيَّأة مسبقًا ومُصلَّبة) وانشر نسخًا طازجة منها. عندما تحتاج تغييرًا أو ترقيعًا، ابنِ صورة جديدة وطرحها، مُتقاعِدًا النسخ القديمة. هذا يزيل انجراف التهيئة، ويجعل التراجع تافهًا، ويبقي كل نسخة متطابقة وقابلة للتتبع لبناء معروف بجودته. ينبغي أن تشمل خطوط أنابيب صور آلية التصليب الأمني والمسح، بحيث يُبنى الامتثال عند مستوى الصورة.

اكتشف انجراف التهيئة وطابقه

يحدث الانجراف عندما تنحرف البيئة الجارية عن تعريفها، عادة لأن أحدهم أجرى تغييرًا يدويًا طارئًا. شغّل كشف انجراف منتظمًا يقارن الحالة الفعلية بالحالة المُعلَنة ويعلّم الفروق. عامل الانجراف كعيب: طابق بتحديث الشيفرة وإعادة التطبيق، لا بترك التغيير اليدوي في مكانه. للأنظمة التي تحتاج فرض تهيئة مستمرًا، استخدم أداة إدارة تهيئة تقارب المضيفين باستمرار لحالتهم المُعلَنة.

تبنَّ GitOps والنشر المبني على السحب

في نموذج GitOps، يحمل مستودع Git الحالة المرغوبة المُعلَنة للنظام، ويسحب وكيل آلي يعمل داخل البيئة المستهدفة تلك الحالة باستمرار ويطابق النظام الجاري ليماثلها. هذا يقلب النموذج الدفعي التقليدي. لا يحتاج نظام خارجي بيانات اعتماد دائمة لتغيير البيئة، لأن البيئة تسحب تهيئتها الخاصة. GitOps يمنحك مسار تدقيق كاملًا (كل تغيير التزام)، وتراجعًا سهلًا (تراجع عن الالتزام)، وتصحيح انجراف قويًا (يعيد الوكيل تأكيد الحالة المرغوبة باستمرار). قوي خصوصًا لـكوبرنيتس وللمؤسسات التي تريد مصدر حقيقة واحدًا وقابلًا للمراجعة.

افرض حواجز حماية بالسياسة كشيفرة

عبّر عن القواعد التنظيمية، مثل المناطق المسموحة، والتشفير الإلزامي، والوسوم المطلوبة، والتعرض العام المحظور، كسياسات قابلة للفحص آليًا باستخدام أداة مثل Open Policy Agent (OPA) أو محرك سياسة أصلي للمنصة مثل Sentinel. شغّل هذه الفحوصات في خط الأنابيب قبل التزويد، بحيث تُحجَب الانتهاكات آليًا. السياسة كشيفرة تحوّل قصد فريق الأمان لضابط قابل للتنفيذ ومُطبَّق بتوحيد، وتتوسع لآلاف التغييرات بطريقة لا تستطيعها المراجعة اليدوية أبدًا.

المفاضلات: الإيجابيات والسلبيات

الخيارالإيجابياتالسلبياتالملاءمة الأفضل
بنية تحتية إعلانية كشيفرة (Terraform/Pulumi)قابلة لإعادة الإنتاج، قابلة للمراجعة، قابلة لكشف الانجرافمنحنى تعلم؛ تعقيد إدارة الحالةمعظم الفرق على النطاق
سكربتات أمريةمألوفة؛ مرنة للحالات لمرة واحدةليست بلا تأثر بالتكرار؛ صعبة التدقيق والتكرارحالات ضيقة وانتقالية
صور ذهبية غير قابلة للتغييربلا انجراف؛ تراجع تافهعبء خط أنابيب بناء الصورةأساطيل تحتاج اتساقًا
إدارة تهيئة قابلة للتغييرتحكم مستمر دقيقمخاطرة انجراف؛ تقارب أبطأمضيفون قدامى أو طويلو العمر
GitOps (مبني على السحب)مسار تدقيق قوي؛ ذاتي الإصلاحيتطلب وكيلًا داخل العنقود وانضباط Gitكوبرنيتس والسحابة الأصلية
السياسة كشيفرةحواجز حماية آلية وموحَّدةجهد تأليف سياسة مسبقبيئات منظَّمة

التوتر الرئيسي بين المرونة والتحكم. تشعر النهج اليدوية والأمرية أسرع لتغيير واحد، لكنها تراكم عدم اتساق مخفيًا يصبح مُعطِّلًا على النطاق. البنية التحتية الإعلانية، غير القابلة للتغيير، والمحكومة بالسياسة تطلب استثمارًا مسبقًا أكبر وتحولًا ثقافيًا حقيقيًا، لأن على المهندسين التوقف عن إجراء تغييرات وحدة تحكم سريعة، لكنها تسدد ذلك الاستثمار أضعافًا في الموثوقية، وقابلية التدقيق، والقدرة على إعادة بناء أي شيء عند الطلب.

أسئلة للنقاش مع فريقك

  1. من يملك مكتبة الوحدات المشتركة، وكيف يصل تحسين في وحدة لكل فريق يستخدمها؟ تسدد الوحدات ثمرتها فقط إن انتشرت الإصلاحات والافتراضيات المُصلَّبة، وذلك يتطلب ملكية واضحة وترقيمًا حقيقيًا بإصدار، لا مجلدًا ينسخ منه الجميع. قرر من يصون وحدات الشبكة الممتثلة وقاعدة البيانات المُصلَّبة، كيف ترقّمها بإصدار (ترقيم دلالي بسجل تغييرات)، وكيف تسحب الفرق الترقيات بلا هرولة. على النطاق هذا الفرق بين إصلاح خطأ تهيئة مرة واحدة ومطاردته عبر ألف مورد مُحرَّر يدويًا. أحضر دليلًا: كم نسخة متمايزة من النمط نفسه توجد اليوم، كم يستغرق إصلاح أمان للوصول لكل بيئة، وهل تثبّت الفرق إصدارات الوحدة أو تتركها عائمة. إن لم يستطع ترقيع حرج الوصول للملكية كلها خلال أيام، نمطيتك تجميلية.

  2. ما وتيرة كشف انجرافك، وماذا يحدث فعليًا عندما يُوجَد الانجراف؟ الانجراف هو البيئة الجارية تنحرف بهدوء عن حالتها المُعلَنة، عادة من تغيير وحدة تحكم طارئ، والتسامح معه يحوّل شيفرتك لخيال. قرر كم مرة تقارن الحالة الفعلية بالمُعلَنة (ليليًا افتراضي معقول) والأهم، قرر الاستجابة: طابق بتحديث الشيفرة وإعادة التطبيق، أبدًا بترك التغيير اليدوي في مكانه. في الإعدادات المنظَّمة هذا متطلب ضابط، لأن المدققين يحتاجون الحالة المُعلَنة لتطابق الواقع باستمرار. أحضر أرقامك الحالية: كم موردًا ينجرف كل أسبوع، كم يبقى منجرفًا، وهل أحدهم مسؤول عن إغلاقها. عامل كل انجراف كعيب بمالك، أو يتآكل ضمان مصدر الحقيقة حتى لا يثق أحد بالشيفرة.

  3. هل انتقلت لـGitOps والمطابقة المبنية على السحب، أم لا يزال نظام خارجي يحمل بيانات اعتماد دائمة لتغيير الإنتاج؟ في نموذج السحب يطابق وكيل داخل البيئة المستهدفة باستمرار النظام الجاري مع Git، ما يزيل الحاجة لأي نظام خارجي ليحمل وصول كتابة، ويعيد تأكيد الحالة المرغوبة بحيث يصحح الانجراف نفسه. هذا موقف أمان وتدقيق قوي، لأن كل تغيير التزام ولا يحتاج مشغّل بيانات اعتماد إنتاج دائمة. التكلفة حقيقية: وكيل داخل العنقود ليعمل وانضباط Git صارم، فزنها مقابل أتمتتك المبنية على الدفع الحالية. أحضر قائمة من ومن يستطيع تغيير الإنتاج مباشرة اليوم، وأي مسار تدقيق تترك تلك التغييرات. لكوبرنيتس والحاويات عالية الضمان هذا التحول عادة يستحق العناء؛ لحفنة موارد ثابتة قد يكون مبالغًا فيه.

  4. كيف تُخزَّن حالة بنيتك التحتية، وتُقفَل، ويُتحكَّم بالوصول إليها، وماذا يحدث اليوم الذي تُفسَد فيه أو تُفقَد؟ الحالة هي الخريطة بين شيفرتك والموارد الحقيقية، فملف حالة مفقود أو تالف يمكن أن يترك أداة عمياء عن موارد أنشأتها ويغري أحدهم بإعادة تطبيق مدمِّرة. لفريق كبير تتضاعف المخاطرة، لأن مهندسين كثيرين يطبّقون مقابل حالة مشتركة يحتاجون خلفية بعيدة، ومشفَّرة، ومقفَلة بحيث لا تستطيع تشغيلات متزامنة تخريب بعضها. زِن راحة حالة كبيرة واحدة مقابل نطاق الانفجار الذي تخلقه، وفكّر في تقسيم الحالة لكل بيئة أو نطاق بحيث لا يستطيع خطأ واحد إسقاط كل شيء. أحضر الحقائق: أين تعيش الحالة اليوم، هل القفل مفروض، من يستطيع قراءتها (يمكن أن تحتوي أسرارًا)، وهل تمرنت على استعادة أبدًا. في إعدادات المؤسسة والحكومة، عامل خلفية الحالة كأصل حساس ومتحكَّم بالوصول إليه بنسخة احتياطية خاصة، وسجل تدقيق، ودليل تشغيل استعادة، لأن فقدانها فقدان لسجلك بما يوجد.

  5. عندما تتطلب حالة طوارئ حقيقية تغييرًا يدويًا، ما مسار كسر الزجاج المُصرَّح به، وكيف يُطوى ذلك التغيير عودة للشيفرة؟ تواجه كل ممارسة بنية تحتية كشيفرة ناضجة في النهاية حادثة الثالثة صباحًا حيث انتظار خط أنابيب غير مقبول، والسؤال الصادق ليس هل تحدث تغييرات يدوية أبدًا بل كيف تحويها. قرر مسبقًا من يستطيع تجاوز خط الأنابيب، وماذا يُسمَح له لمسه، كيف يُسجَّل الفعل، والموعد النهائي الذي يجب فيه طي التغيير للشيفرة أو التراجع عنه. بلا ذلك الاتفاق، يصبح استثناء الطوارئ العادة اليومية بهدوء وتعود ClickOps من الباب الخلفي. أحضر دليلًا: كم تغييرًا خارج النطاق حدث الربع الماضي، كم بقي كل واحد بلا مطابقة، وهل التقطها كشف الانجراف فعليًا. للهيئات المنظَّمة والعامة، إجراء كسر زجاج موثَّق بتسجيل آلي غالبًا متطلب ضابط، لأن المدققين يتوقعون أن الطوارئ ممكنة وأن كل واحدة تترك أثرًا وتعيد النظام لحالته المُعلَنة.

  6. كم من خط أساس أمانك وامتثالك مُعبَّر عنه كسياسة تحجب تلقائيًا تغييرًا سيئًا، مقابل قواعد تعيش في مستند وتعتمد على تذكر أحدهم إياها؟ حواجز الحماية المكتوبة كنثر في ويكي تُنتَهَك روتينيًا، لأنها تعتمد على قراءة كل مهندس لها وتطبيقها تحت ضغط الموعد النهائي، بينما القواعد نفسها مُعبَّرة كسياسة كشيفرة ترفض تغييرًا غير ممتثل قبل تزويده أبدًا. لمؤسسة كبيرة هذه الطريقة الوحيدة التي يتوسع بها قصد فريق أمان لآلاف التغييرات بلا أن يصبح اختناق مراجعة. زِن التكلفة المسبقة لتأليف السياسات وصيانتها مقابل التكلفة المتكررة للمراجعة اليدوية والمعالجة بعد وقوعها، وقرر أي الضوابط (التشفير، والمناطق المعتمَدة، والوسوم الإلزامية، وعدم التعرض العام) غير قابلة للتفاوض بما يكفي لفرضها كبوابات صلبة. أحضر قائمة قواعد خط أساسك الحالية وعلّم أيها آلي مقابل استشاري، بالإضافة إلى كم مرة يُنتَهك كل واحد عمليًا. في سياقات المؤسسة والحكومة، تحوّل السياسة الآلية تدقيقًا من أسابيع جمع دليل يدوي إلى استعلام مقابل ضوابط مفروضة، وتحوّل الامتثال من الكشف إلى المنع.

المنظور القطاعي

الشركة الناشئة. السرعة تفوز، فضع مكدسك كله في مستودع إعلاني واحد (Terraform افتراضي شائع)، أبقِ الحالة في خلفية مشفَّرة مُدارة، ووجّه كل تغيير عبر طلب سحب حتى بفريق من ثلاثة. تخطَّ جهاز المنصة الثقيل: لا فريق وحدات مركزي، لا محرك سياسة بعد، فقط التحكم بالإصدار والانضباط بألا تنقر أبدًا في وحدة التحكم. هذا وحده يمنحك بيئات قابلة لإعادة الإنتاج تستطيع هدمها لتوفير المال وإعادة بنائها للعرض التالي.

الشركة الصغيرة. بلا أخصائي منصة مخصص، اتكئ على الخدمات المُدارة وأي بنية تحتية كشيفرة يدعمها مزود سحابتك أو موردك بالفعل بدل إقامة أدوات مخصصة لا تستطيع صيانتها. فضّل شراء منصة مستضافة تُدار افتراضياتها المعقولة (التشفير، والنسخ الاحتياطي، والترقيع) لك على بناء خط أنابيب صور ذهبية لا تملك من يشغّله. أطّر الهدف ضيقًا: ضع حفنة مواردك الحرجة في شيفرة بحيث تستطيع إعادة بنائها بعد فشل أو رحيل متعاقد.

المؤسسة الكبرى. المشكلة الجوهرية الاتساق عبر فرق كثيرة، وحسابات، ومناطق، فاستثمر في مكتبة وحدات مشتركة مُرقَّمة بإصدار، وحالة بعيدة ومقفَلة، وسياسة كشيفرة مفروضة في خط الأنابيب. ينشر فريق منصة مركزي وحدات مُصلَّبة وحواجز حماية بينما تخدم فرق المنتج نفسها ذاتيًا ضمنها، ويعمل كشف الانجراف باستمرار بحيث تبقى آلاف الموارد في حالة معروفة. خصص ميزانية للتكلفة المستمرة لصيانة الوحدات والسياسات، لأن قيمتها تأتي من إصلاح أو افتراضي مُصلَّب ينتشر في كل مكان دفعة واحدة.

الحكومة. تدفعك قواعد الشراء، والاعتماد، والمساءلة العامة نحو بنية تحتية غير قابلة للتغيير، والتزامات موقَّعة، ومطابقة GitOps داخل حاوية معتمَدة، بحيث لا يحمل مشغّل بيانات اعتماد دائمة لتغيير الإنتاج. رمّز خط أساس الأمان المطلوب في صور ذهبية وسياسة كشيفرة، ودع تاريخ الالتزامات يخدم كدليل تدقيق واضح التلاعب ومتاح باستمرار. فضّل أدوات مفتوحة وقابلة للنقل على صيغ ملكية تحبسك، واجعل إجراء كسر الزجاج وتسجيله صريحين بحيث لا تزال التغييرات الطارئة تلبي متطلبات التحكم بالتهيئة.

أمثلة

الشركة الناشئة. تعرّف شركة ناشئة من خمسة أشخاص إعداد AWS كله، أي VPC، وقاعدة البيانات، وخدمة الحاويات، في مستودع Terraform واحد بحالة محفوظة في خلفية S3 مشفَّرة وقفل عبر DynamoDB. يمر كل تغيير عبر طلب سحب، بحيث يستطيع حتى مهندس مناوبة منفرد رؤية بالضبط ماذا سيتغير قبل تشغيل apply. عندما يحتاجون بيئة تجهيز طازجة لعرض كبير، ينسخون وحدة صغيرة ويقيمونها خلال دقائق، ويهدمونها بالسرعة نفسها لإبقاء فاتورة السحابة منخفضة.

المؤسسة الكبرى. يدير بائع تجزئة متعدد الجنسيات بنية تحتية عبر حسابات ومناطق سحابية كثيرة. ينشر فريق منصة مركزي وحدات Terraform مُرقَّمة بإصدار لشبكات ممتثلة، وقواعد بيانات، وسقالات خدمة، ويفرض سياسات OPA ترفض أي مورد يفتقد تشفيرًا أو وسوم تخصيص تكلفة. تزوّد فرق المنتج بيئاتها الخاصة بخدمة ذاتية، لكن كل تغيير يتدفق عبر خط الأنابيب، حيث تُفحَص السياسة آليًا. يعمل كشف الانجراف ليليًا ويفتح تذاكر لأي تغيير يدوي، مبقيًا آلاف الموارد باستمرار في حالة معروفة وممتثلة.

الحكومة. تبني وكالة دفاع تعمل في بيئة عالية الضمان صورًا ذهبية مُصلَّبة تضمّن خط أساس الأمان المطلوب، وتنشر فقط نسخًا غير قابلة للتغيير من تلك الصور. تُعلَن كل البنية التحتية في Git ويطابقها وكيل GitOps داخل الحاوية المعتمَدة، بحيث لا يحمل مشغّل بيانات اعتماد دائمة لتغيير الإنتاج مباشرة. كل تغيير التزام موقَّع. هذا يمنح المدققين تاريخًا كاملًا وواضح التلاعب ويلبي متطلبات المراقبة المستمرة والتحكم بالتهيئة بلا جمع دليل يدوي.

حالة العمل: الدوافع والعائد على الاستثمار وتكلفة الملكية الإجمالية

يأتي العائد على الاستثمار للبنية التحتية كشيفرة من السرعة، والموثوقية، وتقليل المخاطرة. بيئات كانت تستغرق أسابيع من تزويد يدوي مدفوع بتذاكر يمكن إنشاؤها خلال دقائق، ما يحرر المهندسين ويسرّع المشاريع. قابلية إعادة الإنتاج تقطع وقت الاستعادة بعد الإخفاقات، لأن أي بيئة يمكن إعادة بنائها من الشيفرة. فرض السياسة الآلي يخفض تكرار وتكلفة حوادث الأمان وملاحظات التدقيق، ما يمكن أن يكون كبيرًا للمؤسسات المنظَّمة.

في دفتر تكلفة الملكية الإجمالية، تشمل تكاليف التبني الأدوات، والتدريب، وبناء مكتبة وحدات وسياسة، والانضباط للتوقف عن إجراء تغييرات يدوية. تكلفة عدم التبني أشد وتتراكم مع الزمن: بنية تحتية ندفة ثلج لا يستطيع أحد إعادة بنائها، تزويد بطيء ومعرَّض للخطأ، تهيئات أمان خاطئة تؤدي لانتهاكات، وتدقيقات تستهلك أسابيع من الجهد اليدوي. للقيادة، أطّر البنية التحتية كشيفرة كتحويل البنية التحتية من خصم غير مُدار إلى أصل محكوم وقابل لإعادة الإنتاج، وكالآلية التي تجعل الأمان والامتثال آليين بدل طموحين.

الأنماط المضادة والمزالق

  • ClickOps في الإنتاج. إجراء تغييرات يدويًا في وحدة التحكم يضمن الانجراف ويدمر قابلية إعادة الإنتاج.
  • أسرار في الشيفرة. ترميز بيانات اعتماد بشكل ثابت في ملفات التعريف يسربها لتاريخ الإصدار والحالة.
  • تعريفات ضخمة وغير مُنمَّطة. تهيئة واحدة هائلة لا يجرؤ أحد على تغييرها تصبح هشة كالإعداد اليدوي الذي استبدلته.
  • حالة غير مُدارة. ملفات حالة محلية أو غير مقفَلة تؤدي للفساد والبنية التحتية المفقودة.
  • انجراف مُتسامَح معه. ترك تغييرات يدوية في مكانها يآكل ضمان مصدر الحقيقة حتى تصبح الشيفرة خيالًا.
  • السياسة كتوثيق. قواعد تعيش في ويكي بدل فحص آلي تُنتَهك روتينيًا.
  • انتشار النسخ واللصق. تكرار التهيئة عبر الفرق يعني أن الإصلاحات والتحسينات لا تنتشر أبدًا.

نموذج النضج

المستوى 1: الشروع. تُزوَّد البنية التحتية يدويًا عبر وحدة التحكم وسكربتات ارتجالية. البيئات غير متسقة، وغير موثَّقة، ولا يمكن إعادة إنتاجها بموثوقية، والتعافي من فشل بطيء وغير مؤكَّد.

المستوى 2: التطوير. بعض البنية التحتية مُقنَّنة، لكن الممارسات تتنوع حسب الفريق. إدارة الحالة غير متسقة، الانجراف شائع، تتسرب الأسرار أحيانًا للتعريفات، وتُفرَض السياسة، إن وُجِدت، عبر المراجعة اليدوية.

المستوى 3: التوحيد القياسي. البنية التحتية الإعلانية كشيفرة هي المعيار الموثَّق عبر المؤسسة، مبنية من وحدات مشتركة مُرقَّمة بإصدار بحالة مُدارة، بعيدة، ومقفَلة. السياسة كشيفرة تفرض حواجز الحماية في خط الأنابيب، تُشار الأسرار من مدير مخصص، ويعمل كشف الانجراف على وتيرة منتظمة.

المستوى 4: الإدارة. تُقاس الممارسة مقابل خطوط أساس. تتتبع معدل الانجراف ومتوسط وقت المطابقة، وتبني إصدار الوحدة عبر الفرق، وانتهاكات السياسة المحجوبة مقابل المفلوتة، ومهلة تنفيذ التزويد، وحصة الموارد الموجودة فعليًا تحت الشيفرة. تحجب هذه المقاييس التغييرات وتوجّه أين تستثمر، بحيث تستند القرارات على الدليل لا الحكاية.

المستوى 5: التنسيق الشامل. البنية التحتية غير قابلة للتغيير ومدفوعة بـGitOps، ذاتية الإصلاح ضد الانجراف، بدليل امتثال مُنتَج آليًا. تتحسن مكتبة الوحدات والسياسة باستمرار من الاستخدام الحقيقي والحوادث، وممارسة البنية التحتية مدمَجة مع تخطيط الأمان، والتكلفة، والتسليم بحيث تتكيف الملكية كلها مع تحول المتطلبات.

أفكار للنقاش

  • أين ينبغي أن يجلس الخط بين وحدات محكومة مركزيًا واستقلالية الفريق لتعريف بنية تحتية مخصصة؟
  • كيف تعالج التغيير الطارئ الحقيقي الذي يجب أن يتجاوز خط الأنابيب، بلا تطبيع ClickOps؟
  • ما الاستراتيجية الصحيحة لإدارة وتأمين الحالة عبر حسابات وفرق كثيرة؟
  • متى لا تزال إدارة التهيئة القابلة للتغيير مبررة مقابل بنية تحتية غير قابلة للتغيير كليًا؟
  • كيف تبقي مكتبة السياسة كشيفرة متوافقة مع متطلبات أمان وتنظيم متطورة؟
  • كيف يبدو مسار ترحيل واقعي للبنية التحتية القديمة التي تسبق البنية التحتية كشيفرة؟

النقاط الرئيسية

  • عرّف البنية التحتية إعلانيًا، رقّمها بإصدار، وعاملها كشيفرة قابلة للمراجعة وإعادة الإنتاج.
  • ابنِ من وحدات صغيرة ومُرقَّمة بإصدار لنشر افتراضيات جيدة وإزالة التكرار.
  • فضّل البنية التحتية غير القابلة للتغيير والصور الذهبية لإلغاء الانجراف وتبسيط التراجع.
  • أدِر الحالة عمدًا وأبقِ الأسرار خارج التعريفات.
  • تبنَّ GitOps لمسار تدقيق قوي ومطابقة ذاتية الإصلاح.
  • افرض حواجز حماية بالسياسة كشيفرة بحيث يُمنَع الامتثال إلى الوجود، لا يُدقَّق بعد وقوعه.

المراجع والقراءات الإضافية

  • Kief Morris, Infrastructure as Code: Dynamic Systems for the Cloud Age.
  • Yevgeniy Brikman, Terraform: Up & Running.
  • Betsy Beyer, Chris Jones, Jennifer Petoff, and Niall Richard Murphy (eds.), Site Reliability Engineering.
  • Gene Kim, Jez Humble, Patrick Debois, and John Willis, The DevOps Handbook.
  • Weaveworks, “GitOps” foundational writings (Alexis Richardson et al.).
  • Open Policy Agent documentation and the Rego policy language.
  • NIST Special Publication 800-53, security and privacy controls (configuration management family).