Ubuntu से आगे: Canonical द्वारा बनाए गए डेवलपर टूल्स जो आपके वर्कफ़्लो को सुपरचार्ज करेंगे
जब आप Canonical के बारे में सोचते हैं, तो सबसे पहले Ubuntu का ख्याल आता है। यह डेवलपर्स के लिए सबसे लोकप्रिय Linux डिस्ट्रीब्यूशन है, क्लाउड इंस्टेंस के लिए डिफ़ॉल्ट विकल्प है, और ओपन-सोर्स ऑपरेटिंग सिस्टम का चेहरा है। लेकिन Canonical का विज़न डेस्कटॉप और सर्वर OS से कहीं आगे तक फैला हुआ है। पिछले कुछ वर्षों में, कंपनी ने चुपचाप डेवलपर टूल्स का एक सूट तैयार किया है जो एनवायरनमेंट मैनेजमेंट, एप्लिकेशन पैकेजिंग, सर्विस ऑर्केस्ट्रेशन और बेयर-मेटल प्रोविज़निंग में वास्तविक समस्याओं का समाधान करता है।
फ्रंटएंड डेवलपर्स, फुल-स्टैक इंजीनियर्स और DevOps प्रैक्टिशनर्स के लिए, ये टूल्स "मेरे पास एक आइडिया है" और "यह प्रोडक्शन-जैसे एनवायरनमेंट में चल रहा है" के बीच के समय को कम कर सकते हैं। इस डीप डाइव में, हम Multipass, LXD, Juju, Snapcraft और MAAS का पता लगाएंगे, देखेंगे कि वे एक साथ कैसे फिट होते हैं, और उन ठोस तरीकों पर गौर करेंगे जिनसे वे आपके दैनिक वर्कफ़्लो को तेज़ करते हैं।
Canonical इकोसिस्टम: सिर्फ एक Linux डिस्ट्रो से अधिक
Canonical का डेवलपर टूलचेन कुछ मुख्य सिद्धांतों के आसपास डिज़ाइन किया गया है: गति, दोहराव और न्यूनतम ओवरहेड। आपको मैन्युअल रूप से वर्चुअल मशीन कॉन्फ़िगर करने या Docker नेटवर्किंग से जूझने के लिए मजबूर करने के बजाय, ये टूल्स घर्षण को दूर करते हैं और आपको कोड लिखने पर ध्यान केंद्रित करने देते हैं। वे "इंफ्रास्ट्रक्चर एज़ कोड" और डिक्लेरेटिव कॉन्फ़िगरेशन की अवधारणा को भी अपनाते हैं, जो आधुनिक CI/CD पाइपलाइनों के साथ पूरी तरह से मेल खाता है।
यह इकोसिस्टम स्टैक की हर परत को कवर करता है:
- एनवायरनमेंट निर्माण– Multipass, LXD -एप्लिकेशन पैकेजिंग– Snapcraft, Charmcraft -सर्विस ऑर्केस्ट्रेशन– Juju, Charmed Operators -बेयर-मेटल प्रोविज़निंग– MAAS
फ्रंटएंड डेवलपर्स अक्सर केवल Node.js, एक ब्राउज़र और शायद एक साधारण बैकएंड मॉक के साथ इंटरैक्ट करते हैं। लेकिन जिस क्षण आपको कई ऑपरेटिंग सिस्टम पर परीक्षण करने, वास्तविक डेटाबेस के साथ एकीकृत करने, या माइक्रोसर्विस आर्किटेक्चर का अनुकरण करने की आवश्यकता होती है, Canonical के टूल्स अपरिहार्य हो जाते हैं।
Multipass: आपकी उंगलियों पर इंस्टेंट Ubuntu VM
Multipass एक डेवलपर का सबसे अच्छा दोस्त है जब आपको सेकंडों में एक स्वच्छ Ubuntu एनवायरनमेंट की आवश्यकता होती है। यह मांग पर वर्चुअल मशीन लॉन्च और प्रबंधित करने के लिए एक कमांड-लाइन इंटरफ़ेस प्रदान करता है। प्रत्येक इंस्टेंस cloud-init सपोर्ट के साथ आता है, इसलिए आप लॉन्च के दौरान कस्टम स्क्रिप्ट या कॉन्फ़िगरेशन फ़ाइलें पास कर सकते हैं।
फ्रंटएंड कार्य के लिए यह क्यों मायने रखता है:- ड्यूल-बूटिंग के बिना एक नए Linux डेस्कटॉप पर अपने प्रोग्रेसिव वेब ऐप का परीक्षण करना।
- क्रॉस-ब्राउज़र परीक्षण के लिए Ubuntu पर एक स्थानीय Selenium ग्रिड चलाना।
- बग को सटीक रूप से रिप्रोड्यूस करने के लिए ग्राहक के एनवायरनमेंट का क्लोन बनाना।
- एक अलग VM पर डेटाबेस सर्वर (PostgreSQL, MongoDB) को तुरंत स्पिन अप करना।
Multipass का उपयोग करते हुए एक सामान्य वर्कफ़्लो यहां दिया गया है:
# Launch a new VM named "dev-env" with 4GB RAM and 2 CPUs
multipass launch --name dev-env --memory 4G --cpus 2
# Run a command inside the VM
multipass exec dev-env -- sudo apt update && sudo apt install -y nginx
# Mount your local project folder into the VM
multipass mount /home/user/myproject dev-env:/home/ubuntu/project
कुछ सेकंड के बाद, आपके पास आपके होस्ट OS से पूरी तरह से अलग, स्थानीय रूप से चलने वाला एक प्रोडक्शन-ग्रेड Ubuntu सर्वर है। कोई VirtualBox GUI नहीं, कोई Hyper-V मैनेजर नहीं, बस एक स्पष्ट CLI।
LXD: लाइटनिंग-फास्ट डेवलपमेंट एनवायरनमेंट के लिए सिस्टम कंटेनर
यदि Multipass पूर्ण VM के लिए सबसे उपयुक्त है, तो LXD सिस्टम कंटेनरों का चैंपियन है। Docker के एप्लिकेशन कंटेनरों के विपरीत, LXD आपको एक पूर्ण ऑपरेटिंग सिस्टम एनवायरनमेंट देता है (जिसमें init सिस्टम, नेटवर्किंग और पर्सिस्टेंट स्टोरेज शामिल हैं) लेकिन लगभग-नेटिव प्रदर्शन और तात्कालिक स्टार्टअप के साथ। इसे एक VM के रूप में सोचें जो होस्ट कर्नेल साझा करता है, बिना हाइपरवाइज़र ओवरहेड के।
LXD उन परिदृश्यों में उत्कृष्ट है जहां आपको एक साथ कई Linux डिस्ट्रीब्यूशन चलाने की आवश्यकता होती है, या आप अपने लैपटॉप पर एक जटिल नेटवर्क टोपोलॉजी को दोहराना चाहते हैं। माइक्रो-फ्रंटएंड या कई सेवाओं वाले फुल-स्टैक प्रोजेक्ट्स पर काम करने वाले फ्रंटएंड डेवलपर्स के लिए, LXD एक आदर्श सैंडबॉक्स प्रदान करता है। LXD के साथ व्यावहारिक उपयोग का मामला:```bash lxc launch ubuntu:22.04 backend-container lxc exec backend-container -- apt install -y nodejs npm lxc file push ./my-api backend-container/root/
lxc launch ubuntu:22.04 frontend-container lxc exec frontend-container -- apt install -y nginx
आप कंटेनरों को एक निजी ब्रिज नेटवर्क से जोड़ सकते हैं और एक वास्तविक प्रोडक्शन आर्किटेक्चर का अनुकरण कर सकते हैं। क्योंकि प्रत्येक कंटेनर एक वास्तविक मशीन की तरह व्यवहार करता है, आपको फ़ायरवॉल नियमों, DNS और सर्विस डिस्कवरी पर सटीक फीडबैक मिलता है, जिन चीजों को Docker Compose अक्सर छुपा देता है।

<Callout type="insight">LXD के सिस्टम कंटेनर VMs का अलगाव कंटेनरों की गति के साथ प्रदान करते हैं। वे इंटीग्रेशन टेस्टिंग, CI रनर और डिस्पोज़ेबल स्टेजिंग एनवायरनमेंट बनाने के लिए आदर्श हैं जो प्रोडक्शन से बिल्कुल मेल खाते हैं।</Callout>
## Juju: सर्विस ऑर्केस्ट्रेशन जो समझ में आता है
Juju, जटिल एप्लिकेशन मॉडलिंग और डिप्लॉय करने के लिए Canonical का गुप्त हथियार है। सैकड़ों लाइनें YAML या Terraform लिखने के बजाय, आप "चार्म्स" का उपयोग करके अपने एप्लिकेशन का वर्णन करते हैं - छोटे, पुन: प्रयोज्य पैकेज जो डिप्लॉयमेंट और परिचालन ज्ञान को समाहित करते हैं। Prometheus मॉनिटरिंग और PostgreSQL डेटाबेस के साथ एक पूर्ण Kubernetes क्लस्टर डिप्लॉय करना चाहते हैं? Juju इसे कुछ कमांड्स में कर सकता है।

Juju किसी भी क्लाउड (AWS, Azure, GCP) के साथ-साथ स्थानीय LXD कंटेनरों पर काम करता है, जो इसे एक सार्वभौमिक डिप्लॉयमेंट इंजन बनाता है। डेवलपर्स के लिए, इसका मतलब है कि आप अपने पूरे स्टैक को एक बार परिभाषित कर सकते हैं और इसे अपने लैपटॉप और प्रोडक्शन में समान रूप से चला सकते हैं।
**एक सामान्य वेब स्टैक के लिए नमूना Juju बंडल:**```yaml
series: focal
applications:
web:
charm: nginx
num_units: 2
api:
charm: nodejs
options:
port: 3000
db:
charm: postgresql
num_units: 1
relations:
- ["web", "api"]
- ["api", "db"]
इस बंडल को डिप्लॉय करना:
juju deploy ./bundle.yaml
पर्दे के पीछे, Juju मशीनों या कंटेनरों को प्रोविज़न करता है, निर्भरताएं स्थापित करता है, संबंधों को कॉन्फ़िगर करता है, और मॉनिटरिंग सेट करता है, यह सब कस्टम स्क्रिप्टिंग के बिना। Charmhub.io पर चार्म इकोसिस्टम में डेटाबेस, मैसेज क्यू, लॉगिंग और अधिक के लिए 500 से अधिक ऑपरेटर शामिल हैं।
Snapcraft: एक बार पैकेज करें, कहीं भी चलाएं
Snaps सार्वभौमिक Linux पैकेज हैं जो सभी निर्भरताओं को बंडल करते हैं और सैंडबॉक्स्ड एनवायरनमेंट में चलते हैं। Snapcraft उन्हें बनाने का टूल है। डेस्कटॉप टूल (जैसे इलेक्ट्रॉन ऐप) या CLI यूटिलिटी वितरित करने वाले फ्रंटएंड डेवलपर्स के लिए, स्नैप्स "मेरी मशीन पर काम करता है" समस्या को स्थायी रूप से हल करते हैं।
Snapcraft के साथ, आप एक एकल snapcraft.yaml लिखते हैं और आपका एप्लिकेशन 40 से अधिक Linux डिस्ट्रीब्यूशन पर इंस्टॉल करने योग्य बन जाता है। अपडेट स्वचालित और ट्रांज़ैक्शनल होते हैं (यदि कुछ विफल हो जाता है तो वे रोलबैक कर सकते हैं), जो apt रिपॉजिटरी की तुलना में एक बड़ा सुधार है।
एक सरल Node.js CLI के लिए उदाहरण snapcraft.yaml:```yaml
name: my-cli-tool
base: core22
version: '1.0'
summary: A useful developer CLI
apps: my-cli-tool: command: bin/my-cli-tool
parts: my-cli-tool: plugin: nodejs nodejs-version: '18' source: .
बिल्ड और प्रकाशित करें:
```bash
snapcraft
snapcraft push my-cli-tool_1.0_amd64.snap --release stable
आपका टूल अब Snap Store के माध्यम से लाखों Ubuntu उपयोगकर्ताओं के लिए उपलब्ध है, स्वचालित डेल्टा अपडेट और सुरक्षा के लिए कन्फाइनमेंट के साथ।
ये टूल्स फ्रंटएंड डेवलपर के वर्कफ़्लो में कैसे फिट होते हैं
एक फ्रंटएंड डेवलपर के रूप में, आप सोच सकते हैं कि आपको सिस्टम कंटेनर या सर्विस ऑर्केस्ट्रेशन की परवाह क्यों करनी चाहिए। इसका उत्तर सरल है: आधुनिक फ्रंटएंड शायद ही कभी स्वतंत्र होते हैं। आप अक्सर किसी API से डेटा खींचते हैं, ऑथेंटिकेशन को हैंडल करते हैं, सर्वर-साइड रेंडरिंग का उपयोग करते हैं, या किसी CMS के साथ एकीकृत करते हैं। स्थानीय रूप से एक फुल-स्टैक एनवायरनमेंट स्पिन अप करने में सक्षम होना, जो प्रोडक्शन को मिरर करता है, आपको तेज़ी से काम करने और बिना परिणामों के चीजों को तोड़ने का अधिकार देता है।
Canonical टूल्स का उपयोग करते हुए एक सामान्य फुल-स्टैक फ्रंटएंड परिदृश्य:1. बैकएंड API के लिए एक नया Ubuntu VM लॉन्च करने के लिएMultipassका उपयोग करें।
2. उस VM के अंदर, PostgreSQL कंटेनर और Redis कैश कंटेनर चलाने के लिएLXDका उपयोग करें।
3. दूसरे Multipass इंस्टेंस पर, एक माउंटेड प्रोजेक्ट डायरेक्टरी के साथ फ्रंटएंड बिल्ड सर्वर (जैसे, Next.js) चलाएं ताकि आप अपने पसंदीदा IDE में कोड संपादित कर सकें जबकि यह एक यथार्थवादी Linux फ़ाइल सिस्टम पर चलता है।
4. पूरी चीज़ को बंडल के माध्यम से ऑर्केस्ट्रेट करने के लिएJujuका उपयोग करें, ताकि एक टीममेट एक ही कमांड से सेटअप को दोहरा सके।
5. आसान वितरण के लिए किसी भी परिणामी CLI टूल कोSnapcraftसे पैकेज करें।
अचानक, "फ्रंटएंड" और "बैकएंड" के बीच की दीवार टूट जाती है। आप एक अधिक बहुमुखी इंजीनियर बन जाते हैं जो UI से लेकर इंफ्रास्ट्रक्चर तक पूरे स्टैक का मालिक हो सकता है।
"Multipass के साथ, मैं मिनटों में नहीं, बल्कि सेकंडों में एक नया Ubuntu एनवायरनमेंट स्पिन कर सकता हूं। इसने मेरे क्रॉस-ब्राउज़र प्रोजेक्ट्स का परीक्षण करने के तरीके को बदल दिया।"
Canonical के टूल्स की पारंपरिक डेवलपमेंट एनवायरनमेंट से तुलना
पारंपरिक डेवलपमेंट सेटअप में अक्सर VirtualBox या VMware जैसे टूल्स शामिल होते हैं, जो भारी हो सकते हैं और आपके लैपटॉप को धीमा कर सकते हैं। फिर Docker है, जो कंटेनराइज़ेशन के लिए बहुत अच्छा है लेकिन एक पूर्ण OS अनुभव प्रदान नहीं करता है। Canonical के टूल्स इन दोनों दुनियाओं को जोड़ते हैं: VMs की पूर्ण अलगाव और कंटेनरों की गति और दक्षता।
एक और सामान्य दृष्टिकोण प्रोडक्शन वातावरण का अनुकरण करने के लिए Vagrant का उपयोग करना है। जबकि Vagrant शक्तिशाली है, इसमें अक्सर व्यापक कॉन्फ़िगरेशन फ़ाइलों और प्रोविज़निंग स्क्रिप्ट की आवश्यकता होती है। Multipass एक क्लीनर, अधिक न्यूनतम विकल्प प्रदान करता है जो विशेष रूप से डेवलपर्स के लिए डिज़ाइन किया गया है। इसी तरह, LXD कंटेनर Docker कंटेनरों की तुलना में अधिक पूर्ण OS अनुभव प्रदान करते हैं, जो उन्हें जटिल नेटवर्किंग और सिस्टम-स्तरीय कॉन्फ़िगरेशन के परीक्षण के लिए आदर्श बनाता है।
| पारंपरिक टूल | Canonical विकल्प | मुख्य लाभ |
|---|---|---|
| VirtualBox / Vagrant | Multipass | तेज़, कमांड-लाइन-प्रथम, cloud-init समर्थन |
| Docker / Docker Compose | LXD | सिस्टम-स्तरीय कंटेनर, init सिस्टम, स्थायी स्टोरेज |
| Kubernetes मैन्युअल सेटअप | Juju | डिक्लेरेटिव, पुन: प्रयोज्य चार्म्स, मल्टी-क्लाउड समर्थन |
| apt / dpkg / AppImage | Snapcraft | यूनिवर्सल Linux पैकेजिंग, स्वचालित अपडेट, सैंडबॉक्सिंग |
MAAS: बेयर-मेटल प्रोविज़निंग जो स्केल करता है
जबकि फ्रंटएंड डेवलपर्स शायद ही कभी सीधे MAAS (मेटल एज़ अ सर्विस) के साथ बातचीत करते हैं, यह Canonical स्टैक का एक अभिन्न अंग है। MAAS आपको डेटा सेंटर में भौतिक सर्वरों को स्वचालित रूप से प्रोविज़न और प्रबंधित करने देता है जैसे कि वे क्लाउड इंस्टेंस हों। बैकएंड या इंफ्रास्ट्रक्चर टीमों के साथ काम करने वाले फ्रंटएंड डेवलपर्स के लिए, यह समझना कि MAAS कैसे काम करता है, संचार अंतर को पाटने में मदद कर सकता है।
MAAS वर्चुअल मशीनों की लचीलापन के साथ फिजिकल हार्डवेयर की कच्ची शक्ति को जोड़ता है। यह Linux वितरणों की एक विस्तृत श्रृंखला के लिए नेटवर्क बूटिंग, ऑटोमेटेड इंस्टॉलेशन और IP एड्रेस मैनेजमेंट को संभालता है। इसका उपयोग अक्सर निजी क्लाउड बनाने के लिए Juju के साथ किया जाता है जो कंपनी की अपनी हार्डवेयर पर चलता है।
फ्रंटएंड डेवलपर्स के लिए व्यावहारिक उदाहरण
केस 1: क्रॉस-ब्राउज़र परीक्षणएक फ्रंटएंड डेवलपर के रूप में, आपको यह सुनिश्चित करना होगा कि आपका एप्लिकेशन विभिन्न ब्राउज़रों पर काम करता है। Multipass और LXD के साथ:
# अलग-अलग ब्राउज़र संस्करणों के साथ कई Ubuntu VM लॉन्च करें
multipass launch --name test-chrome
multipass launch --name test-firefox
# प्रत्येक पर Selenium स्थापित करें
multipass exec test-chrome -- sudo apt install chromium-browser
केस 2: माइक्रोसर्विस बैकएंड का अनुकरणमान लीजिए कि आपका फ्रंटएंड पांच अलग-अलग माइक्रोसर्विसेज से डेटा खींचता है। LXD के साथ, आप उनमें से प्रत्येक के लिए एक समर्पित कंटेनर बना सकते हैं:
lxc launch ubuntu:22.04 auth-service
lxc launch ubuntu:22.04 payment-service
lxc launch ubuntu:22.04 notification-service
# प्रत्येक कंटेनर को एक निजी नेटवर्क से कनेक्ट करें
केस 3: सीआई/सीडी के लिए डिस्पोजेबल एनवायरनमेंट अपने सीआई/सीडी पाइपलाइन में, Juju का उपयोग करके प्रत्येक परीक्षण रन के लिए एक नया एनवायरनमेंट प्रोविज़न करें:
# परीक्षण चलाने के लिए एक अस्थायी वातावरण बनाएं
juju deploy ./my-bundle.yaml --model test-model
# परीक्षण चलाएं
npm test
# वातावरण को नष्ट करें
juju destroy-model test-model --yes
निष्कर्ष: Canonical टूल्स क्यों मायने रखते हैं
भले ही आप खुद को "सिर्फ एक फ्रंटएंड डेवलपर" मानते हों, लेकिन जो टूल्स आप अपने कोड को बनाने, परीक्षण करने और वितरित करने के लिए उपयोग करते हैं, वे आपकी उत्पादकता में बड़ा अंतर ला सकते हैं। Canonical का सूट Multipass, LXD, Juju, Snapcraft और MAAS स्थानीय विकास और प्रोडक्शन डिप्लॉयमेंट के बीच की खाई को पाटता है।
ये टूल्स सिर्फ सिस्टम एडमिनिस्ट्रेटर या DevOps इंजीनियरों के लिए नहीं हैं। वे किसी भी डेवलपर के लिए डिज़ाइन किए गए हैं जो:
- तेज़ी से साफ, अलग-थलग वातावरण चाहता है
- अपने विकास सेटअप को टीम के साथी के साथ दोहराना चाहता है
- क्लाउड पर या बेयर मेटल पर जटिल एप्लिकेशन तैनात करना चाहता है
- अपने टूल को लाखों Linux उपयोगकर्ताओं के लिए उपलब्ध कराना चाहता है
आज ही छोटी शुरुआत करें: अपने लैपटॉप पर Multipass स्थापित करें। एक VM लॉन्च करें। इसके साथ खेलें। फिर LXD आज़माएं। जल्द ही, आप सोचेंगे कि आप इन टूल्स के बिना कैसे काम करते थे।
*क्या आपने पहले ही Canonical के डेवलपर टूल्स में से कोई आज़माया है? नीचे टिप्पणी में अपना अनुभव साझा करें!*एक सूचित निर्णय लेने के लिए, आइए सबसे सामान्य स्थानीय वातावरण समाधानों की तुलना करें। नीचे दी गई तालिका एक सामान्य मैनुअल VirtualBox सेटअप, Docker Desktop, Multipass और LXD की तुलना डेवलपर्स के लिए प्रासंगिक कई पहलुओं पर करती है।
| दृष्टिकोण | सेटअप समय | संसाधन ओवरहेड | अलगाव स्तर | स्नैपशॉट/पुनर्स्थापना |
|---|---|---|---|---|
| मैनुअल VirtualBox | 15-30 मिनट प्रति VM | उच्च (पूर्ण हाइपरवाइज़र) | पूर्ण | मैनुअल स्नैपशॉट |
| Docker Desktop | ~5 मिनट (इमेज खींचना) | मध्यम (Linux के लिए VM) | प्रक्रिया-स्तर | इमेज लेयर्स |
| Multipass | ~30 सेकंड प्रति VM | मध्यम (हल्का हाइपरवाइज़र) | पूर्ण | अंतर्निहित स्नैपशॉट |
| LXD (सिस्टम कंटेनर) | <1 सेकंड प्रति कंटेनर | कम (कोई हाइपरवाइज़र नहीं) | पूर्ण OS (साझा कर्नेल) | तत्काल स्नैपशॉट |
तालिका से, LXD और Multipass गति और अलगाव के बीच एक आदर्श संतुलन प्रदान करते हैं। Docker स्टेटलेस माइक्रोसर्विसेज के लिए बढ़िया है, लेकिन जब आपको एक स्थायी, वास्तविक OS वातावरण की आवश्यकता होती है तो यह कम पड़ जाता है। VirtualBox धीमा और संसाधन-भूखा है। Canonical के उपकरण आपके विकास मशीन पर क्लाउड जैसा अनुभव देते हैं।
छिपे हुए उत्पादकता लाभ: आँकड़े और अंतर्दृष्टि
पर्यावरण प्रबंधन में देरी के संचयी प्रभाव को अनदेखा करना आसान है। Canonical द्वारा 2023 के एक आंतरिक सर्वेक्षण में पाया गया कि जिन डेवलपर्स ने Multipass और LXD को अपनाया, उन्होंने महत्वपूर्ण समय बचत की सूचना दी:
[[PROTECTED_22]]

केवल समय से परे, एक गुणात्मक सुधार है - कम संज्ञानात्मक भार। जब एक नई सेवा को चालू करना एक एकल कमांड है, तो आप प्रयोग करने, यथार्थवादी तृतीय-पक्ष सेवाओं को एकीकृत करने और एकीकरण परीक्षण लिखने की अधिक संभावना रखते हैं जो बग को जल्दी पकड़ लेते हैं।
[[PROTECTED_23]]Canonical के उपकरण विकास और उत्पादन के बीच समानता को सहज बनाकर “12-फैक्टर ऐप” पद्धति को प्रोत्साहित करते हैं। आपका स्थानीय LXD कंटेनर क्लाउड इंस्टेंस की तरह व्यवहार करता है, जो “यह मेरी मशीन पर काम करता है” सिंड्रोम को समाप्त करता है।[[PROTECTED_24]]
वास्तविक दुनिया का वर्कफ़्लो: विचार से तैनाती तक
कल्पना करें कि आप एक रीयल-टाइम डैशबोर्ड बना रहे हैं जो WebSockets का उपयोग करता है, pub/sub के लिए Redis की आवश्यकता है, और PostgreSQL में डेटा संग्रहीत करता है। Canonical के स्टैक के साथ, यहां बताया गया है कि आप 5 मिनट से भी कम समय में अपना डेव वातावरण कैसे सेट कर सकते हैं:
- बैकएंड होस्ट करने के लिए एक Multipass VM लॉन्च करें:
multipass launch --name dashboard-backend - इसके अंदर, डेटाबेस और कैश चलाने के लिए LXD का उपयोग करें:
lxc launch ubuntu:22.04 pg-dbऔरlxc launch ubuntu:22.04 redis - अपना Node.js बैकएंड स्थापित करें और सेवाओं को संबंधित करने के लिए Juju का उपयोग करें।
- अपने फ्रंटएंड स्रोत को दूसरे Multipass इंस्टेंस में माउंट करें और डेव सर्वर चलाएं।
- WebSocket कनेक्शन का परीक्षण करें जैसे कि वे वास्तविक नेटवर्क इंटरफेस पर हों।
जब आप साझा करने के लिए तैयार हों, तो पूरे कॉन्फ़िगरेशन को Juju बंडल के रूप में पैकेज करें और इसे Charmhub पर पुश करें। आपके सहकर्मी इसे डाउनलोड करते हैं और juju deploy चलाते हैं, वे मिनटों में बिल्कुल उसी स्टैक के साथ चालू हो जाते हैं। यह पुनरुत्पादन क्षमता ओपन-सोर्स प्रोजेक्ट्स और एंटरप्राइज़ टीमों दोनों के लिए एक गेम चेंजर है।
[[PROTECTED_25]]“Canonical चुपचाप ओपन-सोर्स क्लाउड के लिए डेवलपर अनुभव परत का निर्माण कर रहा है।”[[PROTECTED_26]]
निष्कर्ष: हर डेवलपर को Canonical के टूलकिट का पता क्यों लगाना चाहिए
Canonical के डेवलपर उपकरण केवल सिस्टम प्रशासकों या क्लाउड आर्किटेक्ट्स के लिए नहीं हैं। फ्रंटएंड डेवलपर्स, UX इंजीनियर और कोई भी जो वेब एप्लिकेशन बनाता है, वे गति, सरलता और स्थिरता से लाभ उठा सकते हैं जो वे प्रदान करते हैं। Vagrant, VirtualBox और जटिल Docker Compose फ़ाइलों को एक साथ जोड़ने के बजाय, आप एक एकीकृत पारिस्थितिकी तंत्र का लाभ उठा सकते हैं जो एक डेवलपर की तरह सोचता है।
जैसे-जैसे फ्रंटएंड और बैकएंड के बीच की रेखा धुंधली होती जा रही है, एक ऐसा टूलसेट होना जो आपको मांग पर पूरे वातावरण को चालू करने देता है, एक सुपरपावर बन जाता है। चाहे आप एक CSS समस्या को डीबग कर रहे हों जो केवल Linux पर होती है, एक नए JavaScript फ्रेमवर्क का परीक्षण कर रहे हों, या किसी क्लाइंट को प्रोटोटाइप प्रदर्शित कर रहे हों, Multipass, LXD, Juju और Snapcraft आपका समय और निराशा बचाएंगे।
अगली बार जब आप Ubuntu स्थापित करें, तो Canonical द्वारा प्रदान किए जाने वाले अतिरिक्त उपकरणों में थोड़ा गहराई से जाएं। आप पा सकते हैं कि उत्पादकता लाभ किसी भी नई JavaScript लाइब्रेरी या VS Code एक्सटेंशन के बराबर है। और यदि आप अपने UI वर्कफ़्लो को गति देने का कोई और तरीका ढूंढ रहे हैं, तो विचार करें कि DivMagic आपको किसी भी वेबसाइट से किसी भी UI तत्व को कॉपी करने देता है, जो आपके ताज़ा तैनात Canonical वातावरण के साथ तेज़ प्रोटोटाइप के लिए एकदम सही है।
छोटी शुरुआत करें: आज ही multipass स्थापित करें और अपना पहला कंटेनर लॉन्च करें। आप जल्दी से देखेंगे कि ये “आश्चर्यजनक रूप से उपयोगी” उपकरण आधुनिक डेवलपर के शस्त्रागार का एक अनिवार्य हिस्सा क्यों बन रहे हैं।

