- आसान self-hosting: इसे इस तरह डिज़ाइन किया गया है कि इंस्टॉलेशन और maintenance बहुत कम मेहनत में हो सके। एप्लिकेशन को इस तरह बनाया गया है कि यह जटिल आंतरिक समस्याओं के समाधान के बिना भी काम करे।
- क्षैतिज scalability: सरल लेकिन शक्तिशाली आर्किटेक्चर के साथ, Lapdev एक single machine से लेकर server fleet तक स्केल हो सकता है, जिससे यह डेवलपर टीम के बढ़ने के साथ-साथ बढ़ने वाली डेवलपमेंट एनवायरनमेंट मैनेजमेंट सिस्टम प्रदान करता है।
- कोड के रूप में परिभाषित डेवलपमेंट एनवायरनमेंट: Devcontainer open specification का उपयोग करके डेवलपमेंट एनवायरनमेंट को code के रूप में परिभाषित किया जा सकता है, जिससे अलग-अलग डेवलपर्स के बीच standardized डेवलपमेंट एनवायरनमेंट को दोहराया जा सके, environment-संबंधी समस्याओं को रोका जा सके, और सभी के लिए consistent setup सुनिश्चित किया जा सके।
- onboarding समय की बचत: किसी नए प्रोजेक्ट में डेवलपर onboarding करते समय, मशीन पर एनवायरनमेंट तैयार करने में घंटों या कई दिनों की ज़रूरत नहीं होती। तुरंत coding शुरू की जा सकती है।
नियोजित फीचर्स
- विभिन्न workspace types का समर्थन: अभी Lapdev केवल container-आधारित workspace को सपोर्ट करता है, लेकिन उदाहरण के लिए जब आप development flow में k8s cluster चलाना चाहते हैं, तब यह सीमित हो जाता है। VM और bare metal machine सपोर्ट रोडमैप में हैं, और Windows, Linux, macOS जैसे विभिन्न OS के समर्थन की भी योजना है। इससे डेवलपर मशीन बदले बिना उसी local machine पर development और debugging कर सकेंगे।
GN⁺ की राय
- Lapdev एक ऐसा टूल है जो डेवलपर्स को अपने सर्वर या cloud पर remote development environment को आसानी से सेटअप और मैनेज करने देता है, और डेवलपमेंट एनवायरनमेंट के standardization तथा तेज onboarding को संभव बनाकर efficiency बढ़ा सकता है।
- ऐसे टूल खासकर बड़े डेवलपमेंट टीमों या एक साथ कई प्रोजेक्ट चलाने वाले संगठनों के लिए उपयोगी हो सकते हैं, क्योंकि ये डेवलपमेंट एनवायरनमेंट की consistency बनाए रखते हुए scalability भी प्रदान करते हैं।
- हालांकि, इस तकनीक को अपनाने से पहले security, compatibility और support से जुड़ी बातों पर विचार करना पड़ सकता है, और self-hosting solution इस्तेमाल करने से आने वाले अतिरिक्त maintenance burden को भी ध्यान में रखना चाहिए।
- वर्तमान बाज़ार में Visual Studio Code के Remote Development Extensions जैसे अन्य टूल भी हैं जो मिलती-जुलती क्षमताएँ प्रदान करते हैं, इसलिए उपयोगकर्ताओं को अपनी ज़रूरतों के लिए सबसे उपयुक्त टूल चुनना चाहिए।
- Lapdev द्वारा VM और bare metal machine सपोर्ट की योजना को विभिन्न डेवलपमेंट एनवायरनमेंट आवश्यकताओं को पूरा करने के प्रयास के रूप में देखा जा सकता है, और इससे डेवलपर्स को अधिक व्यापक विकल्प मिलेंगे।
1 टिप्पणियां
Hacker News राय
लोकल सर्वर हार्डवेयर पर बिना मासिक शुल्क के development containers (devcontainers) इस्तेमाल कर पाना बहुत अच्छा लगता है। अभी तक Docker-compose और JetBrains के remote SSH development का उपयोग करता रहा हूँ, लेकिन उम्मीद है कि यह नया तरीका उससे काफी बेहतर होगा।
remote development environments में रुचि है, लेकिन cloud में और ज़्यादा software manage करने को लेकर बहुत उत्साहित नहीं हूँ। Skypilot को cloud API plugin के साथ इस्तेमाल करके k8s cluster manage किए बिना development machine शुरू की जा सकती है, इसलिए यह एक अच्छा विचार लगता है। Jupyter server शुरू करने में यह ज़्यादा बेहतर काम करता था, लेकिन सिर्फ कुछ SSH/VS Code configuration के साथ एक "पूरा" development machine भी संभव लगता है।
remote development environments कुछ खास तरह के development के लिए सीमित हो सकते हैं। उदाहरण के लिए, iOS और Android app development मुश्किल हो सकता है, या GPU की ज़रूरत वाले game development में build artifacts डाउनलोड करना धीमा हो सकता है। सोच रहा हूँ कि क्या इन समस्याओं को हल करने के लिए कोई guide है।
इन tools के बारे में और जानना चाहता हूँ। देखा कि Coder में
.devcontainerके लिए alpha support शामिल है, लेकिन दूसरे OSS options के बारे में जानकारी नहीं है।Proxmox setup के साथ आप मौजूदा VM/container को clone कर सकते हैं और बस VSCode को उस तरफ point कर सकते हैं। यह वास्तव में और क्या जोड़ता है? यह automation नहीं है (Proxmox में कुछ clicks को automate किया जा सकता है), और resource management भी नहीं (storage वगैरह Proxmox संभालता है)। क्या यह developer identity है? अगर वास्तव में बस वही चाहिए, तो environments में SSH keys deploy करने के लिए एक (काफी सरल) script लिखनी चाहिए।
remote machine पर hosted VSCode यानी code-server और SSH को साथ में install करना पड़ा था; उस अनुभव के बाद, दोनों के लिए ज़्यादा अच्छी तरह managed अनुभव बहुत दिलचस्प लगता है।
इस क्षेत्र का एक और implementation devpod.sh है।
एक design tip: button के text को center में रखिए ताकि वह सचमुच button जैसा लगे। अगर text left-aligned हो, तो वह label जैसा लग सकता है, इसलिए यह छोटा बदलाव है, लेकिन conversion बेहतर कर सकता है।
समझ आता है कि यह remote server पर install किया जाता है। लेकिन क्या यह remote environment देता है, या local environment? और इस context में 'environment' का मतलब क्या है? क्या यह Docker compose file और
.envहै? code या vim settings हैं? या Vagrant जैसा VM है?इस समय devcontainers की मुख्य समस्या यह है कि GUI apps को remotely चलाने पर GUI केवल server पर ही खुलता है। जानना चाहता हूँ कि क्या यह समाधान GUI को remotely export कर सकता है।