Kubernetes पर Swift का डिप्लॉयमेंट: शुरुआती लोगों के लिए बुनियादी गाइड

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

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

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

Kubernetes पर Swift का डिप्लॉयमेंट: शुरुआती लोगों के लिए बुनियादी गाइड

\n\n

Swift मुख्य रूप से iOS और macOS डेवलपमेंट से जुड़ा है, लेकिन इसकी सर्वर-साइड क्षमताएं (Vapor और Kitura जैसे फ्रेमवर्क की बदौलत) पूर्ण बैकएंड समाधान बनाने की अनुमति देती हैं। यदि आपने पहले से ही Swift में एक सर्वर एप्लिकेशन लिखा है और इसकी विश्वसनीयता, स्केलेबिलिटी और प्रबंधन में आसानी सुनिश्चित करना चाहते हैं, तो Kubernetes (K8s) एक आदर्श विकल्प है। इस गाइड में, हम चरण दर चरण Kubernetes पर Swift एप्लिकेशन को डिप्लॉय करने की प्रक्रिया को समझेंगे, कंटेनरीकरण से शुरू करके क्लस्टर में चलाने तक। यह सामग्री उन डेवलपर्स के लिए है जो Swift की मूल बातों से परिचित हैं, लेकिन कंटेनर ऑर्केस्ट्रेशन सीखना शुरू कर रहे हैं।

\n\n

Swift और Kubernetes एक बेहतरीन जोड़ी क्यों हैं

\n\n

Kubernetes कंटेनरीकृत एप्लिकेशनों की तैनाती, स्केलिंग और प्रबंधन को स्वचालित करने की एक प्रणाली है। Swift, बदले में, एक नेटिव बाइनरी में कंपाइल होता है, जो इसे हल्के कंटेनरों में चलाने के लिए एक आदर्श उम्मीदवार बनाता है। इस तालमेल के मुख्य लाभ:

\n\n
    \n
  • प्रदर्शन: Swift एप्लिकेशन को वर्चुअल मशीन (Java की तरह) या इंटरप्रेटर (Python की तरह) की आवश्यकता नहीं होती, जिससे संसाधनों की खपत कम होती है।
  • \n
  • टाइप सुरक्षा: Swift कंपाइलर बिल्ड चरण में कई त्रुटियों को रोकता है, जो प्रोडक्शन वातावरण के लिए महत्वपूर्ण है।
  • \n
  • इकोसिस्टम: Vapor फ्रेमवर्क HTTP, डेटाबेस और WebSockets के साथ काम करने के लिए तैयार उपकरण प्रदान करता है, जो K8s के साथ एकीकरण को सरल बनाता है।
  • \n
  • स्केलिंग: Kubernetes आपके Swift सर्वर की प्रतिकृतियों को स्वचालित रूप से प्रबंधित करता है, उच्च उपलब्धता सुनिश्चित करता है।
  • \n
\n\n

चरण 1: कंटेनरीकरण के लिए Swift एप्लिकेशन तैयार करना

\n\n

Kubernetes में एप्लिकेशन डिप्लॉय करने से पहले, इसे Docker इमेज में पैक करना होगा। Vapor फ्रेमवर्क पर आधारित एक उदाहरण देखें। मान लें कि आपके पास एक सरल एप्लिकेशन MySwiftApp है जिसमें एक एंडपॉइंट है।

\n\n

प्रोजेक्ट संरचना:

\n
\nMySwiftApp/\n├── Sources/\n│   └── App/\n│       └── main.swift\n├── Package.swift\n└── Dockerfile\n
\n\n

main.swift कोड (सरल HTTP सर्वर):

\n
import Vapor\n\nlet app = Application()\napp.get("hello") { req in\n    return "Hello from Swift on Kubernetes!"\n}\ntry app.run()\n
\n\n

Package.swift फ़ाइल:

\n
// swift-tools-version:5.8\nimport PackageDescription\n\nlet package = Package(\n    name: "MySwiftApp",\n    platforms: [.macOS(.v12)],\n    dependencies: [\n        .package(url: "https://github.com/vapor/vapor.git", from: "4.0.0")\n    ],\n    targets: [\n        .executableTarget(\n            name: "App",\n            dependencies: ["Vapor"]\n        )\n    ]\n)\n
\n\n

अब एप्लिकेशन को बिल्ड और चलाने के लिए एक Dockerfile बनाएं। इमेज के आकार को कम करने के लिए मल्टी-स्टेज बिल्ड का उपयोग करें:

\n\n
# ---- Build Stage ----\nFROM swift:5.8 as builder\nWORKDIR /app\nCOPY Package.swift Package.resolved ./\nRUN swift package resolve\nCOPY . .\nRUN swift build -c release --static-swift-stdlib\n\n# ---- Run Stage ----\nFROM ubuntu:22.04\nWORKDIR /app\nCOPY --from=builder /app/.build/release/App .\nEXPOSE 8080\nCMD ["./App"]\n
\n\n

इमेज बनाएं:

\n
docker build -t my-swift-app:latest .\n
\n\n

चरण 2: कंटेनर रजिस्ट्री में इमेज प्रकाशित करना

\n\n

Kubernetes के साथ काम करने के लिए, इमेज एक रजिस्ट्री से उपलब्ध होनी चाहिए। Docker Hub या किसी अन्य (GitHub Container Registry, GitLab, AWS ECR) का उपयोग करें।

\n\n
docker tag my-swift-app:latest your-dockerhub-username/my-swift-app:latest\ndocker push your-dockerhub-username/my-swift-app:latest\n
\n\n

your-dockerhub-username को अपने लॉगिन से बदलें। यदि आप एक निजी रजिस्ट्री का उपयोग कर रहे हैं, तो K8s मेनिफेस्ट में imagePullSecrets कॉन्फ़िगर करना न भूलें।

ब्लॉग

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