نشر Heroku - كيفية دفع تطبيق ويب أو موقع إلى الإنتاج

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

الخطوة 1 - إنشاء المشروع

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

في مجلد جديد ، سأفتح محطة طرفية وأقوم بتشغيل الأمر من npm init -yأجل إنشاء مشروع جديد. سيتم كتابة الخادم الوهمي في Express ، لذلك نحتاج إلى تشغيل npm install expressالأمر لتثبيت هذه الوحدة.

بمجرد تثبيت هذه المكتبة ، يمكننا إنشاء ملف جديد لمشروعنا ، باسم app.js. داخلها سنكتب رمز خادمنا البسيط:

يمكننا بدء التطبيق عن طريق التشغيل node app.js. ثم يمكننا تجربتها على عنوان URL التالي //localhost:3000. في هذه المرحلة سترى الرسالة Hello Worldفي المتصفح.

الخطوة 2 - نظام التحكم في الإصدار

الخطوة التالية هي اختيار نظام التحكم في الإصدار ووضع الكود الخاص بنا في منصة تطوير في مستودع.

نظام التحكم في الإصدار الأكثر شيوعًا هو Git مع Github كمنصة تطوير ، لذلك هذا ما سنستخدمه هنا.

على GitHub ، انطلق وأنشئ مستودعًا جديدًا لتطبيقك ، مثل هذا:

لتحميل الكود المحلي الخاص بك إلى مستودع ، تحتاج إلى تشغيل الأوامر المدرجة في Github بعد النقر فوق Create repositoryالزر:

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

لذلك ، نحتاج إلى إنشاء ملف جديد .gitignoreوداخله كتابة الملف الذي نريد تجاهله.

الآن ، يمكننا كتابة الأوامر المذكورة في الصورة أعلاه (الأمر من GitHub).

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

الخطوة 3 - اربط المستودع بـ Heroku

في هذه الخطوة ، يمكننا ربط المستودع من Github بتطبيق Heroku.

أولاً ، قم بإنشاء تطبيق جديد على Heroku واتبع الخطوات المدرجة في النظام الأساسي.

بمجرد إنشاء التطبيق ، يجب أن تظهر نافذة مشابهة لذلك:

الآن، إذا نظرتم الى الملاحة في الجزء العلوي، سترى   Overview، Resources، Deploy، Metrics  وهلم جرا. تأكد من تحديد ذلك Deploy. ثم في الصف الثاني ، انقر فوق رمز GitHub.

ابحث عن التطبيق المطلوب ، وهو demo-deploy-app-09في حالتنا. ثم انقر فوق Connect.

بمجرد اتصال التطبيق بنجاح بحساب Heroku الخاص بك ، يمكنك النقر Deploy Branchلنشر التطبيق الخاص بك.

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

بمجرد نشر التطبيق ، يمكنك النقر فوق عرض لفتح التطبيق الخاص بك.

الخطوة 4 - تكوين Heroku لتشغيل التطبيق بشكل صحيح

إذا فتحت التطبيق في هذه المرحلة ، فمن المفترض أن ترى شيئًا مثل هذا:

هذا صحيح ، خطأ. هذا لأن Heroku لا يعرف كيف يبدأ تطبيقنا.

إذا كنت تتذكر ، فقد قمنا بتشغيل الأمر node app.jsلبدء التطبيق محليًا.

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

لحل هذه المشكلة، يجب علينا إنشاء ملف جديد اسمه Procfileمع المحتوى التالي: web: node ./app.js.

لتحديث تطبيقنا ، كل ما نحتاج إلى القيام به هو دفع التزام جديد بـ GitHub. إذا قمنا بتمكين Automatic Deploysالخيار ، فسيتم سحب الرمز تلقائيًا إلى Heroku. وإلا فإننا بحاجة إلى النقر Deploy Branchمرة أخرى.

بمجرد إعادة بناء التطبيق ، يجب أن نرى أنه يعمل على النحو التالي:

الخطوة 5 - كيفية إضافة وظيفة إضافية

إحدى المزايا الرئيسية التي يوفرها Heroku هي حقيقة أنه يمكنك بسهولة إضافة الموارد في شكل add-onsمشروعك. تأتي هذه الموارد الخارجية في شكل قواعد بيانات ، وأدوات تسجيل ومراقبة ، وأدوات CI و CD ، أو أدوات اختبار.

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

انطلق وانقر فوق Find more add-onsثم ابحث عن Loadmill.

Loadmill هي أداة اختبار رائعة حقًا لاختبار الانحدار واختبار الحمل.

انطلق وانقر على Install…. ثم اختر التطبيق الذي تريد ربطه.

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

في علامة تبويب الموارد ، يمكنك رؤية المورد المضاف حديثًا:

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

استنتاج

يسمح Heroku للمطورين بنشر تطبيق على خادم ويب بسرعة وبشكل غير مؤلم تقريبًا.

كما أنه يوفر الكثير من المكونات الإضافية التي يمكنك دمجها في تطبيقك.

سيسمح لك حل PaaS دائمًا بالتحرك بشكل أسرع من الحل باستخدام VPS حيث يتعين عليك تكوين كل شيء من الألف إلى الياء.