نشر 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 حيث يتعين عليك تكوين كل شيء من الألف إلى الياء.