VPS पर Kotlin एप्लिकेशन का डिप्लॉयमेंट: उन्नत स्तर

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

VPS पर Kotlin एप्लिकेशन का डिप्लॉयमेंट: उन्नत उपयोगकर्ताओं के लिए चरण-दर-चरण मार्गदर्शिका

\n\n

Kotlin में डेवलपमेंट केवल आधा काम है। असली महारत तब दिखती है जब आपका एप्लिकेशन आपके अपने VPS सर्वर पर प्रोडक्शन वातावरण में काम करना शुरू करता है। इस लेख में, हम Kotlin एप्लिकेशन के डिप्लॉयमेंट की उन्नत तकनीकों पर चर्चा करेंगे: fat JAR बनाने से लेकर systemd के साथ निर्बाध संचालन, Nginx के माध्यम से रिवर्स प्रॉक्सी, और CI/CD के माध्यम से ऑटोमेशन तक। यह सामग्री उन डेवलपर्स के लिए है जो Kotlin की मूल बातों से पहले से परिचित हैं और पेशेवर स्तर पर आगे बढ़ना चाहते हैं।

\n\n

1. Kotlin एप्लिकेशन की प्रोडक्शन बिल्ड तैयार करना

\n\n

पहला कदम एक अनुकूलित बिल्ड बनाना है। हम Gradle के लिए shadow प्लगइन का उपयोग करते हैं, जो सभी निर्भरताओं को एक एक्जीक्यूटेबल JAR फ़ाइल (fat JAR) में पैक करेगा।

\n\n

build.gradle.kts में जोड़ें:

\n\n
plugins {\n    kotlin("jvm") version "1.9.22"\n    id("com.github.johnrengelman.shadow") version "8.1.1"\n    application\n}\n\napplication {\n    mainClass.set("com.example.MainKt")\n}\n\ntasks.shadowJar {\n    archiveBaseName.set("app")\n    archiveClassifier.set("")\n    archiveVersion.set("")\n    minimize()\n}
\n\n

JAR को कमांड से बनाएं:

\n\n
./gradlew shadowJar
\n\n

परिणामस्वरूप, आपको build/libs/app.jar फ़ाइल मिलेगी। प्रोडक्शन के लिए, डीबग लॉग को अक्षम करने और एनवायरनमेंट वेरिएबल के माध्यम से लॉगिंग स्तर सेट करने की अनुशंसा की जाती है।

\n\n

प्रोडक्शन के लिए logback.xml कॉन्फ़िगरेशन का उदाहरण:

\n\n
<configuration>\n    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">\n        <file>/var/log/app/app.log</file>\n        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\n            <fileNamePattern>/var/log/app/app.%d{yyyy-MM-dd}.log</fileNamePattern>\n            <maxHistory>30</maxHistory>\n        </rollingPolicy>\n        <encoder>\n            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>\n        </encoder>\n    </appender>\n\n    <root level="INFO">\n        <appender-ref ref="FILE"/>\n    </root>\n</configuration>
\n\n

2. स्वचालित स्टार्टअप के लिए systemd सेवा बनाना

\n\n

एप्लिकेशन को सिस्टम स्टार्टअप पर स्वचालित रूप से शुरू करने और विफलता पर पुनरारंभ करने के लिए, हम systemd का उपयोग करते हैं। फ़ाइल /etc/systemd/system/kotlin-app.service बनाएं:

\n\n
[Unit]\nDescription=Kotlin Application Service\nAfter=network.target\n\n[Service]\nType=simple\nUser=appuser\nGroup=appuser\nWorkingDirectory=/opt/kotlin-app\nExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar /opt/kotlin-app/app.jar\nRestart=on-failure\nRestartSec=10\nStandardOutput=journal\nStandardError=journal\nEnvironment="APP_ENV=production"\nEnvironment="DB_URL=jdbc:postgresql://localhost:5432/mydb"\n\n[Install]\nWantedBy=multi-user.target
\n\n

फ़ाइल बनाने के बाद, निष्पादित करें:

\n\n
sudo systemctl daemon-reload\nsudo systemctl enable kotlin-app\nsudo systemctl start kotlin-app
\n\n

स्थिति जांचें:

\n\n
sudo systemctl status kotlin-app
\n\n

लॉग को journalctl -u kotlin-app -f के माध्यम से देखा जा सकता है।

\n\n

3. SSL के साथ रिवर्स प्रॉक्सी के रूप में Nginx को कॉन्फ़िगर करना

\n\n

Nginx लोड बैलेंसिंग, कैशिंग और HTTPS प्रदान करेगा। Nginx और Certbot इंस्टॉल करें:

\n\n
sudo apt update\nsudo apt install nginx certbot python3-certbot-nginx
\n\n

कॉन्फ़िगरेशन बनाएं /etc/nginx/sites-available/kotlin-app:

\n\n
server {\n    listen 80;\n    server_name yourdomain.com;\n    return 301 https://$server_name$request_uri;\n}\n\nserver {\n    listen 443 ssl http2;\n    server_name yourdomain.com;\n\n    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;\n    ssl_certificate_key /etc/letse                

ब्लॉग

पुस्तक अनुशंसाएँ