- Kernel एक सर्वरलेस प्लेटफ़ॉर्म है जो डेवलपर्स को ब्राउज़र ऑटोमेशन कोड बिना अलग इंफ्रास्ट्रक्चर की चिंता के तुरंत डिप्लॉय करने और बड़े पैमाने पर स्केल करने देता है
- किसी सेटअप या पाइपलाइन निर्माण के बिना, लोकल डेवलपमेंट के लगभग समान गति से कोड डिप्लॉय और रन किया जा सकता है
- यह सैंडबॉक्स वातावरण में उपयोग के लिए Chrome ब्राउज़र प्रदान करता है, और लिखे गए एजेंट्स को अपने-आप API में बदल देता है, जिन्हें कहीं से भी कॉल किया जा सकता है
- Playwright, Puppeteer जैसे Chrome DevTools Protocol आधारित फ्रेमवर्क्स के साथ इंटीग्रेशन का समर्थन करता है, और रिमोट GUI (लाइव व्यू) के ज़रिए रियल-टाइम मॉनिटरिंग और कंट्रोल संभव है
- Unikraft unikernel वातावरण के समर्थन से अत्यंत तेज़ रीस्टार्ट, स्नैपशॉट रिस्टोर, न्यूनतम संसाधन उपयोग जैसे हाई-परफॉर्मेंस फीचर्स मिलते हैं
- Docker इमेज और Unikraft unikernel दोनों डिप्लॉयमेंट तरीकों का समर्थन करता है, इसलिए इसे अलग-अलग cloud/container environments में उपयोग किया जा सकता है
- सारा कोड आइसोलेटेड वर्चुअल मशीन में सुरक्षित रूप से चलता है, और रियल-टाइम ऑब्ज़र्वेबिलिटी तथा डिबगिंग टूल्स प्रदान किए जाते हैं
What's Kernel?
- Kernel एक सैंडबॉक्स्ड, तुरंत उपयोग के लिए तैयार Chrome ब्राउज़र environment देता है, और यह repository Kernel की hosted service के लिए बेस कोड है
- Playwright, Puppeteer जैसे Chrome DevTools आधारित ब्राउज़र फ्रेमवर्क्स से आसानी से कनेक्ट किया जा सकता है
Why use Kernel?
- लोकल से प्रोडक्शन तक कुछ ही सेकंड में डिप्लॉयमेंट
- अलग सेटअप या प्रोडक्शन पाइपलाइन के बिना,
bun run dev जितने लगभग समय में कोड डिप्लॉय और रन किया जा सकता है
- हर एजेंट को API में बदलें
- प्लेटफ़ॉर्म पर अपलोड किए गए सभी एजेंट अपने-आप API के रूप में एक्सपोज़ हो जाते हैं, ताकि उन्हें बाहर से कॉल किया जा सके
- पैरलल स्केलेबिलिटी
- ज़रूरत पड़ने पर हज़ारों ब्राउज़र इंस्टेंस तुरंत रन और स्केल किए जा सकते हैं
- बेहतर आइसोलेशन और ऑब्ज़र्वेबिलिटी
- कोड आइसोलेटेड VM में चलता है, इसलिए सुरक्षा अधिक रहती है, और मॉनिटरिंग तथा डिबगिंग टूल्स मिलते हैं
- सरल और अनुमानित प्राइसिंग
- पहले से इंफ्रास्ट्रक्चर परिभाषित किए बिना, केवल उपयोग किए गए संसाधनों के अनुसार ही लागत लगती है
प्रमुख फीचर्स
- इंटीग्रेटेड ब्राउज़र environment : cloud पर तुरंत ब्राउज़र बनाना और नियंत्रित करना, ऑटोमेशन workloads के लिए अनुकूलित
- सैंडबॉक्स Chrome ब्राउज़र को DevTools आधारित ऑटोमेशन फ्रेमवर्क्स से कनेक्ट करके इस्तेमाल किया जा सकता है
- 9222 पोर्ट के माध्यम से Playwright, Puppeteer आदि के साथ इंटीग्रेशन
- CDP WebSocket endpoint प्राप्त करने के बाद रिमोट क्लाइंट से कनेक्ट करें
- disconnect/reconnect संभव है
- सेशन स्टेट बनाए रखना : cookies, authentication tokens, history आदि ब्राउज़र सेशन को कॉल्स के बीच भी बनाए रखता है
- अत्यंत तेज़ रीस्टार्ट (standby mode) : ब्राउज़र इंस्टेंस को 20ms से कम समय में तुरंत रीस्टार्ट किया जा सकता है
- रिमोट GUI (लाइव व्यू स्ट्रीमिंग) के ज़रिए ब्राउज़र स्क्रीन को रियल-टाइम में देखना और नियंत्रित करना संभव है
- noVNC: VNC आधारित, read/write सपोर्ट, WebRTC disabled होना चाहिए
- WebRTC: रियल-टाइम, read/write, window resize, copy/paste, high-speed performance,
ENABLE_WEBRTC=true आवश्यक
- ऑडियो स्ट्रीमिंग समर्थित नहीं है, read-only mode को environment variable से सेट किया जा सकता है
- ब्राउज़र सेशन वीडियो रिप्ले : पिछले सेशन्स को दोबारा देखकर डिबगिंग और विश्लेषण संभव (जल्द उपलब्ध)
इम्प्लीमेंटेशन और डिप्लॉयमेंट
-
Docker कंटेनर का उपयोग
- headful Chromium को Docker कंटेनर में चलाया जा सकता है
cd images/chromium-headful के बाद, build और run scripts उपलब्ध हैं
- environment variables के ज़रिए WebRTC enable करना और अन्य सेटिंग्स संभव हैं
-
Unikraft Unikernel का उपयोग
- Unikraft unikernel आधारित रनटाइम में, Docker आधारित तरीके की तुलना में और तेज़ स्टार्टअप और standby mode मिलता है
- नेटवर्क ट्रैफ़िक न होने पर अपने-आप standby mode में चला जाता है, और state snapshot/restore समर्थित है
- Cold start 20ms से कम, और session state (cookies, files, browser settings आदि) को बनाए रखना और restore करना संभव है
- 8GB या उससे अधिक memory आवश्यक है
-
डिप्लॉयमेंट के समय ध्यान देने योग्य बातें
- WebRTC आधारित स्ट्रीमिंग enable करने पर TURN server आवश्यक है
- unikernel डिप्लॉयमेंट में public URL जारी होता है और उस तक कोई भी पहुँच सकता है, इसलिए संवेदनशील कार्यों के लिए उपयोग न करें, और उपयोग के बाद instance हटा देना चाहिए
अभी कोई टिप्पणी नहीं है.