أوبون: تسريع أداء Ansible


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


يتم تثبيت Operon بشكل منفصل وجنبا إلى جنب مع Ansible Engine: يمكنك تدريجيا نقل مشاريعك إليه أو استخدامه عند بدء التشغيل إذا كنت ترغب في ذلك.


يوجد أدناه رسم بياني للتشغيل لـ 416 مهمة common.yml من DebOps 0.7.2 تم نشرها عبر SSH:



مقارنة بتنظيف Ansible Operon ، فإنه يقلل من وقت التشغيل لكل عقدة بحوالي 60 ٪. ولكن مع الإطلاقات الجماعية ، تكون الميزة أكبر بكثير. ألقِ نظرة على كيفية زيادة وقت التشغيل (الأجهزة: 24 جيجا بايت ، Xeon E5530 بسعة 8 نواة ؛ تم نشرها على الأجهزة الظاهرية من Google Cloud عبر SSH في 18ms):



لكل تشغيل ، تم تنفيذ 416 مهمة على كل عقدة ، بما في ذلك عناصر الحلقة. في تشغيل 1024 عقدة ، تم إكمال 540 496 مهمة في 54 دقيقة ؛ الإنتاجية المتوسطة - 151 المهام / الثانية. القياس الأفقي واضح: تقريبًا 4x ، من 256 إلى 1024 عقدة.


تم إلغاء تشغيل Ansible تشغيل 256 عقدة: لفترة طويلة من الوقت لم تسفر عن نتائج ، كان لا بد من إعادة تشغيله عدة مرات ، مما يقلل من عدد العمليات من 40 إلى 10 حتى لا يستنفد Ansible موارد RAM الخاصة به. قد يكون الأمر ناجحًا مع 13 عملية ، ولكن كان علينا رفض المحاولات الإضافية: لقد أمضينا بالفعل يومين من وقت الماكينة.


للتشغيل النهائي ، قبل الإلغاء ، أتم Ansible 89٪ من المهام في 6 ساعات و 13 دقيقة:



تم نشر Operon على جميع العقد أثناء كل تشغيل متوازي. عند إجراء 1024 عملية على 8 مراكز ، فإنه يوفر زيادة ملحوظة بالكاد في الحمل ، وفي 24 مركزًا ، يرتفع عدد العمليات إلى 6144. إذا قمنا بتشغيل نفس العدد من المهام على هذا العدد من العقد ، مع 16 مركزًا فقط ، نعتقد أننا سنعمل أكمل ليس في 54 دقيقة ، ولكن في 27.


استهلاك الذاكرة يمكن التنبؤ به للغاية ومنفصل إلى حد كبير عن العمليات. مع 256 عملية ، يستهلك Operon أربعة أضعاف استهلاك Ansible بـ 10 ؛ في نفس الوقت ، يستهلك المعالج وقت المعالج 15 مرة على الأقل.



هنا ينحني المنحنى: يتم تشغيل Ansible على 64 عقدة مع 40 عملية ، بينما يعمل على 256 عقدة تعمل من 10. يستغرق Ansible يعمل على 256 عقدًا 1.6 جيجابت / عملية ؛ لذلك ، بغض النظر عن موارد ذاكرة الوصول العشوائي المتاحة ، تم إنشاء قيود شديدة على التوازي القابل للتحقيق.


يعد Operon خطوة جديدة في منهج التطوير الذي ظهر لأول مرة مع Mitogen لـ Ansible . إنه يرث التحسينات الهائلة في الأداء المنخفض المستوى الذي يحتاجه آلاف المستخدمين:




ليس فقط البرمجيات


الإنتاجية هي أحد الآثار الجانبية للتحول الثقافي نحو زيادة توجيه المستخدم وتوافقه واستيعاب التكاليف. لدينا ما نعرضه ، ولكن لكي تجرب طعم المنتج الجديد تمامًا ، يسرني أن أعلن أنه سيكون هناك ضمان لغوي قواعد اللعبة التي تمارسها مع التوافق المباشر - بالإضافة إلى استعادة بعض بنيات Ansible Engine القديمة.


تشمل :


- include: "i-will-always-work.yml" 

"مع" الحلقات


 - debug: msg={{item}} with_items: ["i", "will", "always", "work"] 

"إجراءات الاسكواش"


 - apt: name: "{{item}}" with_items: ["i", "will", "always", "work"] 

الواصلات في أسماء المجموعة


 $ cat hosts [i-will-always-work.us.mycorp.com] host1 

دمج التجزئة


 # I will always work [defaults] hash_behaviour = merge 

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


مع مرور الوقت ، يمتد هذا الضمان إلى دلالات المحرك وما بعده.


كيف تنضم؟


في البداية ، سيتم توزيع Operon بدعم من Network Genomics ، وهذه تجربة والتزام بخدمة لن تحصل عليها في أي مكان آخر. إذا كان فريقك عالقًا في فخ النشر أو تعبت من إصلاح التحديثات لسنوات ، فكر في طلب تقييم ، ودون إبطاء ، اكتب لي رسالة بريد إلكتروني - عن أي أسئلة أو نقاط غير مفهومة.


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


هل سيعمل الأوبرون على تحسين أداء ويندوز؟
نعم. إذا كانت لديك مشكلات في الأداء أثناء النشر على Windows ، فما عليك سوى متابعة ذلك الآن.


هل سيقوم Operon بتحسين أداء جهاز الشبكة؟
نعم. يقدم Operon إعادة تصميم معمارية تمتد إلى ما وراء طبقة النقل وهي قابلة للتطبيق على جميع أنواع الوصلات.


هو Operon ansible فرع؟
لا. يعد نظام التشغيل Operon عبارة عن إعادة كتابة تدريجية للمحرك ، مكون صغير من حوالي 60 ألف سطر من التعليمات البرمجية ، تم استبدال حوالي ربعها. يتضمن كل تثبيت Ansible حوالي 715 ألف خطًا ، يتم دعم الغالبية العظمى منها ، مثل Operon ، بشكل مستقل من قبل مجتمع Ansible الكبير.


هل سيتحسن محرك Ansible Anon؟
نعم. يشجع Operon بالفعل تحسينًا داخل Ansible Engine ، وبما أنه تحسين ، فهناك حافز لتقديم مساهمة ، لتصحيح الكود عند الضرورة.


هو Operon مجانية؟
نعم. يتم إصدار Operon بموجب نفس رخصة GPL كما Ansible ، ويمكنك استخدام الرمز بحرية بموجب هذا الترخيص.


هل يكسر Operon التوافق؟
لا. لا ينتهك نظام التشغيل التوافق مع مجموعة الوحدات النمطية القياسية أو واجهات المكونات الإضافية أو النظام البيئي Ansible المحيط به ، ولا يخطط لانتهاكه. التوافق - أولاً وقبل كل شيء: يجب ألا تتخلف عن التحسينات المستقبلية ، بالإضافة إلى نسيان التوافق مع الإصدارات السابقة ، مثل الاستقرار المحسن في بناء جملة playbook.


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

Source: https://habr.com/ru/post/ar473948/


All Articles