مقارنة YAML
قارن بين ملفَّي YAML جنباً إلى جنب. تنسيق تلقائي، ترتيب المفاتيح، وتمييز الاختلافات.
طريقة الاستخدام
- Paste your first YAML into the left panel
- Paste your second YAML into the right panel
- Click Compare — both sides are auto-formatted and sorted
- Differences are highlighted: red for removed lines, green for added lines
الأسئلة الشائعة
-
Does key order matter?
No. Both YAML files are sorted by keys before comparing, so differences in key order are ignored.
-
Can I compare nested YAML?
Yes. Nested objects and lists are fully compared after formatting.
-
What do the colors mean?
Red lines exist only in the left input. Green lines exist only in the right input. Unchanged lines have no highlight.
-
Is my data sent to a server?
No. All processing happens entirely in your browser.
مقارنة YAML في بيئات Kubernetes وDevOps
في عالم DevOps الحديث، YAML هو اللغة التي تُعرَّف فيها البنية التحتية بأكملها. من تعريف Pods في Kubernetes إلى خطوط أنابيب CI/CD في GitHub Actions، كل شيء مكتوب بـ YAML. ولهذا السبب، أداة مقارنة YAML الصحيحة ليست ترفًا بل ضرورة.
لماذا تختلف مقارنة YAML عن مقارنة النص العادي؟
YAML، مثل JSON، له خصائص دلالية تُعقّد المقارنة النصية البسيطة:
ترتيب المفاتيح في Mappings
في YAML، الـ mappings (المكافئة للـ objects في JSON) غير مرتبة. هذان الملفان متطابقان دلاليًا:
# الملف الأول
name: Ahmed
age: 30
city: Cairo
# الملف الثاني
city: Cairo
name: Ahmed
age: 30
مقارنة نصية ستُظهرهما مختلفَين تمامًا. مقارنة YAML الحقيقية ستتعرف على التطابق.
التعليقات والمسافات البيضاء
YAML يدعم التعليقات. عند مقارنة ملفين، هل تريد معرفة تغييرات التعليقات أم تغييرات البيانات فقط؟ أداة مقارنة YAML الذكية تُركّز على البيانات.
حالات الاستخدام في Kubernetes
تتبع تغييرات Deployments
عند تحديث ملف deployment.yaml في Kubernetes، مقارنة النسخة القديمة بالجديدة يُوضّح:
- هل تغيّر عدد النسخ (replicas)؟
- هل تغيّر Docker image tag؟
- هل أُضيفت أو حُذفت متغيرات البيئة؟
- هل تغيّرت حدود الموارد (resource limits)?
هذا يُساعد في فهم ما تغيّر بالضبط قبل تطبيق التغيير على الـ cluster.
مقارنة بيئات مختلفة
في مشاريع Kubernetes، غالبًا تكون لديك ملفات YAML لبيئات مختلفة (development, staging, production). مقارنة ملفَّي بيئتين تُظهر الاختلافات المقصودة (مثل عدد النسخ والموارد) والاختلافات غير المقصودة (تكوينات يجب أن تكون متطابقة لكنها ليست كذلك).
Helm Chart Debugging
Helm يُنشئ ملفات YAML من قوالب. مقارنة مخرجات helm template قبل التغيير وبعده تُظهر بدقة ما الذي سيتغير في الـ cluster عند تطبيق إصدار Helm جديد.
مقارنة YAML في GitHub Actions وGitLab CI
ملفات خطوط أنابيب CI/CD تتطور مع الوقت. تحديث إصدار action أو إضافة خطوة جديدة أو تغيير متطلبات الفرع يستحق مراجعة دقيقة. مقارنة YAML تُعطيك:
- الخطوات المُضافة أو المحذوفة
- تغييرات في متطلبات التشغيل (trigger conditions)
- تغييرات في المتغيرات والأسرار المستخدمة
الفرق بين مقارنة YAML وDiff النصي التقليدي في DevOps
| الجانب | Diff نصي | YAML Diff |
|---|---|---|
| ترتيب المفاتيح | يُظهر اختلافًا | يتجاهله |
| المسافة البادئة | يُظهر اختلافًا | يُطبّع أولًا |
| التعليقات | يُظهر اختلافًا | يركّز على البيانات |
| YAML متعدد الوثائق | لا يفهمه | يعالجه صحيح |
أفضل الممارسات لإدارة YAML في بيئات DevOps
- استخدم أداة مقارنة YAML قبل كل
kubectl applyللتحقق من التغييرات المقصودة. - خزّن ملفات YAML في git وراجع الـ diff في كل pull request.
- اعتمد Kustomize أو Helm لإدارة الفروق بين البيئات بدلًا من نسخ الملفات.
- فعّل pre-commit hooks للتحقق من صحة YAML قبل كل commit لتجنب أخطاء المسافة البادئة في الإنتاج.