نشر تطبيقات Kotlin: من VPS إلى السحابة دون ألم

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

كود Kotlin الخاص بك يعمل محليًا. ماذا بعد؟

\n\n

لقد كتبت تطبيقًا رائعًا بلغة Kotlin. إنه يعمل بشكل مثالي على حاسوبك المحمول، وتمر الاختبارات، وتستجيب نقاط النهاية (endpoints) على الفور. لكن السحر الحقيقي يبدأ فقط عندما يخرج التطبيق إلى النور — إلى خادم حقيقي، حيث سيراه المستخدمون.

\n\n

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

\n\n

التحضير: ما تحتاج معرفته قبل نشر Kotlin

\n\n

قبل أن نتعمق في التفاصيل، دعنا نتأكد من أن لدينا الأساسيات. لنشر تطبيق Kotlin، ستحتاج إلى:

\n\n
    \n
  • القطعة الأثرية المجمعة (Artifact) — عادةً ما يكون ملف JAR (لـ Spring Boot، Ktor) أو ملف WAR (لمشاريع Java EE القديمة). يتم تجميع Kotlin إلى كود بايت JVM، لذا فإن جميع أدوات Java القياسية تعمل بشكل ممتاز.
  • \n
  • بيئة تشغيل Java (JRE) — على الأقل الإصدار 11، ويفضل 17 أو 21. يستخدم Kotlin بنشاط ميزات الإصدارات الجديدة من Java.
  • \n
  • نظام البناء — Gradle أو Maven. سنستخدم Gradle، لأنه المعيار الفعلي لمشاريع Kotlin.
  • \n
\n\n

مثال على أبسط أمر لبناء تطبيق Kotlin:

\n\n
./gradlew clean build
\n\n

بعد التنفيذ، سيظهر ملف JAR جاهز للتشغيل في المجلد build/libs/.

\n\n

نشر Kotlin على VPS: الطريقة التقليدية التي تعمل

\n\n

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

\n\n

اختيار VPS وإعداد الخادم

\n\n

لتطبيقات Kotlin، أي VPS يعمل بنظام Linux (Ubuntu 22.04 LTS هو اختيار ممتاز) سيكون مناسبًا. الحد الأدنى من المتطلبات: 1-2 جيجابايت RAM، 20-30 جيجابايت SSD. نوصي بمزودي خدمة يتمتعون بدعم جيد: DigitalOcean، Vultr، Hetzner أو Timeweb (للمستخدمين الروس).

\n\n

بعد شراء الخادم، أول شيء نقوم به هو تحديث الحزم وتثبيت Java:

\n\n
sudo apt update && sudo apt upgrade -y\nsudo apt install openjdk-17-jre-headless -y\njava -version
\n\n

الآن، لننشئ مستخدمًا بسيطًا لتشغيل التطبيق (لا تقم أبدًا بتشغيله تحت صلاحيات root!):

\n\n
sudo useradd -m -s /bin/bash kotlinapp\nsudo passwd kotlinapp
\n\n

تشغيل تطبيق Kotlin على VPS

\n\n

لننسخ ملف JAR إلى الخادم عبر SCP أو SFTP:

\n\n
scp build/libs/myapp-1.0.0.jar kotlinapp@your-server:/home/kotlinapp/app.jar
\n\n

الآن، لنشغل التطبيق. للتبسيط، سنستخدم nohup لمنع العملية من الموت عند إغلاق SSH:

\n\n
nohup java -jar /home/kotlinapp/app.jar --server.port=8080 &
\n\n

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

\n
    \n
  • خدمة Systemd — لإعادة تشغيل التطبيق تلقائيًا بعد الأعطال وعند بدء تشغيل الخادم.
  • \n
  • Nginx — كخادم وكيل عكسي لـ HTTPS، والتوازن، والملفات الثابتة.
  • \n
  • المراقبة — على الأقل تسجيل بسيط (logging) والتحقق من وقت التشغيل (uptime).
  • \n
\n\n

مثال على خدمة systemd لتطبيق Kotlin (/etc/systemd/system/kotlinapp.service):

\n\n
[Unit]\nDescription=تطبيق Kotlin\nAfter=network.target\n\n[Service]\nUser=kotlinapp\nWorkingDirectory=/home/kotlinapp\nExecStart=/usr/bin/java -jar /home/kotlinapp/app.jar --server.port=8080\nRestart=always\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.targe                

المدونات

توصيات الكتب