نقل تطبيقك إلى السحابة؟ إليك ما تحتاج إلى معرفته

جدول المحتويات:

نقل تطبيقك إلى السحابة؟ إليك ما تحتاج إلى معرفته
نقل تطبيقك إلى السحابة؟ إليك ما تحتاج إلى معرفته
Anonim

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

ما الذي يجعل السحابة مفيدة للغاية؟

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

ومع ذلك ، فإن موفري السحابة الحديثة مثل Amazon Web Services (AWS) و Google Cloud Platform و Microsoft Azure و Digital Ocean (DO) يقدمون أكثر بكثير من مجرد خوادم مقابل رسوم. لقد جعلوا من أعمالهم تحسين كفاءة عملياتهم وتزويد المطورين بأدوات سهلة الاستخدام تجعل إنشاء التطبيقات أسهل كثيرًا.

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

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

توفر السحابة أيضًا الأموال من خلال أتمتة المهامعلى سبيل المثال ، AWS's Relational Database Service (RDS) هي خدمة SQL مُدارة بالكامل تقوم بأتمتة الكثير من مهام إدارة قواعد البيانات. قد تدفع بالفعل لشخص ما للقيام بهذه المهام نيابة عنك على الخوادم الخاصة بك ؛ إذا كنت تستخدم RDS ، فيمكن لهذا الشخص إدارة المزيد من قواعد البيانات وقضاء بقية وقته بشكل أكثر كفاءة.

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

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

تحديث الهندسة المعمارية الخاصة بك باستخدام الحلول السحابية

صورة
صورة

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

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

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

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

ما الخدمات التي يجب أن أبحث فيها؟

بغض النظر عما إذا كنت تختار تصميم الخدمات المصغرة ، يمكن أن تكون الحلول السحابية الأخرى مفيدة للغاية.

سنناقش بعض خدمات AWS ، لأنها رائدة الصناعة ، لا سيما في عدد الخدمات التي تقدمها. ومع ذلك ، فإن معظم المنتجات الرئيسية لديها منتجات مكافئة متوفرة لدى موفري السحابة الآخرين مثل Azure و GCP و Digital Ocean.

تخزين كائن السحابة (S3)

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

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

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

يعد التبديل إلى التخزين المستند إلى S3 عملية بسيطة ، ولكن هناك حلول مختلطة ، مثل بوابة التخزين من AWS.

وظائف السحابة

محرر AWS لامدا
محرر AWS لامدا

وظائف السحابة مثل Lambda مفيدة بشكل لا يصدق - فهي تتيح لك تشغيل التعليمات البرمجية في السحابة دون التفكير في الخوادم. ما عليك سوى طلب تنفيذ وظيفة ، إما مباشرة أو من واجهة برمجة تطبيقات مثل AWS’s API Gateway ، وسيتم وضعها في قائمة الانتظار وتشغيلها على خوادم Lambda.

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

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

موازن التحميل والتحجيم التلقائي

موازين التحميل هي أجهزة شبكة تقسم حركة المرور بين الخوادم.تقليديًا ، يجب عليك إعداد خادم وتهيئته بنفسك باستخدام برنامج مثل HAProxy. في AWS ، تم دمجها في الشبكة ، وعليك ببساطة تشغيلها ودفع رسوم شهرية مقابل إحداها.

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

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

صورة
صورة

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

خطوط أنابيب CI / CD الآلية

صورة
صورة

التكامل المستمر / النشر المستمر هي عملية إعداد بنية مؤتمتة لتطبيقك يتم نشرها على الخادم كلما قمت بإجراء تغييرات في التحكم بالمصادر.

بشكل أساسي ، تدفع الالتزام بـ Github (أو أي مستودع آخر تستخدمه) ، وتبدأ خدمة مثل AWS CodePipeline خادم إنشاء. يبني هذا الخادم تطبيقك ويختبره ، وإذا نجح ، فإنه يرسل البنية النهائية إلى خوادمك للتحديث. إذا كان لديك إعداد تلقائي للتحجيم ، فيمكن القيام بذلك من خلال نشر أزرق / أخضر مع خيار التراجع السريع والسهل إذا لزم الأمر.

المدمج في شبكة تسليم المحتوى (CDN)

يمكن أن يؤدي الحصول على CDN إلى تسريع أوقات التسليم بجدية. نظرًا لأن AWS هي في الأساس قوة حوسبة عالمية عظمى ، فإن شبكة CDN لديها نقاط اتصال متقدمة في جميع أنحاء العالم.العديد من مقدمي الخدمات السحابية الآخرين لديهم حلول مماثلة ؛ تعد شبكة CDN السحابية من Google واحدة من الأسرع والأكثر مرونة نظرًا لأن Google تتحكم بالفعل في الكثير من البنية التحتية التي تشكل الإنترنت.

هل يمكنك الهجرة بدون توقف؟

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

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

الخيار الثاني سينتج عنه نهج هجين وهو ما تختاره معظم الشركات الكبيرة لأنه أكثر فعالية من حيث التكلفة لنقل الأشياء التي تستفيد أكثر. لدى AWS العديد من الخدمات التي تعمل من خلال دمج الأجهزة المحلية مع السحابة.

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

صورة
صورة

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

موضوع شعبي