|  |
| --- |
| جزء من سلسلة مقالات حول |
| عملية تطوير البرمجيات |
|  |
| نشاطات رئيسة
* التطوير
* التحليل
* التصميم
* البناء
* الفحص
* تتبع الأخطاء
* النشر
* صيانة البرمجيات
 |
| نماذج العمل
* هندسة البرمجيات
* أجايل
* تصميم الغرفة النظيفة
* تطوير متكرر وتصاعدي
* صناعة النماذج الأولية
	+ النموذج اللولبي
	+ نموذج V
	+ نموذج الشلال
 |
| منهجيات التطوير وأُطُره
* تطوير البرمجيات المُتكيِّف  (ASD)
* ديف أوبس (DevOps)
* التوصيل المنضبط وفق أجايل  (DAD)
* طريقة تطوير النظم الديناميكية (DSDM)
* تطوير مقاد
	+ بالميزات  (FDD)
	+ بالنموذج  (MDD)
* التطوير المتكرر والتصاعدي (IID)
* كانبان (Kanban)
* تطوير برمجيات مرن
* إطار عمل حلول مايكروسوفت  (MSF)
* تطوير التطبيقات السريع (RAD)
* إطار عمل أجايل المُتدرِّج  (SAFe)
* سكرم (Scrum)
* سيمات (SEMAT)
* عملية البرمجة
	+ الفردية (PSP)
	+ الجماعية  (TSP)
* عملية التطوير المُوحَّدة (UP)
	+ لراشيونال (RUP)
* المفتوحة  (OpenUP)
* البرمجة القصوى (XP)
 |
| اختصاصات داعمة
* إدارة التهيئة
* التوثيق
* ضمان الجودة
* إدارة المشروع
* تصميم تجربة المستخدم
 |
| تطبيقات بالممارسة
* تطوير مقاد
	+ بالاختبار (TDD)
	+ باختبار القبول  (ATDD)
	+ بالسلوك (BDD)
* الإدماج المُستمِر (CI)
* تسليم مستمر (CD)
* تصميم مقاد بالنطاق (DDD)
* برمجة زوجية (PP)
* بالأمثلة (SBE)
* اجتماع وقوفاً
 |
| أدوات
* المُحوِّل
* المُنقِّح
* مُنمِّط
* باني واجهة المستخدم الرسومية
* أداة نمذجة
* بيئة التطوير المُتكامِلة (IDE)
* أتمتة بناء البرمجيات
* أتمتة إصدارات التطبيق
* البنية التحتية بصيغة نص برمجي
* الاختبار
 |
| منظَّمات ومعايير
* أدلة معرفية
	+ لإدارة المشاريع (BABOK)
	+ تحليل الأعمال (PMBOK)
	+ لهندسة البرمجيات  (SWEBOK)
* تكامل نموذج نضوج المقدرة (CMMI)
* جمعية معايير معهد مهندسي الكهرباء والإلكترونيات
* أيزو 9000 (ISO 9001)
* اللجنة التقنية المشتركة الأولى  (JTC 1)
* مكتبة البنية التحتية لتقانة المعلومات (ITIL)
* المجلس الهندسي للمتطلبات الدولية  (IREB)
 |
| شعار بوابة بوابة برمجيات |
| * ع
* ن
* ت
 |

**البنية التحتية بصيغة نص برمجي** أو **البنية التحتية المبرمجة** (بالإنجليزية: Infrastructure as code)‏ اختصاراً IaC، هي عملية إدارة وإمداد مراكز بيانات الحاسوب بواسطة ملفات التعريف المقروءة آلياً، بدلاً من تكوين الأجهزة المادية أو أدوات التكوين التفاعلية. تشتمل البنية التحتية لتكنولوجيا المعلومات المدارة بهذه الطريقة على المعدات المادية مثل الخوادم المعدنية الأساسية وكذلك على الآلات الافتراضية وموارد التكوين المرتبطة. قد تكون التعريفات موجودة في نظام ضبط الإصدارات. يمكن أن تستخدم البرامج النصية أو التعريفية بدلاً من العمليات اليدوية، ولكن غالبًا ما يُستخدم المصطلح للترويج للنهج التعريفية.

تروج نهج البنية التحتية كتعليمات برمجية للحوسبة السحابية، والتي تسوّق أحيانًا باسم البنية التحتية كخدمة (IaaS). تدعم البنية التحتية كتعليمات برمجية البنية التحتية كخدمة، ويجب عدم الخلط بينهما.

نظرة عامة
---------

نمت البنية التحتية كتعليمات برمجية استجابة للصعوبة الناجمة عن جزئين تكنولوجيين (الحوسبة الخدمية والجيل الثاني من أطر الويب). أدى إطلاق خدمات حوسبة السحابة المرنة من خدمات أمازون ويب عام 2006، ونسخة 1.0 من روبي أون ريلز قبل أشهر فقط إلى مشاكل واسعة النطاق للعديد من المؤسسات، وهي مشاكل لم تشهدها سوى الشركات الضخمة سابقًا.

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

القيمة المضافة والمزايا
-----------------------

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

أنواع النهج
-----------

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

الطرق
-----

هناك طريقتان للبنية التحتية كتعليمات برمجية: «الدفع» و«السحب». الفرق الرئيسي هو الأسلوب الذي تتعرف فيه الخوادم على كيفية تكوينها. في طريقة السحب، يسحب الخادم تكوينه من خادم التحكم. في طريقة الدفع، يدفع خادم التحكم التكوين إلى النظام الوجهة.

الأدوات
-------

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

### أتتمة التكوين المستمر

يمكن اعتبار جميع أدوات أتمتة التكوين المستمر (CCA) امتدادًا لأطر البنية التحتية التقليدية كتعليمات برمجية. وهي تدعم البنية التحتية كتعليمات برمجية لتغيير البنية الأساسية وتكوينها وأتمتتها، وتوفر الرؤية والكفاءة والمرونة لكيفية إدارة البنية التحتية. توفر هذه السمات الإضافية الأمان والتوافق على مستوى المؤسسات، وتجعل الشركات حريصة على تطبيق هذه الأنواع من الأدوات.

### المحتوى المجتمعي

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

العلاقة مع ديف أوبس
-------------------

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

المراجع
-------

1. ↑  Wittig, Andreas; Wittig, Michael (2016). *Amazon Web Services in Action*. Manning Press. p. 93. ISBN 978-1-61729-288-0.
2. ↑  Bower، Joseph L.؛ Christensen، Claton M. "Disruptive Technologies: Catching the Wave". *هارفارد بزنس ريفيو*.
3. ↑  Fletcher، Colin؛ Cosgrove، Terrence (26 أغسطس 2015). Innovation Insight for Continuous Configuration Automation Tools. *Gartner* (Report). مؤرشف من الأصل في 2019-12-11.
4. ↑  Riley، Chris (12 نوفمبر 2015). "Version Your Infrastructure". *DevOps.com*. مؤرشف من الأصل في 2016-03-22.
5. ↑  Phillips، Andrew (14 مايو 2015). "Moving from Infrastructure Automation to True DevOps". *DevOps.com*. مؤرشف من الأصل في 2016-10-17.
6. ↑  Loschwitz، Martin (14 نوفمبر 2014). "Choosing between the leading open source configuration managers". *Admin Network & Security*. Lawrence, KS USA: Linux New Media USA LLC. مؤرشف من الأصل في 2019-05-10.
7. ↑  Venezia، Paul (21 نوفمبر 2013). "Puppet vs. Chef vs. Ansible vs. Salt". *networkworld.com*. Network World. مؤرشف من الأصل في 2018-07-18. اطلع عليه بتاريخ 2015-12-14.
8. ↑  Introducing AWS CloudFormation نسخة محفوظة 5 أبريل 2016 على موقع واي باك مشين.
9. ↑  Chaganti، Ravikanth (5 يناير 2016). "DevOps, Infrastructure as Code, and PowerShell DSC: The Introduction". *PowerShell Magazine*. PowerShell Magazine. مؤرشف من الأصل في 2019-12-08. اطلع عليه بتاريخ 2016-01-11.
10. ↑  Infrastructure As Code: Fueling the Fire for Faster Application Delivery (Report). Forrester. مارس 2015.
11. ↑  Wurster، Laurie F.؛ Colville، Ronni J.؛ Height، Cameron؛ Tripathi، Somendra؛ Rastogi، Aditi. Emerging Technology Analysis: DevOps a Culture Shift, Not a Technology (Report). Gartner.

* أيقونة بوابةبوابة إلكترونيات
* أيقونة بوابةبوابة برمجيات
* أيقونة بوابةبوابة تقانة المعلومات
* أيقونة بوابةبوابة علم الحاسوب