إليك كيفية جعل البنية الأساسية السحابية مستقرة وآمنة وقابلة للتطوير.

بدء التشغيل DevOps صعب

هناك الكثير من الأشياء التي يجب أن تقلق بشأنها عند بدء التشغيل. التسويق ، وتطوير المنتجات ، والحفاظ على فريقك معا. يميل كل شيء إلى اتخاذ نمط "الحد الأدنى القابل للتطبيق" المتمثل في الحصول على الحد الأدنى الأعلى حتى لا تتعطل وتحرق.

كمهندس معماري سحابي للمؤسسة ، فأنا أعرف بشكل مباشر مقدار العمل الذي يمكن القيام به في مجال DevOps. بصفتي مؤسسًا لبدء التشغيل ، أعرف أيضًا قلة الوقت الذي يجب عليك إنفاقه على الأشياء - إنه أشبه بضرورة قضاء بعض الوقت في كل الأشياء دفعة واحدة.

وللأسف ، تميل Cloud Infrastructure أيضًا إلى اتباع هذه القاعدة ، وتميل جميع "أفضل الممارسات" في هذا المجال إلى اتباع أنماط تتطلب قدراً كبيراً من الاستثمار في الوقت ، وهو أمر لا يتطلبه بدء التشغيل.

من خلال هذا الدليل ، آمل أن أقدم لكم نظرة عامة حول الشكل الذي يمكن أن تبدو عليه "البنية التحتية السحابية الدنيا القابلة للتطبيق" ، مع التركيز على الاستقرار والأمان وقابلية التوسع.

الاستقرار

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

استعادة من الفشل الكارثي (النسخ الاحتياطي التلقائي)

أنت تعرف سيناريو الحالة الأسوأ - لقد اخترقت الخادم والقرص. يتمثل الحل الأدنى القابل للتطبيق في هذا الأمر في إجراء نسخ احتياطية مجدولة ومؤتمتة بحيث تمنع فقد البيانات.

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

  • AWS
    إذا كنت تستخدم Amazon ، فإنني أوصي باستخدام CloudWatch. يتيح لك إنشاء وظائف مجدولة (مثل اللقطات التلقائية) - راجع هذا الدليل
  • GCP
    تسمح لك Google بجدولة اللقطات أيضًا - راجع هذا الدليل
  • سحابة اللاأدري
    ألا تريد قفل عملية النسخ الاحتياطي لمزود الخدمة السحابية لديك؟ ستكون أهم البيانات الخاصة بك هي قاعدة البيانات وأي عمليات تحميل قد يتم توفيرها. بالنسبة لقاعدة البيانات ، يجب أن تتطلع إلى كتابة برنامج نصي يقوم بشكل دوري بتفريغ قاعدة البيانات وإرسال البيانات إلى موقع آمن (دلو s3 خاص ، نظام الملفات الموزع ، إلخ.) سيكون هذا أكثر عرضة للخطأ من طريقة محددة للنظام الأساسي ، ومع ذلك ، كن حذرًا.

sure ake احرص على اختبار طريقة استعادة النسخة الاحتياطية أو المخاطرة بما حدث لـ GitLab ، حيث فشلت جميع أساليب النسخ الاحتياطي الخمسة لأنها لم تختبر عملية الاستعادة مطلقًا.

إعادة تشغيل الخدمة تلقائيًا في حالة إعادة تشغيل الخادم

هناك جزءان لإعادة التشغيل التلقائي. واحد ، عند تعطل التطبيق ، هل يبدأ من جديد؟ والثاني ، عند إعادة تشغيل الخادم الخاص بك ، هل يبدأ تطبيقك تلقائيًا؟

Crontab —Crontab هي أداة مفيدة تتيح لك جدولة المهام بسهولة. ربما تكون أبسط طريقة لبدء المكدس تلقائيًا هي إنشاء وظيفة crontab يتم تشغيلها عند إعادة التشغيل - راجع هذا الدليل عن كيفية القيام بذلك.

/etc/init.d - تدعم معظم الأنظمة البرامج النصية init.d. باستخدام init.d ، يمكنك تحديد البرامج النصية التي يمكن تشغيلها عند التمهيد وأيضًا دعم أوامر الإيقاف والإيقاف والحالة (على سبيل المثال ، خدمة start myscript) لتمنحك المزيد من التحكم في تطبيقاتك. إنه أكثر تعقيدًا من crontab ، ولكنه يمنحك المزيد من الميزات - راجع هذا المنشور لإعداد برنامج init.d.

إذا كنت مهتمًا بالاختلافات بين هذه الطرق ، تحقق من منشور تبادل المكدس هذا.

إعادة تشغيل الخدمة التلقائي في حالة تعطل التطبيق

التطبيقات ليست دائما مستقرة ويمكن أن تكون عرضة للتعطل في أوقات حرجة. هناك طريقة جيدة للحفاظ على الاستقرار وهي الحصول على أداة يمكن إعادة تشغيلها تلقائيًا.

  • NodeJS - إلى الأبد أو PM2
  • عام - تحقق من هذا المنشور حول كيفية إعادة تشغيل العمليات باستخدام البرامج النصية للباش

تأكد دائمًا من توفر الموارد الكافية

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

  • AWS - CloudWatch هي أداة جيدة للمراقبة. يمكنك إعداد تنبيهات البريد الإلكتروني في أحداث معينة.
  • توفر مراقبة GCP - Stackdriver وظائف مماثلة ، وتتكامل أيضًا مع أنظمة المراسلة مثل Slack.
  • يعد تطبيق Cloud Agnostic - Crontab مفيدًا مرة أخرى لهذا النوع من المهام ، لكنك ستحتاج إلى كتابة برنامج نصي يتحقق من موارد النظام ويرسل رسائل البريد الإلكتروني عندما تصل إلى الحد الأقصى.

sure تأكد من توثيق طريقة بدء التشغيل التلقائي ونصوص التمهيد. احتفظ بالكود في التحكم في الإصدار وإلا فسوف تواجه خطرًا عندما يتعلق الأمر بالحجم نظرًا لرمز الغموض الذي نسيه

الأمن

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

SSL

في الوقت الحاضر ، تعد طبقة المقابس الآمنة (SSL) من المتطلبات الأساسية لتطبيق SaaS الحديث ، حيث يرفض العديد من المستخدمين استخدام التطبيقات دون دعم https. أدوات مثل Let’s Encrypt تجعل الحصول على الشهادات أمرًا سهلاً ومجانيًا.

خادم الأمن

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

  • لا ينبغي أن تكون قواعد البيانات متاحة للوصول إلى الإنترنت المفتوح.
  • حافظ على تحديث التطبيقات ونظام التشغيل. غالبًا ما توجد تحديثات أمان تحمي خادمك من نقاط ضعف جديدة.
  • أغلق جميع المنافذ باستثناء المنافذ الضرورية للغاية.
  • لا تستخدم اسم المستخدم / كلمات المرور - استخدام المفاتيح أكثر أمانًا.
  • لا تمنح الأشخاص مفتاح الجذر عندما يحتاجون إلى الوصول إلى الخادم الخاص بك. قم بإنشاء حسابات جديدة واجعلهم يعطونك مفتاحهم العام.

إدارة سرية

يجب إدارة مفاتيح API وبيانات الاعتماد والتكوينات وجميع البيانات الحساسة. أنا متردد دائمًا عند وضع هذا النوع من البيانات على السحابة ، ليس فقط لأنني لا أعرف ما الذي يمكن لموفر السحابة أن ينظر إليه ، ولكن أيضًا لأنه إذا حصلوا على حسابي ، فإن جميع أسراري أصبحت مكشوفة.

  • احتفظ بأكبر عدد ممكن من الأسرار المحلية.
  • لا تستخدم أسرار القرص الصلب في التطبيق الخاص بك - يمكنك إنشاء ملفات تهيئة يمكنك تخزينها خارج رمز التطبيق.
  • لا تخزن الأسرار في Github repo (كن حذرًا من السحابة بشكل عام).
  • تجنب النص العادي عند تخزين كلمات مرور المستخدم والأسرار الخاصة بك

قابلية التوسع

"في معظم الحالات عندما يتعلق الأمر بالتدرج ، فلن تحتاج إلى ذلك (عند البدء)."

إذا كان لديك الوقت والإرادة والمهارات (أو المال) ، فإن وضع بعض الجهد في قابلية التوسع يمكن أن يمنحك مزايا في المستقبل. إذا لم يكن الأمر كذلك ، أوصي بتجاهله والتركيز على النقطتين السابقتين.

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

بالحاويات

أدوات مثل Docker و Kubernetes تعتبر رائعة في التوسع

فوزًا سهلاً عندما يتعلق الأمر بالتوسيع هو تعبئة التطبيق الخاص بك. تحقق من عامل الميناء للحصول على دليل جيد. هنا بعض النصائح:

  • السماح بتكوين التطبيق الخاص بك عبر متغيرات البيئة. أشياء مثل معلومات قاعدة البيانات واسم المستخدم / كلمة المرور للمشرف المبدئي سوف تقطع شوطًا كبيرًا عندما يتعلق الأمر بإنشاء خط أنابيب CI / CD وأتمتة نشر التطبيق.
  • احتفظ بأكبر قدر ممكن من الحاوية الخاصة بك. سيسمح هذا لعمليات نشر عديمي الجنسية عبر أدوات مثل Kubernetes.
  • قم بتثبيت الوحدات النمطية الخاصة بك كجزء من عملية الإنشاء لتقليل التبعيات وحجم الصورة.

الحفاظ على تكوينات الخوادم الخاصة بك موثقة جيدًا

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

استنتاج

هناك الكثير من العمل المتضمن للوقوف وصيانة البنية التحتية السحابية. الشركات الناشئة يكون الأمر أصعب لأنه ليس لديهم وقت ، وغالبًا ما تكون مهاراتهم غير متوفرة عندما يتعلق الأمر بـ DevOps. ما يمكنك القيام به هو التركيز على الأساسيات. الأمن والاستقرار ، وإذا كان لديك الوقت ، والتدرجية.

يساعدك ServiceBot في توسيع نطاق خدمات SaaS الخاصة بك عن طريق أتمتة عمليات النشر (CI / CD) ، وإدارة اشتراكاتك ، وإزالة نقاط الاحتكاك الشائعة بينك وبين عملائك. تحقق من ذلك