اذهب إلى المحتوى

زينب الزعيم

الأعضاء
  • المساهمات

    25
  • تاريخ الانضمام

  • تاريخ آخر زيارة

كل منشورات العضو زينب الزعيم

  1. لفترة طويلة، بدا أن الأتمتة automation هي جلّ اهتمام أي مدير نظم لكن يبدو مؤخرًا أن التوجه يتغير من الأتمتة إلى التنسيق orchestration، مما أثار تساؤل العديد من مدراء النظم المتحيرين: "ما الفرق بينهما؟". يكمن الفارق الرئيسي بين الأتمتة والتنسيق في الغاية من كل منهما والأدوات المستخدمة لكل منهما. تقنيًا يمكن أن نعد الأتمتة فرعًا من التنسيق. فبينما يشير التنسيق إلى العديد من الأجزاء المتحركة، تشير الأتمتة عادةً إلى مهمة واحدة أو عدد قليل من المهمات المرتبطة ببعضها ارتباطًا وثيقًا. يعمل التنسيق على مستوى أعلى ويتوقع منه أن يبني قراراته حسب الحالات والمتطلبات المتغيرة. مع ذلك، لا يجب أن يؤخذ هذا المنظور حرفيًا لأن لكل من المصطلحين - الأتمتة والتنسيق- تأثيرات عند استخدامهما. تتطابق نتائج كل منهما من الناحية الوظيفية: تنفَّذ الأمور دون تدخلك المباشر، لكن تختلف طريقة تحقيقك هذه النتيجة والأدوات التي تستخدمها لتحقيقها، أو على الأقل تختلف طريقة استخدام المصطلحين حسب الأدوات التي تستخدمها. فمثلًا، تتضمن الأتمتة عادةً كتابة النصوص البرمجية scripting، وغالبًا تكون بلغة باش Bash أو بايثون Python أو لغة مشابهة، وتدل غالبًا على جدولة تنفيذ شيء ما إما بوقت محدد أو عند وقوع حدث محدد. أما التنسيق يبدأ غالبًا ببرنامج مخصص لهذا الغرض لتنفيذ مجموعة مهام قد تحدث بصورة غير منتظمة، أو عند الطلب أو نتيجة وقوع أي عدد من الأحداث المحفزة، وقد تعتمد النتائج الدقيقة على مجموعة متنوعة من الحالات. صنع القرار والتنسيق في تكنولوجيا المعلومات تدل الأتمتة على ابتكار مدير النظم لنظام يجعل الحاسوب ينفذ شيئًا كان ينفَّذ يدويًا. في الأتمتة يكون مدير النظم قد اتخذ أصلًا معظم القرارات حول ما يجب تنفيذه، فلا يجب على الحاسوب إلا أن ينفذ "وصفة" recipe المهمات. يدل التنسيق أن مدير النظم أعد نظامًا لينفذ شيئًا ما من تلقاء نفسه بناءً على مجموعة قواعد rules ومعامِلات parameters وعمليات رصد observations. في التنسيق يعلم مدير النظم النتيجة النهائية المرجوة لكن يترك أمر اتخاذ قرار كيفية الوصول إلى هذه النتيجة للحاسوب. لنتفكر في Ansible وباش؛ إن باش هي لغة الصدفة shell وكتابة النصوص البرمجية، يستخدمها مدراء النظم لتنفيذ جميع الأمور التي يقومون بها تقريبًا خلال أي يوم عمل. تعد الأتمتة بواسطة باش واضحة: بدل أن تكتب الأوامر في جلسة session تفاعلية، تكتبها ضمن مستند نصي وتحفظ هذا الملف كملف برمجي للصدفة shell script. تشغل باش هذا الملف منفذةً الأمر تلو الآخر. وهي تتيح مجالًا لصنع القرار المشروط، لكنه عادةً بسيط لا يتجاوز في تعقيده تعليمة if-then، اللتان يجب أن تكتبا ضمن نص برمجي. من ناحية أخرى، تستخدم Ansible تعليمات أو أدلة أنظمة النشر playbooks يوضح فيها مدير النظم حالة الحاسوب المنشودة، إذ تدرج الشروط التي يجب أن تتحقق قبل أن تعد Ansible العمل منفذًا. عندما تعمل Ansible تتخذ إجراءً حسب الحالة الحالية للحاسوب مقارنةً بالحالة المنشودة، بناءً على نظام تشغيل الحاسوب وغير ذلك. لا يتضمن نظام النشر playbook أوامر محددة، بل يترك هذه القرارات إلى Ansible. طبعًا من الواضح أنه يشار إلى Ansible بأنها أداة أتمتة وليست أداة تنسيق. قد يكون الفارق طفيفًا، ولا بد من تداخل المصطلحين. التنسيق والحوسبة السحابية لنفترض أنك تريد تحويل نوع ملف يرفعه المستخدمون دوريًا إلى خادمك. سيكون الحل اليدوي أن تتحقق من وجود محتويات مرفوعة على المجلد كل صباح، ثم تفتح الملف، ثم تحفظه بتنسيق مختلف. هذا حل بطيء وغير فعال وغالبًا لن تنفذه إلا مرةً كل 24 ساعةً لأنك شخص مشغول. تستطيع أتمتة هذه المهمة. إذا كنت ستفعل ذلك، قد تكتب نصًا برمجيًا بلغة PHP أو Node.js يرصد الملفات عندما ترفَع، وينفذ التحويل ويرسل تنبيهًا أو يضيف مدخلًا في سجل log entry لتأكيد نجاح عملية التحويل. يمكنك تطوير النص البرمجي مع الوقت ليتيح للمستخدمين التفاعل مع عملية الرفع والتحويل. أما إذا أردت اتباع أسلوب التنسيق في هذه العملية، قد تبدأ ببرنامج، سيكون برنامجك المخصص مصممًا لقبول الملفات وتحويلها. قد تشغل هذا البرنامج على حاوية container موجودة على سحابتك cloud، وتستطيع باستخدام OpenShift إطلاق نسخًا إضافيةً من برنامجك عندما تتجاوز حركة البيانات traffic أو الحِمل عتبةً محددةً. تعلم الأتمتة والتنسيق لا يوجد تخصص واحد فقط للأتمتة أو التنسيق، فهما ممارستان مجال استخدامهما واسع ومطبَّقتان على العديد من المهام المختلفة في قطاعات مختلفة. لكن تتمثل أول خطوة لتعلمهما في أن تتقن التكنولوجيا التي تنوي أتمتتها وتنسيقها. فمن الصعب تنسيق (تنسيقًا سليمًا) عملية توسع سلسلة من خوادم الويب إذا لم تكن تفهم كيف يعمل خادم الويب، أو ما هي المنافذ التي يجب أن تفتحها أو تغلقها، أو ما هو المنفذ. عمليًا ربما لن تكون الشخص الذي يفتح المنافذ أو يضبط إعدادات الخادم، وقد تسند إليك مهمة إدارة OpenShift دون أن تعرف ما هو محتوى الحاوية أو تهتم به أصلًا. لكن المفاهيم الأساسية مهمة لأنها تطبَّق على نطاق واسع على سهولة الاستخدام وعملية استكشاف الأخطاء وإصلاحها وعلى الأمان. كما عليك أن تألَف استخدام أكثر الأدوات الشائعة في عالم التنسيق والأتمتة، تعلم مبادئ لغة Bash، وابدأ بالعمل على Git وصمم بعض خطافات Git، وتعلم مبادئ لغة بايثون، واعتد العمل على YAML و Ansible، وجرب العمل على Minikube و OKD و OpenShift. يعد التنسيق والأتمتة مهارتين مهمتين، إذ تزيدان كفاءة عملك وتعدان إضافتين نافعتين إلى فريقك. استثمر فيهما اليوم وضاعف العمل الذي تنجزه في المستقبل. ترجمة -وبتصرف- للمقال ‎What's the difference between orchestration and automation? لصاحبه Seth Kenlon. اقرأ أيضًا ما هي الأتمتة اليدوية؟ وكيف تستفيد منها في شركتك الناشئة؟
  2. أصبحت الحاويات Containers جزءًا من جميع نواحي بيئة تكنولوجيا المعلومات، وغيرتها تغييرًا جذريًا. فما هي المفاهيم التي عليك أن تعرفها عن الحاويات؟ غير الاحتواء Containerization بيئة تكنولوجيا المعلومات تغييرًا جذريًا بسبب قيمته الكبيرة والفوائد الجمّة التي أكسبها لهذا القطاع. فتقريبًا لن تجد ابتكارًا حديثًا في مجال الأعمال لا يُعدّ الاحتواء عاملًا مساهمًا فيه، هذا إن لم يكن عنصرًا محوريًا فيه. في معمارية التطبيقات الحديثة، تمنحك القدرة على تنفيذ التعديلات بسرعة في بيئة الإنتاج الأفضلية على منافسيك. تحقق الحاويات هذه السرعة باستخدام معمارية الخدمات المصغّرة microservices التي تتيح لفريق المطورين أن ينشئوا خاصيات وظيفية functionality ويضيقوا نطاق تأثير أخطائهم ويتداركوها بسرعة أكبر. كما يتيح الاحتواء للتطبيقات أن تبدأ العمل بسرعة أكبر وتوسّع موارد السحابة cloud المتاحة التي تستهلكها تلقائيًا عند اللزوم. فضلًا عن ذلك، يحقق مفهوم العمليات والتطوير DevOps الفائدة القصوى من منافع الاحتواء الذي يتيح المرونة وقابلية النقل والكفاءة اللازمين للطرح الأولي للمنتج في السوق. وعند حديثنا عن السرعة والخفة والمرونة التي يعدنا بها الاحتواء الذي يتبع نهج العمليات والتطوير، لا نغفل العامل الحاسم، ألا وهو عامل الأمن. أدى هذا إلى ظهور مفهوم DevSecOps، الذي يدمج الأمن ب_ منذ البداية وخلال دورة حياة التطبيق الذي تحتويه الحاويات. يحسّن الاحتواء الأمن بدرجة كبيرة افتراضيًا لأنه يعزل التطبيق عن المضيف وعن التطبيقات الأخرى التي تحتويها الحاويات. ماهي الحاويات؟ إن الحاويات هي حل المشاكل التي أورثتنا إياها المعماريات المتراصّة monolithic، رغم أن لهذه الكتل المتراصة monoliths نقاط قوتها إلا أنها تمنع المؤسسات من التحرك بسرعة وفق نموذج أجايل agile. أما الحاويات تتيح لك تجزئة الكتلة إلى خدمات مصغرة. بصورة أساسية، إن الحاوية هي تطبيق يحزم مكونات خفيفة، مثل اعتماديات dependencies التطبيق والمكاتب وملفات الإعدادات، التي تعمل في بيئة منعزلة مثبتة على أنظمة تشغيل تقليدية أو على بيئات افتراضية لتسهيل تحقيق المرونة وقابلية النقل. معمارية الحاوية باختصار، توفر الحاوية العزلة من خلال استغلال تقنيات النواة مثل مجموعات التحكم cgroups وفضاءات أسماء النواة kernel namespaces وSELinux. تتشارك الحاويات مع المضيف بالنواة مما يتيح لها استهلاك موارد أقل من الذي تستهلكه الآلة الافتراضية virtual machine. مزايا الحاويات توفر معماريتها الخفة التي لا يمكن أن توفرها الآلات الافتراضية. فضلًا عن ذلك، تدعم الحاويات نموذجًا أكثر مرونةً فيما يتعلق بموارد الحوسبة والذاكرة، وتتيح ما يسمى بأنماط تدفق الموارد resource-burst التي تمكن التطبيقات من استهلاك قدر أكبر من الموارد عند اللزوم ضمن الحدود المحددة لها. بعبارة أخرى، توفر الحاويات مرونةً وقابليةً للتوسع لن تحظى بهما عند تشغيل تطبيقك على آلة افتراضية. تسهِّل الحاويات مشاركة التطبيقات ونشرها على سحابات عامة أو خاصة. والأهم من ذلك، توفر التوافق الذي يساعد فرق العمليات والتطوير في تبسيط عملية نشر التطبيق على عدة منصات. كما تتيح الحاويات مجموعة مشتركة من اللبنات الأساسية building blocks التي يمكن أن يعاد استخدامها في أي من مراحل التطوير لإنشاء بيئات مطابقة بغرض التطوير والاختبار والتجميع والإنتاج، موسعةً بذلك مفهوم "اكتب مرةً واحدةً، وطبق حيثما شئت". تبسِّط الحاويات عملية تحقيق المرونة والتوافق والقدرة على نشر التطبيقات بسرعة مقارنةً بالبيئات الافتراضية، وهذا هو جوهر العمليات والتطوير. عامل Docker أصبح دوكر Docker مترادفًا مع الحاويات، إذ أنه أحدث ثورةً في عالم الحاويات وعمّمها، رغم أن تقنية الحاويات كانت موجودةً قبل ظهور دوكر. فقد كانت تستخدم مثلًا في تجزئات حجم العمل Workload partitions من AIX وحاويات سولاريس Solaris، وحاويات لينوكس LXC التي أنشئت لتشغيل عدة بيئات تعمل بنظام تشغيل لينوكس على مضيف واحد يعمل بنظام تشغيل لينوكس أيضًا. تأثير نظام Kubernetes يشتهر نظام كوبيرنيتيس Kubernetes بأنه المحرك الموجّه الرائد. أوجدت شعبية نظام كوبيرنيتيس مصحوبةً بالاعتماد المتزايد على الحاويات السيناريو النموذجي لفرق العمليات والتطوير والأمن لتبني البيئة المتغيرة. يوفر نظام كوبيرنيتيس نهجًا شاملًا لإدارة الحاويات. يمكنه تشغيل الحاويات عبر عنقود cluster لتفعيل خصائص مثل التوسيع التلقائي للموارد السحابية، الذي يشمل متطلبات التطبيقات التي توجهها الأحداث، بأسلوب مؤتمت وتوزيعي. وإن هذا يضمن التوافر العالي high availability "مجانًا" (إذ لا يبذل المطورون أو مدراء النظام أي جهود إضافية لتحقيقه). تسهِّل أنظمة مثل أوبين شيفت وكوبيرنيتيس اعتماد الحاويات. هل ستستبدل الحاويات الآلات الافتراضية؟ تبشِّر مشاريع مثل كوبي فيرت KubeVirt ومشاريع مشابهة مفتوحة المصدر بأن الحاويات ستحل محل الآلات الافتراضية. إذ أن مشروع كوبي فيرت يبدل سير عمل الآلات الافتراضية إلى سير عمل الاحتواء من خلال تحويل الآلات الافتراضية إلى حاويات، لتكتسب مزايا التطبيقات التي تحتويها الحاويات. تعمل حاليًا الحاويات والآلات الافتراضية كحلول مكملة لبعضها وليس كتقنيات متنافسة. إذ تعمل الحاويات فوق الآلات الافتراضية لزيادة التوفر، وخاصةً للتطبيقات التي يجب أن تكون مستقرة، وتستفيد من تقنية البيئة الافتراضية التي تسهِّل إدارة بنية العتاد الصلب (مثل التخزين والربط الشبكي) اللازمة لدعم الحاويات. ماذا عن الحاويات بنظام تشغيل ويندوز؟ تبذل شركة مايكروسوفت والمجتمع مفتوح المصدر جهودًا كبيرةً لإنجاح الحاويات بنظام التشغيل ويندوز. سرَّعت مشغلات كوبيرنيتيس اعتماد الحاويات التي تعمل على ويندوز، وتتيح منتجات مثل أوبين شيفت openshift خدمة Windows worker nodes لتشغيل حاويات بنظام تشغيل ويندوز. يوفر الاحتواء المبني على نظام التشغيل ويندوز الكثير من الفرص المغرية، خاصةً للمؤسسات ذات البيئات المختلطة. تعد القدرة على تشغيل أهم تطبيقاتك على عنقود كوبيرنيتيس Kubernetes cluster تقدمًا مهمًا في مسيرة بناء بيئة سحابية هجينة أو متعددة. مستقبل الحاويات تؤدي الحاويات دورًا هامًا في بيئة تكنولوجيا المعلومات المتغيرة لأن المؤسسات تتجه نحو اتباع نهج في تنفيذ التطبيقات وتقديم الحلول يتصف بالسرعة والخفة لتتفوق على منافسيها. ستكون الحاويات حلًا طويل الأمد إذ ستظهر في المستقبل القريب العاجل حالات استخدام أخرى لها، مثل الحوسبة الحدّية خفية الخوادم serverless on the edge، وستغير طريقة تفكيرنا في سرعة نقل المعلومات من وإلى الأجهزة الرقمية. والطريقة الوحيدة للصمود في ظل هذه التغييرات هي التكيف معها. ترجمة -وبتصرف- للمقال ‎6 container concepts you need to understand لصاحبه Mike Calizo. اقرأ أيضًا نظرة عامّة على إعداد الحاويّات containerization على Docker كيفية مشاركة البيانات بين حاويات Docker ثلاث نصائح لتسمية حاويات Docker
×
×
  • أضف...