خارطة طريق DevOps الديناميكية › الأساسيات 3 / 6 السابق التالي

الأساسيات - جوهر DevOps

الأساسيات - جوهر DevOps

نظرة عامة على الوحدة

  • تعلّم أساسيات Python وأدوات التطوير الشائعة وأساسيات Git.
  • اكتسب أساسيات Linux والأدوات الشائعة ومهارات البرمجة النصية بـ Bash.
  • غطِّ أساسيات Docker والحاويات.
  • نفّذ المشروع العملي التدريجي HiveBox المرحلة 2.

تلميح — مجالات التركيز

البرمجة (40%)، نظام التشغيل (40%)، الحاويات (20%)

2.1 البرمجة - أساسيات Python

الجمهور

الجمهور المستهدف: أدوار DevOps وأدوار البرمجيات

ما تحتاج إلى معرفته

  • كبداية، تحتاج إلى تعلّم لغة برمجة حقيقية.
  • Python بداية جيدة، وهي من أشهر لغات البرمجة اليوم.
  • تعلّم الأساسيات مثل أنواع البيانات والتحكّم في التدفّق والحلقات والدوال.
  • لكن الفكرة ليست مجرّد تعلّم الصياغة (syntax) بل تبنّي عقلية المطوّر أيضًا (أي لا تكتب شيفرة Python كما تكتب نصوص Bash!).
  • ستُغطّى مواضيع أكثر تقدّمًا في الوحدات التالية.

تلميح

إن كنت آتيًا من خلفية تطوير، يمكنك استخدام أي لغة تعرفها. ويظلّ Python أو Golang موصى بهما.

المصادر

  • تعلّم Python - Codecademy: تعلّم تفاعلي خطوة بخطوة لاكتساب المعرفة الأساسية بـ Python (الدورة مخصّصة لـ Python 2، لكن لا بأس).
  • مسار Python - Exercism: أكثر من 130 تمرينًا مجمَّعة في 16 مفهومًا من Python مع تحليل للشيفرة (أكمل تمرين التعلّم (Learning Exercise) فقط).

2.2 البرمجة - أدوات التطوير الشائعة

الجمهور

الجمهور المستهدف: أدوار DevOps وأدوار البرمجيات

ما تحتاج إلى معرفته

شكل توضيحي: حلقة DevOps.

  • حين تكتب الشيفرة، فأنت لا تستخدم محرّر نصوص فحسب بل محرّر شيفرة (وربما بيئة تطوير متكاملة IDE أيضًا).
  • أدوات التطوير ترفع الإنتاجية، وتُبسّط عملية التطوير، وترفع جودة الشيفرة.
  • من الميزات الشائعة في أدوات التطوير تمييز الصياغة (syntax highlighting)، وإكمال الشيفرة، والتنقّل في الشيفرة، وتصحيح الأخطاء (debugging).
  • عبر خارطة الطريق هذه، ستكتسب مزيدًا من الأدوات التي تساعدك في عملك اليومي.

المصادر

2.3 البرمجة - أساسيات Git

الجمهور

الجمهور المستهدف: أدوار DevOps وأدوار البرمجيات

ما تحتاج إلى معرفته

  • حين تنشئ الشيفرة، تحتاج إلى تخزينها في مكان آمن باستخدام نظام إدارة الشيفرة المصدرية (Source Code Management, SCM).
  • من أنظمة SCM المعروفة Git، وهو مستخدم على نطاق واسع الآن عبر منصّات كثيرة مثل GitHub وGitLab.
  • تحتاج إلى فهم أساسيات Git مثل المستودع (repository) والفرع (branch) والسحب (pull) والدفع (push) والالتزام (commit) وغيرها، لأنك ستستخدمها كل يوم تقريبًا.
  • لا يقتصر فهم Git على التطوير فقط، بل تعتمد عليه أيضًا مسارات عمل كثيرة كمصدر حقيقة وحيد (Source of Truth) مثل GitOps (وسيُغطّى ذلك في الوحدات التالية).

المصادر

2.4 نظام التشغيل - أساسيات Linux

الجمهور

الجمهور المستهدف: أدوار DevOps وأدوار البرمجيات

ما تحتاج إلى معرفته

  • في عالم الخوادم، يسيطر Linux على السوق. لذا من الضروري تعلّم نظام Linux واستخدامه كمهندس DevOps.
  • وكمهندس DevOps، من غير المرجّح أن تنجح دون معرفة جيدة بـ Linux.
  • لـ Linux عائلتان رئيسيتان: Debian/Ubuntu وRed Hat/CentOS، ومن الأفضل الالتزام بإحداهما في البداية.
  • ابدأ باستخدام توزيعة Linux سهلة الاستخدام مثل Ubuntu على حاسوبك المحمول/المكتبي.
  • فرغم أنه لا يزال ممكنًا للمستخدم إنجاز الكثير باستخدام الواجهة الرسومية (UI)، فإنّ الطرفية صديقتك!
  • كنقطة بداية، تحتاج على الأقل إلى معرفة بنية الأدلّة (Directory Structure) والأذونات (Permissions) وعمليات سطر الأوامر (Command Line Operations).

المصادر

2.5 نظام التشغيل - الأدوات والأوامر الشائعة

الجمهور

الجمهور المستهدف: أدوار DevOps وأدوار البرمجيات

ما تحتاج إلى معرفته

  • كما ذُكر، الطرفية صديقتك! تكمن قوة Linux في الطرفية، وعليك أن تعتاد عليها لأنك ستستخدمها يوميًّا.
  • تعرّف على أداة الواجهة الرسومية (GUI) للنظام الذي لديك، مثل Ubuntu.
  • توجد أدوات قليلة تحتاج إلى إتقانها مثل echo وvim وgrep وfind وtop وcut وsort وuniq وless وhead وtail.
  • لست بحاجة إلى حفظ كل الأدوات أو معاملاتها (args)، فكّر فحسب "أي أداة قد تساعدني في فعل ذلك؟" ثم يمكنك دائمًا قراءة توثيقها.

المصادر

2.6 نظام التشغيل - أساسيات البرمجة النصية بـ Bash

الجمهور

الجمهور المستهدف: أدوار DevOps وأدوار البرمجيات

ما تحتاج إلى معرفته

  • الآن تعرف عشرات من أوامر CLI الفردية، لكن Linux يتيح لك أتمتة مهام كثيرة بمجرّد ربط سلسلة من الأوامر معًا.
  • في نصوص الصدفة (shell scripts) يمكنك استخدام كل أوامر CLI بالإضافة إلى صياغة مشابهة للغة برمجة من أجل شروط if والحلقات وغيرها من المساعدات.
  • وحتى لو كنت تعرف لغة برمجة مثل Python، فستظلّ بحاجة إلى نصوص الصدفة وستستخدمها كثيرًا.
  • توجد صدفات (shells) كثيرة، ولكل منها صياغة مختلفة قليلًا، لكن Bash من أكثرها شيوعًا.

المصادر

2.7 الحاويات - أساسيات Docker

الجمهور

الجمهور المستهدف: أدوار DevOps وأدوار البرمجيات

ما تحتاج إلى معرفته

  • يمكن تتبّع ثورة الحاويات إلى تقديم Docker في عام 2013 حين ظهر Docker لأول مرة في PyCon.
  • أصبح تبنّي الحاويات سائدًا منذ فترة، بل إنّ الحاويات هي القاعدة الجديدة!
  • وهذا يعني أنّ تحويل تطبيقك إلى حاوية (containerization) ليس خيارًا، بل ضرورة من اليوم الأول!
  • أولًا، تحتاج إلى فهم لماذا اخترعت الحاويات وما المشكلات التي تحلّها هذه التقنية.
  • وتحتاج أيضًا إلى فهم العلاقة بين الحاويات وKubernetes (وسيُغطّى ذلك في الوحدات التالية).
  • لم يعد Docker الأداة الوحيدة للحاويات اليوم، لكننا سنلتزم به في خارطة الطريق هذه.
  • من المهم فهم الفرق بين Dockerfile وصورة Docker (Docker image) وحاوية Docker (Docker container).

شكل توضيحي: العلاقة بين النظام والحاويات والشيفرة.

المصادر

2.8 الحاويات - أساسيات واجهة أوامر Docker (Docker CLI)

الجمهور

الجمهور المستهدف: أدوار DevOps وأدوار البرمجيات

ما تحتاج إلى معرفته

  • توجد واجهات رسومية (GUIs) قليلة لـ Docker، لكنك مهندس DevOps، فاعتد على واجهة أوامر Docker (Docker CLI)!
  • تحتاج إلى معرفة كيفية إنشاء حاويات Docker وتشغيلها وإيقافها وحذفها من واجهة الأوامر.
  • لن نغطّي Docker Compose في خارطة الطريق هذه لأنّ Kubernetes سيكون محور تركيزنا كمنصّة تنسيق (orchestration). لكن إن احتجت إلى استخدام Docker Compose، فاستخدم الإصدار V2، المدمج الآن في واجهة أوامر Docker docker compose.

المصادر

الاختبار

التطبيق العملي

اتبع التعليمات في المرحلة 2 من مشروع HiveBox.

أسئلة المقابلات

راجع أسئلة المقابلات المتعلّقة بـ الوحدة 2.