Category: DevOps

DevOps Engineer

مهندس (DevOps) هو مسمى وظيفي حديث دوره الأساسي ميكنة عملية تنصيب ونشر التطبيقات البرمجية (مواقع ويب - تطبيقات موبيل - برامج كمبيوتر) من حيث سهولة تنصيبها من بيئة لأخرى وميكنه تحديث النظام (الكود البرمجي) وإجراء العمليات الدورية (test - backup) له بشكل اوتوماتيكي مما يمثل حلقة الوصل بين فريق المبرمجين و IT

10 Topics

1 - Networking Fundamentals

شركة CompTIA هي منظمة أمريكية غير ربحية تقدم منهج تعليمي خاص بالكمبيوتر للنهوض بمستوى بائعين وموزعين وفنيين الحاسوب.
Network+ هى دورة تدريبية من شركة كومبتيا وتعتبر شهادة عالمية وأساسية للمبتدئين فى مجال الشبكات، وتهدف شهادة N+ تعليم المتدربين من خلال محتوى احترافي وبسيط وإمكانية تكوين وإدارة وصيانة شبكات الحاسب.

2 - Python

Python هي لغة برمجة متعددة الاستخدام تتميز بالسهولة والكم الهائل من المكتبات التي تدعم تخصصات عدة في ما يخص مجال صناعة البرمجيات عامة فمثلا تستخدم في 1-برمجة مواقع الويب بقوة ولها اطارات عمل شهيرة مثل Django و Flask. 2- برمجه الالعاب وتوفر مكتبات تجعل الأمر سهلا للغاية مثل PyGame و PySoy. 3- الذكاء الاصطناعي وهي من أهم اللغات المستخدمة في هذا المجال وتدعمه بقوة من خلال مكتبات جاهزة مثل PyBrain و NumPy و Pandas. 4- تطبيقات سطح المكتب وتدعم من خلال مكتبه Tkinter.
والعديد من المميزات

3 - GIT

هي تقنية يستخدمها المبرمجون أثناء برمجة المشاريع لتسهيل مرحلة برمجة المشروع من خلال حفظ نسخ من المشروع بعد كل تعديل يتم عليه وبالتالي إمكانية الرجوع الى اى نسخة منه وامكانية دمج شغل المبرمجين مع بعضهم البعض دون تضارب اﻷكواد حتى وان كان مستوى التعديل لأكثر من مبرمج على نفس الملف، ويتم تنصيب برنامج الـ Git على الكمبيوتر واستخدامه في أكثر من مشروع ويتبع كل مشروع على حدة. ويمكنك باستخدام تقنيه git حفظ المشاريع وكل التعديلات التي أجريت عليها على مستودعات الويب لمشاركتها مع اى شخص واشهرها Github و Bi

4 - Linux

Linux هو نظام تشغيل مفتوح المصدر مجاني يتم استخدامه بشكل أكبر بين المبرمجين والاكثر استخداما فى سيرفرات الويب ويتميز بتوفير قدره اكبر الى الوصول لمكتباته وضبط التغييرات اللازمة وإعداد الكثير من المهام مقارنة بمنافسيه من ويندوز و MAC OS ويتوفر نظام التشغيل لينكس بتوزيعات عديدة وأكثرها استخداما Ubuntu و CentOS و RedHat هي وغيرهم الكثير.

5 - Bash Scripting

الـ Bash هو برنامج موجود بأنظمة التشغيل يسمح للمستخدمين بتنفيذ الأوامر عن طريق كتابة الأوامر بدلا من استخدام GUI الخاصه بنظام التشغيل على سبيل المثال إذا أردت نسخ ملف من فولدر لآخر فبدلا من استخدام الواجهه الرسوميه لنظام التشغيل يمكنك عمل هذا باستخدام أمر مثله
cp file_name to_folder_name ويختلف اسم برنامج الـ Bash من نظام تشغيل ﻷخر فقد يُسمى shell او terminal ولكنهم يقوموا بنفس الدور. ونركز في الحديث هنا على نظام التشغيل Linux الذي يستخدمه الكثير على السيرفرات

6 - Nginx HTTP Server

خادم الويب (Web Server)
هو برنامج يتم تنصيبه على السيرفر المستضيف للمشروع البرمجي ويقوم بتلبية أوامر المستخدم حين طلب عرض صفحه من خلال متصفح الانترنت، فحين تكتب في المتصفح it-sharks.com يقوم المتصفح بالاتصال مع السيرفر من خلال الانترنت ويقوم خادم الويب باستلام الأمر (اريد عرض صفحة أى تى شاركس) ومن ثم يرد على المتصفح بمحتوى الصفحة من كود برمجي ويقوم المتصفح بعرض هذا المحتوى لك.
Nginx
هو خادم يدعم الاتصال بين الكمبيوتر الشخصي والسيرفر من خلال بروتو

7 - Docker

الـ Docker هو برنامج يُستخدم في عملية الـ Deployment للمشاريع والتطبيقات البرمجية حيث يقوم بإعداد كامل للبيئة التي يتم تشغيل المشروع عليها من خلال ضبط إعدادات المشروع في ملف واحد من خلال تحديد نظام التشغيل ونسخته والمكتبات والبرامج التي يحتاجها المشروع وتحديد نسخة كل مكتبة وبرنامج وآلية الاتصال بينهما ومن ثم سهولة استخدام هذا الملف ومشاركته بين المبرمجين وعلى السيرفر بدون حدوث أي تضارب أو نقص في البرامج التي تحتاجها بيئة عمل المشروع وبإستخدام أمر واحد فقط خاص بأداة Docker يتم تحويل هذا الملف لك

8 - Ansible

Ansible هو أحد أدوات مهندسي DevOPS ويستخدم في أوتوماتيكية ميكنة نشر تطبيقات الويب من خلال تنفيذ مجموعة من الأوامر يتم كتابتها من طرف مهندس DevOPS لتناسب المشروع وأكثر اللغات التي يتم استخدامها بواسطة Ansible مثل تنصيب المكتبات والبرامج الجديدة للحاوية وتحديث المشروع نفسه.

9 - Kubernetes

Kubernetes هو برنامج يستخدمه مهندسي DevOPS لإدارة حاويات الـ Docker من خلال إعداد الكثير من المهام وميكنه عملها أوتوماتيكيا مثل زيادة أو تقليل موارد Container وتنفيذ المهام عليه من ترقية او نسخ أو Backup.

10 - Jenkins

Jenkins أحد أدوات مهندسي DevOPS وتقوم بنفس مهام Ansible من ميكنة عملية نشر تطبيقات الويب واختبارها اوتوماتيكيا ويستخدم Jenkins لغه الجافا في كتابه المهام التي يتم تنفيذها على السيرفر ويعتبر أكثر تعقيدا من Ansible إلا أنه يتميز بوفرة المكتبات الجاهزة التي يتم تنصيبها واستخدامها مباشرة من خلاله.