YAML هي لغة تسلسل البيانات المستخدمة على نطاق واسع والقابلة للقراءة البشرية وتستخدم عادةً لكتابة ملفات التكوين.
وتوفر تنسيقًا موحدًا لتمثيل البيانات المنظمة بطريقة يسهل على البشر فهمها وتفسيرها من خلال الآلات. ”YAML“ هو اختصار للعبارة "YAML Ain't Markup Language" أو "Yet Another Markup Language". والغرض الأساسي من البداية هو التأكيد على أن اللغة مخصصة للبيانات وليس للمستندات.
صُممت YAML في الأساس مع مراعاة البساطة وسهولة القراءة. وتستخدم تركيبة لغوية واضحة وبسيطة، قائمة على المسافة البادئة وأزواج المفتاح-القيمة والقواعد البديهية. يسمح هذا النهج للمطورين والمستخدمين بالتعبير عن أنظمة البيانات المعقدة بتنسيق يشبه اللغة الطبيعية ويسهل فهمه في لمح البصر.
إن التركيز على سهولة القراءة البشرية تجعل YAML مناسبة بشكل خاص للتطبيقات المختلفة، بما في ذلك ملفات التكوين (config) وتبادل البيانات بين الأنظمة المختلفة. إذ يعزز نظامها المباشر والبديهي من قابليتها للاستخدام في مختلف المجالات، ما يمكّن المستخدمين من تحديد البيانات وتنظيمها بطريقة واضحة ومفهومة. تدعم YAML أحرف Unicode، ما يسمح بتمثيل مجموعة واسعة من الأحرف والرموز من لغات ومجموعات أحرف مختلفة. وتكون نتائج YAML صالحة في المواصفات من دون أخطاء في بناء الجملة.
تُعد قدرة YAML على التكيف خيارًا متعدد الاستخدامات عبر مجموعة واسعة من التطبيقات. فبدءًا من إدارة التكوين ووصولاً إلى تبادل البيانات والأتمتة، تمتد قابلية استخدام YAML إلى مجالات مختلفة، حيث توفر وسيلة منظمة يسهل الوصول إليها لتمثيل البيانات وإدارتها.
النشرة الإخبارية الخاصة بالمجال
ابقَ على اطلاع دومًا بأهم—اتجاهات المجال وأكثرها إثارة للفضول—بشأن الذكاء الاصطناعي والأتمتة والبيانات وغيرها الكثير مع نشرة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
سيتم تسليم اشتراكك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك هنا. راجع بيان خصوصية IBM لمزيد من المعلومات.
ثمة العديد من السمات والعناصر الرئيسية في بناء جملة YAML. ومن الضروري فهم بنية وأنواع البيانات والقواعد الاصطلاحية المستخدمة في ملفات YAML لضمان تمثيل البيانات بكفاءة وسهولة قراءتها.
يتم تمثيل القواميس في YAML على شكل تخطيطات. وهي عبارة عن مجموعة من أزواج المفتاح-القيمة حيث يرتبط كل مفتاح بقيمة. وتشبه بنية البيانات هذه مفهوم القواميس أو الخرائط الموجودة في لغات البرمجة المختلفة.
تعتمد تركيب جملة YAML بشكل كبير على المسافة البادئة وعدد المسافات لتمثيل بنية البيانات. ويتم استخدام المسافات - وليست أحرف الجدولة المحظورة في YAML - في YAML للإشارة إلى التسلسل الهرمي والتداخل. ونظرًا لاعتماد YAML على المسافة البادئة في النظام، فإن الاتساق في جميع أنحاء مستند YAML مهم للغاية.
تمثّل الخطوط الجديدة فواصل الأسطر، أو نهاية السطر في تنسيق YAML المستخدم للفصل بين العناصر المختلفة.
بالنسبة إلى معظم الكميات القياسية في YAML، فلا حاجة لعلامات الاقتباس. ومع ذلك، قد تكون علامات التنصيص ضرورية لتجنب الالتباس في سيناريوهات معينة، كما هو الحال حول سلسلة نصية تحتوي على أحرف خاصة ويمكن أن يُساء فهمها مع بناء جملة YAML. أو إذا كانت لديك سلسلة تتكون من ”صواب“ فقط ولا تريد تحويلها إلى قيمة منطقية، على سبيل المثال. في مثل هذه الحالات، يمكن استخدام علامات الاقتباس المفردة أو المزدوجة، بحسب البيانات والقيمة التي يتم التعبير عنها.
تستخدم YAML تنسيقًا مباشرًا من أزواج المفاتيح والقيم مفصولة بنقطتين لتمثيل ارتباطات البيانات.
على سبيل المثال:
المهنة : معلم
تسمح لك التسلسلات (المصفوفات أو القوائم بلغات أخرى) بتعريف قائمة من العناصر في YAML. تفصل المسافة البادئة التسلسل عن الأصل، ويبدأ كل عنصر من عناصر القائمة بشرطة (-) متبوعة بمسافة. يجب وضع مسافة بادئة لجميع العناصر في التسلسل بالمقدار نفسه.
على سبيل المثال:
الفواكه:
- تفاحة
- برتقال
- كُمَّثرَى
يمكن أيضًا تمثيل التسلسلات في تسلسل تدفق باستخدام الأقواس والفواصل.1
الفواكه: [تفاح، برتقال، كمثرى]
تدعم YAML أنواع بيانات مختلفة مثل السلاسل والأعداد الصحيحة والقيم العائمة والقيم المنطقية والقيم الفارغة. وتتيح أنواع البيانات هذه مرونة في تمثيل أنواع مختلفة من المعلومات.
تدعم YAML التعليقات التي يُشار إليها بالرمز #. وتساعد التعليقات على إضافة تفسيرات أو ملاحظات أو سياق داخل ملفات YAML.
تدعم YAML السلاسل متعددة الأسطر، ما يسمح للنص أن يمتد على عدة أسطر من دون الحاجة إلى فواصل أسطر صريحة. وتُعدّ السلاسل متعددة الأسطر مفيدة لتضمين الكتل النصية في مستندات YAML.
تستخدم ملفات YAML عادة امتدادات مثل .yaml أو .yml. تضمن الاتفاقيات في تسمية ملفات YAML وهيكلتها الاتساق والتفسير الصحيح للبيانات. يمكن أيضًا قراءة ملفات YAML في Perl وPython.
ثمة أوجه شبه بين YAML وJSON في تمثيل البيانات، إلا أن YAML تتميز بسهولة قراءتها وتعبيرها ودعمها لأنظمة البيانات المعقدة. YAML هي مجموعة فائقة من JSON، بمعنى أنها تحتوي على جميع ميزات JSON إلى جانب ميزات وأوامر موسعة أخرى.
يستخدم JSON (ترميز الكائنات باستخدام JavaScript) تركيب جملة أكثر وضوحًا مع أقواس {} وأقواس [] وفواصل. وعلى الرغم من أن صيغة JSON موجزة ومستخدمة على نطاق واسع، إلا أن صيغة JSON قد تصبح أقل قابلية للقراءة، خاصةً في مجموعات البيانات الأكبر حجمًا. إن دعم JSON لأنظمة البيانات محدود نسبيًا، حيث يضم بشكل أساسي المصفوفات والكائنات والقيم القياسية.
غالبًا ما يتم تفضيل JSON لتوافقه المتبادل لتبادل البيانات في تطبيقات الويب وواجهات برمجة التطبيقات، بينما يستخدم YAML بشكل أكثر شيوعًا في السيناريوهات التي تتطلب سهولة القراءة البشرية وأنظمة بيانات أكثر تعقيدًا، مثل ملفات التكوين وأنواع معينة من توثيق البيانات وتبادلها..2
وعند مقارنة YAML بـ XML، تقدم YAML بديلاً أكثر إيجازًا وملائمًا للبشر، مع التركيز على البساطة وسهولة الفهم في تمثيل البيانات وتبادلها. فهناك اختلافات جوهرية بين YAML وXML في تركيب الجمل والغرض منها.
يتميز XML بأنه منظم للغاية، ويعتمد على علامات افتتاح وإغلاق واضحة، ما يجعله مربكًا بعض الشيء. وفي المقابل، تستخدم YAML تركيب أبسط وأشبه باللغة الطبيعية، مع التركيز على سهولة القراءة من خلال المسافة البادئة وأزواج المفتاح-القيمة من دون علامات إغلاق صريحة.
يمكن استخدام YAML مع جميع لغات البرمجة وغالبًا ما يُستخدم لملفات التكوين، إلى جانب تبادل البيانات والتوثيق. كما يعزز تنسيقه القابل للقراءة البشرية من وضوح الوثائق.
تؤدي YAML دورًا محوريًا في عمليات التطوير وتكون مفيدة في الأتمتة والتنسيق وإدارة التكوين. وفي إطار ممارسات عمليات التطوير، تُستخدم ملفات YAML كمخططات لتحديد تسلسل الإجراءات والتكوينات بتنسيق يسهل فهمه. تُستخدم هذه الملفات لتحديد الخطوات والإجراءات المطلوبة للأتمتة بدقة، ما يسمح بتمثيل واضح وموجز لسير العمل المعقد.
تستخدم YAML لتعريف البنية الأساسية كرمز، وهو استخدام التعليمات البرمجية بدلاً من العمليات اليدوية لتحديد البنية الأساسية لتقنية المعلومات وإدارتها. تتيح البنية الأساسية كرمز تكوين بنية أساسية لتقنية المعلومات أكثر كفاءة واتساقًا. ويمكن استخدام YAML لتعريف التكوين المطلوب للبنية الأساسية مثل الأجهزة الافتراضية والشبكات والتخزين الافتراضي، ولوصف العلاقة بين مكونات البنية الأساسية لتقنية المعلومات.
تستخدم YAML لإنشاء ملفات نشر التطبيقات التي تحدد تكوينات التطبيق والتبعيات وحدود الموارد وغيرها من المعلومات المهمة لنشر التطبيق وأدائه بكفاءة. وتساعد ملفات YAML في تقليل أخطاء النشر وزيادة سرعة تسليم التطبيق من خلال التحكم في الإصدار والأتمتة.
يمكن أن تؤدي YAML دورًا مهمًا في مسارات التكامل المستمر والتسليم المستمر(CI / CD)، وهو سير عمل مرن مهم في عمليات التطوير. وكما هو الحال بالنسبة إلى تكوين البنية الأساسية وعمليات النشر، تُستخدم ملفات YAML لتحديد خطوات وأهداف المسارات، وتساعد في نهاية المطاف على أتمتة عملية التكامل المستمر والتسليم المستمر.
تستفيد العديد من الأدوات والبرامج التي تستخدمها فرق عمليات التطوير من YAML، بما في ذلك:
Ansible هو تطبيق برامج أتمتة مفتوح المصدر يستخدم ملفات بتنسيق YAML، والمعروفة باسم الأدلة، لتحديد المهام وإجراءات الأتمتة. تسمح قوالب YAML للمستخدمين ببرمجة أتمتة المهام المتكررة من دون معرفة لغة برمجة متقدمة.3
باستخدام IBM watsonx™ Code Assistant for Red Hat® Ansible® Lightspeed، يمكن للمستخدمين كتابة مهمة بلغة إنجليزية بسيطة والحصول على توصيات تعليمات YAML البرمجية لمهام الأتمتة. ويتم استخدام توصيات التعليمات البرمجية هذه لإنشاء أدلة Ansible3.
Kubernetes هي منصة مفتوحة المصدر لتنسيق الحاويات تُستخدم لأتمتة نشر التطبيقات الموضوعة في حاويات وتوسيع نطاقها وإدارتها. وتعمل Kubernetes على أساس ”الحالات“، في محاولة للوصول إلى الحالة المستهدفة من الحالة الحالية بناءً على تعليمات محددة. يمكن استخدام ملفات YAML لإنشاء موارد Kubernetes مثل الحجيرات والكائنات وعمليات النشر، وكذلك لتحديد الحالة المطلوبة لكائنات Kubernetes وتوصيلها.
GitHub هي منصة قائمة على الويب للتحكم في الإصدار والتعاون في تطوير البرامج تتضمن YAML لتحديد سير العمل. وتمكّن التكوينات القائمة على YAML في مستودعات GitHub من إعداد مهام سير العمل المؤتمتة للتكامل المستمر وإدارة المشاريع.
Docker Compose هي أداة لتحديد وتشغيل تطبيقات Docker متعددة الحاويات.4 وتُستخدم ملفات YAML في Docker Compose لتكوين خدمات التطبيق.
تُعد YAML لغة مستقلة، ما يجعلها مثالية لمشاركة البيانات عبر اللغات. فبمجرد تحديد ملف YAML، يمكن تنفيذه بلغات أخرى مثل Python أو Ruby.
ملفات السجل هي ملفات بيانات نصية يُنشئها الحاسوب وتحتوي على معلومات حول العمليات والأنماط داخل التطبيقات والأنظمة والخوادم وغيرها من موارد أو أجهزة تقنية المعلومات. وتُستخدم لقياس أداء الموارد وتؤدي دورًا حاسمًا في قابلية الملاحظة للنظام. تُستخدم YAML لإنشاء ملفات سجلات بديهية وواضحة نظرًا لبساطتها.
YAML اصبحت لغة تسلسل بيانات شائعة لعدة أسباب، منها بساطتها وتوافقها وفائدتها في إنشاء ملفات التكوين.
يشبه تركيب الجمل في YAML تراكيب اللغة الطبيعية. إذ أن بساطتها وتصميمها البسيط يجعلها سهلة الفهم لكل من المطورين والمستخدمين غير التقنيين، ما يعزز الفهم ويقلل من الأخطاء.
تُعد YAML مناسبة تمامًا لملفات التكوين نظرًا لتنسيقها المنظم والقابل للقراءة. إذ تعمل على تبسيط عملية تحديد التكوينات باستخدام المسافة البادئة وأزواج المفتاح-القيمة، ما يجعلها قابلة للإدارة والتكيف مع مختلف تطبيقات البرامج.
تضمن طبيعة YAML المستقلة عن المنصة التوافق عبر الأنظمة ولغات البرمجة المختلفة، ما يسهل تبادل البيانات بسلاسة وقابلية التشغيل البيني بين مختلف المنصات والبيئات.
PyYAML هي مكتبة Python البارزة المستخدمة لتحليل ملفات YAML والعمل معها في التطبيقات المستندة إلى Python. وتوفر طرقًا لتحميل بيانات YAML إلى كائنات Python. تتيح PyYAML تحويل ملفات YAML إلى هياكل بيانات عملية داخل تطبيقات Python والعكس صحيح.5
تؤدي أدوات مثل PyYAML وغيرها من محللي ومدققي YAML، مثل yamllint و YAML Validator، دورًا مهمًا في الحفاظ على دقة ملفات YAML وصحتها وسلامتها. وتتضمن وظيفتها الأساسية التحقق من صحة تركيب جملة YAML، وتحديد الأخطاء وضمان الاتساق داخل مستندات YAML.
خدمة مُدارة بالكامل ومستأجر واحد لتطوير تطبيقات Java وتسليمها.
استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.
إن تطوير تطبيقات السحابة يعني البناء مرة واحدة، والتكرار بسرعة، والنشر في أي مكان.