قد يختلف دور ومسؤوليات مهندس موثوقية الموقع (SRE) اعتمادا على حجم المؤسسة، وعلى هذا النحو، تختلف أدوات مهندس موثوقية الموقع. بالنسبة للجزء الأكبر ، يركز مهندس موثوقية الموقع على مهام ومشاريع متعددة في وقت واحد ، لذلك بالنسبة لمعظم SREs ، تعكس الأدوات المختلفة التي يستخدمونها مسؤولياتهم المتطورة منذ البداية. إن SRE النموذجي مشغول بأتمتة التعليمات البرمجية وتنظيفها وترقية الخوادم ومراقبة لوحات المعلومات باستمرار للأداء وما إلى ذلك ، لذلك سيرون المزيد من الأدوات في حزام الأدوات هذا. لهذا السبب ، يمكن أن تختلف الأدوات والمنصات التي تستخدمها SRE اختلافا كبيرا من منظمة إلى أخرى ، خاصة في عام 2022.
على سبيل المثال ، في المؤسسات الصغيرة أو الشركات الناشئة ، يميل الموظفون إلى أن يكونوا أكثر محدودية ، لذلك قد يحتاج مهندس موثوقية الموقع إلى أن يكون على دراية جيدة بأدوات متعددة ، مثل Golang و Terraform و Docker و CircleCI و Puppet ، على سبيل المثال لا الحصر. في المؤسسات الكبيرة ، قد يكون مهندس موثوقية الموقع أكثر تركيزا أو معزولا في مسؤوليات محددة ، وبالتالي ، قد تكون مجموعة أدواته أكثر محدودية. وفي بعض الحالات ، قد يكون SRE مركزا أو مكلفا بالعمل في Jenkins يوما بعد يوم. ذلك يعتمد فقط على الوضع. دعونا نلقي نظرة على بعض أدوات مهندس موثوقية الموقع الأكثر شيوعا وشعبية. من الواضح أن هذه ليست قائمة شاملة ، ولكنها تعطيك فكرة عامة عن اتساع المعرفة والخبرة التي قد تحتاج SRE إلى استخدامها.
لغات البرمجة
سيحتاج مهندسو موثوقية الموقع إلى خبرة في لغات البرمجة المختلفة ، ولكن الأهم من ذلك ، يحتاجون إلى معرفة كيفية استخدام هذه اللغات لأتمتة أي وجميع المهام. دعونا نلقي نظرة على بعض لغات البرمجة الأكثر شيوعا التي ستواجهها مجموعة SRE ، مثل Python و Golang و Ruby.
1. بايثون
بايثون هي واحدة من لغات البرمجة الأكثر شيوعا وشعبية هناك. إنها لغة للأغراض العامة ، مما يعني أن لديها مجموعة واسعة من الاستخدامات ، مثل العمود الفقري لمواقع الويب أو تطبيقات الويب ، أو أتمتة المهام ، أو حتى الاختبار. في الواقع ، يتم استخدامه من قبل شركات مثل Netflix و Venmo و Dropbox ، على سبيل المثال لا الحصر. بايثون سهل التعلم ، لذلك فهو جيد لشخص بدأ للتو ، ولكنه متعدد الاستخدامات وواسع النطاق لخبراء بايثون أيضا. والأفضل من ذلك كله ، أنه مفتوح المصدر ولديه مجتمع دعم كبير وراءه.
2. جولانج
Golang ، أو Go ، هي لغة برمجة مفتوحة المصدر أنشأتها Google في عام 2009 وتستخدم لإنشاء برامج. من السهل تعلم Go ، مقارنة باللغات الأخرى ، خاصة إذا كنت تعرف بالفعل C أو Java ، ويمكنك أيضا التوسع بشكل جيد. كما أنها سريعة للغاية لأنها لغة مجمعة ، مما يعني أن الشفرة المكتوبة يتم تحويلها تلقائيا إلى رمز الآلة على الفور. Golang هي أيضا القوة الكامنة وراء الخدمات الأخرى التي تستخدمها SREs ، مثل Docker و Terraform و Kubernetes. بالمقارنة مع Python ، فإن Go ليس وصفيا ، لذلك في بعض الحالات ، قد يحتاج المبرمجون إلى كتابة المزيد من أسطر التعليمات البرمجية لتنفيذ وظيفة محددة مقارنة باستخدام Python.
3. روبي
Ruby هي لغة برمجة مفتوحة المصدر من جانب الخادم ، مثل لغات Python أو PERL. Ruby هي لغة برمجة ديناميكية ، لذلك لا توجد قواعد ثابتة عندما يتعلق الأمر ببناء الميزات وتستخدم في المقام الأول لتطوير تطبيقات الويب. في حين أن روبي نفسها لها فوائد كبيرة ، عندما تقترن بإطار ويب Rails ، فإنها تصبح معروفة باسم Ruby on Rails (RoR). لا تتضمن لغات البرمجة الأخرى مثل HTML (لغة ترميز النص التشعبي) وجافا سكريبت وCSS (أوراق الأنماط المتتالية) (أوراق الأنماط المتتالية) جوانب من كل من خدمات الواجهة الأمامية والخلفية ، وهو ما يميز Ruby on Rails عن اللغات الأخرى. نظرا لمرونة Ruby on Rails ، يتم استخدامه عبر مجموعة متنوعة من الصناعات والمنظمات ، مثل Airbnb و Shopify و GitHub و Fiverr.
الحاويات/الخدمات المصغرة
سرعان ما أصبحت الحاويات والخدمات المصغرة تقنية حاسمة للسماح للمؤسسات بتطوير التطبيقات وإطلاقها بسرعة أكبر ، بالإضافة إلى توسيع نطاقها عبر بيئات مختلفة. تعد منصات مثل Docker و Kubernetes و Nomad بعض الحلول الرائدة لدعم التطبيقات الحديثة في البيئات السحابية الأصلية المتنامية باستمرار.
4. دوكر
Docker هي منصة حاويات مفتوحة المصدر شائعة تسمح للمستخدمين بحزم شفرة مصدر التطبيق وحزم التبعية في حاوية واحدة أو حاوية Docker. يتيح Docker ، بالإضافة إلى حلول الحاويات الأخرى ، حزم التطبيقات وتشغيلها في مجموعة متنوعة من البيئات ، دون الحاجة إلى مراعاة عوامل مثل نظام التشغيل أو تكوينات النظام المحددة الأخرى. وبسبب هذه المرونة، تصبح التطبيقات أكثر قابلية للتنقل ويمكن تشغيلها في أي مكان دون القلق بشأن العوامل الخارجية. بالإضافة إلى ذلك ، فإن تقنية الحاويات تفسح المجال ل CI / CD ، مما يسمح للمطورين بتحديث التعليمات البرمجية باستمرار ونشر التطبيقات بشكل أسرع وأكثر كفاءة.
5. كوبرنيتيس
Kubernetes هو نظام تنسيق حاويات مفتوح المصدر يستخدم للمساعدة في نشر التطبيقات المعبأة في حاويات وتوسيع نطاقها وإدارتها. يمكن أن تكون البيئات معقدة ، وتتكون من منصات متعددة أو بيئات سحابية متعددة. يستخدم Kubernetes لإدارة كل هذا نيابة عنك. على الرغم من أن هذا قد يبدو مألوفا بشكل ملحوظ ل Docker ، إلا أن Kubernetes ليس منافسا مباشرا ل Docker ، حيث يمكن استخدام Kubernetes بالإضافة إلى منصة Docker. ومع ذلك ، فإن Docker لديها حل تنسيق خاص بها ، يسمى Docker Swarm. يستخدم Kubernetes لإدارة العديد من الحاويات في نفس الوقت ، مما يساعد على ترقية التطبيقات دون مقاطعة الخدمة للمستخدمين وكذلك مراقبة الصحة العامة للتطبيقات. يمكن أن تساعد Kubernetes أيضا في موازنة الحمل ، مما يساعد على ضمان أداء التطبيقات على نطاق واسع ، بالإضافة إلى توفير الدعم للمصادقة والأمن على مستوى البنية التحتية.
6. البدوي
Nomad هي منصة أخرى لتنسيق الحاويات. الفرق الرئيسي بين Nomad و Kubernetes هو أن Nomad مصمم لنظام عمليات Unix. من ناحية أخرى ، تم تصميم Kubernetes للتطبيقات المستندة إلى حاوية Linux. بالمقارنة مع Kubernetes ، فإن Nomad أبسط بكثير ، من حيث عدد الخدمات التي تعتمد عليها. تعتمد Kubernetes على مجموعة متنوعة من الخدمات الأخرى لتوفير الوظائف. لا يتطلب Nomad أو يعتمد على أي خدمات خارجية. ونتيجة لذلك ، يمكن أن يكون Kubernetes أكثر كثافة في استخدام الموارد ، من حيث الإعداد والتكوين. الشركات المعروفة باستخدام أو استخدمت Nomad تشمل Cloudflare و Pandora و Roblox وغيرها الكثير.
إدارة التكوين
تسمح أدوات إدارة التكوين لمهندس موثوقية الموقع بإدارة المهام المختلفة وتتبعها والتحكم فيها ، والأهم من ذلك ، أتمتة المهام المختلفة ، مثل ترقيات البرامج والتصحيحات والأمان وإدارة المستخدم وغير ذلك الكثير. تساعد هذه الأدوات أيضا SREs على أتمتة هذه المهام المختلفة على نطاق واسع. دعونا نلقي نظرة على بعض أدوات التكوين الأكثر شيوعا ، مثل Terraform و Ansible و Chef.
7. تيرافورم
Terraform هو برنامج مفتوح المصدر من HashiCorp يعتبر IaC ، أو حل البنية التحتية كرمز. Terraform ، إلى جانب Ansible ، والتي سنتحدث عنها أكثر بعد ذلك ، هما من أكثر الأدوات استخداما لمهندس موثوقية الموقع وفرق DevOps. يستخدم Terraform لتوفير البنية التحتية وإدارتها وتنسيقها ، بغض النظر عما إذا كانت هذه البنية التحتية محلية أو في السحابة أو مزيجا من الاثنين معا ، كما هو الحال في بيئة مختلطة. يعد استخدام حل مثل Terraform أكثر كفاءة من محاولة توفير البنية التحتية وإدارتها ، خاصة مع العديد من مقدمي الخدمات. في الماضي ، كانت هذه العملية ستستغرق فريقا كاملا من الأفراد. الآن ، يمكن للمطورين و SREs توفير البنية التحتية عند الطلب. إن وجود منصة يمكنها إدارة كل هذا في مكان واحد مفيد أيضا للاتساق والتعاون.
8. أنسيبل
Ansible ، مثل Terraform ، هي أداة إدارة تكوين مفتوحة المصدر. إنها تشترك في الكثير من أوجه التشابه ، وفي بعض الحالات يتم استخدامها كحلول تكميلية ، ولكن هناك بعض الاختلافات الرئيسية بين الحلين. على سبيل المثال ، تستند تعليمات كتاب قواعد اللعب الخاصة ب Ansible إلى YAML ، ولكنها مكتوبة بلغة Python ، والتي توفر قابلية التوسعة بالإضافة إلى التعامل مع مجموعة واسعة من الأدوار والبرامج النصية. يستخدم Terraform لغة التكوين الخاصة به ، والتي تسمى HCL.
إذا حفرنا أعمق بين الاثنين ، فإن Ansible يركز بشكل أكبر على قابلية التغيير ، وهو مفهوم يعرفه المطورون. تدور قابلية التغيير حول فكرة أن شيئا ما ، في هذه الحالة مورد ، يمكن تغييره. لتغيير مورد، يمكنك تعديله (قابل للتغيير)، أو إعادة إنشائه بالكامل (غير قابل للتغيير). يركز Ansible على قابلية التغير ، أو محاولة تغيير حالة المورد بدلا من تدميره ، وهو أفضل لبيئات تكنولوجيا المعلومات التقليدية. من ناحية أخرى ، يركز Terraform على الثبات ، والذي قد يكون أفضل للبيئات السحابية أو الهجينة.
9. الشيف
Chef هي أداة أخرى مفتوحة المصدر لإدارة التكوين تشبه إلى حد كبير Ansible أو Puppet ، وهي أداة أخرى شائعة الاستخدام من قبل فرق SREs و DevOps. يدعم Chef منصات متعددة ، مثل Windows و Ubuntu و Solaris و Linux و FreeBSD والمزيد. كما يمكنه التكامل مع مقدمي الخدمات المستندة إلى السحابة ، مثل Amazon و Google Cloud Platform و Azure وغيرها. ومع ذلك ، على عكس Ansible ، فإنه يعتمد على لغة برمجة Ruby ، مما يجعله خيارا سهلا للمطورين والفرق التي تشعر بالراحة في العمل بهذه اللغة. مثل الأدوات الأخرى التي ناقشناها ، فإن الهدف من أي من هذه الأدوات هو إزالة أكبر قدر ممكن من العمل اليدوي. يمكن أن تصبح البيئات معقدة ويصعب إدارتها يوميا ، وهذا هو السبب في أن أداة مثل Chef يمكن أن تكون نعمة لفرق SREs و DevOps.
المراقبة والتحليلات
أخيرا ، يحتاج مهندس موثوقية الموقع إلى القدرة على مراقبة تطبيقاته وإكمال مكدس تكنولوجيا المعلومات لضمان استمرار الوظائف والأداء والتوافر. يجب أن تكون أدوات المراقبة والتحليل هذه قادرة أيضا على إرسال تنبيهات فورية إذا انخفضت أي تطبيقات أو فشلت مقاييس الأداء هذه في تلبية العتبات المحددة مسبقا. لدى SREs مجموعة متنوعة من حلول وأدوات المراقبة المتاحة لها لضمان أن تكون SLA (اتفاقيات مستوى الخدمة) و SLO (أهداف مستوى الخدمة) دائما ضمن نطاق مناسب. دعونا نلقي نظرة على الأدوات والحلول الشائعة مثل Prometheus و Grafana و Kibana و Dotcom-Monitor.
10. بروميثيوس
مثل العديد من الأدوات الموجودة في هذه القائمة ، يعد Prometheus برنامجا آخر مفتوح المصدر يستخدمه مهندسو موثوقية الموقع. إنها واحدة من أكثر الأدوات شعبية مع SREs لأنها تعمل بشكل جيد مع Kubernetes ولديها مجموعة واسعة من الميزات والمكونات الإضافية التي تدعمها. يستخدم Prometheus لمراقبة وجمع المقاييس حول البنية التحتية والتطبيقات والمخرجات التي تجمعها البيانات في شكل لوحات معلومات وتصورات. أحد الاختلافات الرئيسية بين بروميثيوس وأدوات المراقبة الأخرى هو أن بروميثيوس يستخدم مخزن البيانات الخاص به لجمع البيانات حول المقاييس التي يمكنه مراقبتها. تعتمد الأدوات الأخرى على قاعدة بيانات منفصلة لسحب بيانات ومقاييس الرصد. ومع ذلك ، يمكن أن تتكامل Prometheus مع قائمة واسعة من قواعد البيانات الأخرى وحلول الجهات الخارجية.
11. غرافانا
Grafana هي أدوات تحليل ومراقبة مفتوحة المصدر تستخدمها SREs لتصور البيانات والمقاييس في لمحة. يمكن أيضا تكوين Grafana بتنبيهات مختلفة ، بحيث يمكن إخطار الفرق أو الأفراد المناسبين على الفور عند حدوث مشكلات. يمكن تكوين لوحات لوحة المعلومات باستخدام المقاييس الأكثر أهمية. تشمل مصادر البيانات التي تدعمها Grafana Prometheus و MySQL و Elasticsearch و SQL و AWS (Amazon Web Services) وغيرها الكثير. يمكن أيضا مشاركة لوحات المعلومات هذه بسهولة مع أعضاء الفريق الآخرين عن طريق إنشاء وإرسال عبر الرابط أو حتى لقطة سريعة. أخيرا ، يدعم Grafana الكثير من الأدوات التي تستخدمها SREs وفرقها يوميا عبر المكونات الإضافية ، مثل Splunk و MongoDB و Jira و Cloudflare وغيرها الكثير.
12. كيبانا
Kibana هو برنامج تصور لوحة معلومات آخر يحظى بشعبية بين SREs. Kibana هو تطبيق واجهة أمامية مجاني للاستخدام ، ومع ذلك ، فهو ملك لشركة Elasticsearch ، ويعمل بالاقتران مع Elastic Stack (ELK Stack سابقا). يحتوي Kibana على عدد كبير من الميزات وأنواع التصور ، مثل الخرائط الحرارية والمخططات الدائرية ومخططات السلاسل الزمنية وما إلى ذلك. ويمكن أيضا الاطلاع على هذه البيانات من خلال الخرائط الجغرافية. مثل الأدوات الأخرى ، يمكن مشاركة هذه التصورات بأمان مع أعضاء الفريق والعملاء وأصحاب المصلحة وما إلى ذلك. يدعم Kibana العديد من الأدوات الأخرى ، وعمليات تكامل الجهات الخارجية ، ولديه مجتمع مستخدم قوي للمشكلات الفنية واحتياجات الدعم.
13. دوت كوم مونيتور
Dotcom-Monitor هي منصة مراقبة شاملة تستخدمها المؤسسات لمراقبة كل شيء بدءا من مواقع الويب وتطبيقات الويب وخدمات الويب إلى الرؤية الكاملة الشاملة في البنية التحتية لتكنولوجيا المعلومات. توفر المنصة لمهندسي موثوقية الموقع الميزات التي يحتاجونها لإعداد متطلبات المراقبة المحددة الخاصة بهم وتخصيصها. يمكن للفرق تشغيل العديد من اتفاقيات مستوى الخدمة وتقارير الأداء عند الطلب، بالإضافة إلى عرض لوحات المعلومات في الوقت الفعلي لضمان الأداء المستمر للمكدس بأكمله. يتكامل Dotcom-Monitor أيضا مع منصات الاتصال التابعة لجهات خارجية وأدوات التنبيه التي تستخدمها فرق DevOps ، مثل Azure و Slack و PagerDuty و VictorOps وغيرها الكثير.
شاهد كيف يقارن Dotcom-Monitor بمنصات المراقبة الأخرى في السوق ، مثل Uptrends و Site24x7 و Datadog وغيرها.