00:00:00- हे, शुभ प्रभात, सभी को।
00:00:02आज हमारे साथ जुड़ने के लिए बहुत-बहुत धन्यवाद।
00:00:03हम जो साझा करने वाले हैं, उसके लिए मैं बहुत उत्साहित हूँ।
00:00:06तो अब एक दशक से, Vercel पर चलने वाला कोड
00:00:10मुख्य रूप से तत्काल वेब अनुरोधों के लिए बनाया गया था।
00:00:14लेकिन आज हमारे ग्राहक जो सबसे दिलचस्प सॉफ्टवेयर बनाते हैं
00:00:17वह अब उस मॉडल में फिट नहीं बैठता।
00:00:20और इन नए प्रोजेक्ट्स की संख्या तेजी से बढ़ रही है।
00:00:23सिर्फ पिछले कुछ महीनों में ही,
00:00:25Vercel में साप्ताहिक डिप्लॉयमेंट दोगुना हो गया है।
00:00:28और उन नए डिप्लॉयमेंट्स में से एक तिहाई कोडिंग एजेंटों से आते हैं,
00:00:31एक ऐसी संख्या जो एक हजार प्रतिशत बढ़ गई है
00:00:34सिर्फ छह महीनों में।
00:00:35लेकिन मेरे लिए सबसे दिलचस्प हिस्सा
00:00:38यह नहीं है कि हम कितना डिप्लॉय कर रहे हैं, बल्कि यह है कि हम क्या डिप्लॉय कर रहे हैं।
00:00:41वे एजेंट स्वयं एजेंटों को शिप (ship) कर रहे हैं।
00:00:44और जो एजेंट हमारे ग्राहक बनाते हैं,
00:00:48वे केवल एक बार जवाब देकर रुक नहीं जाते।
00:00:50उन्हें तर्क करने, टूल्स को कॉल करने, इंसानों का इंतज़ार करने की ज़रूरत होती है,
00:00:53और फिर यह सब दोबारा करना होता है।
00:00:55और इनमें से प्रत्येक वर्कफ़्लो को एक ऐसे बैकएंड की आवश्यकता होती है जो साथ चल सके।
00:00:58तो मैंने Vercel में जो देखा है,
00:01:02वह यह है कि जो टीम अभी सबसे तेज़ी से शिप कर रही है,
00:01:05वे बुनियादी ढांचे (infrastructure) का पुनर्निर्माण
00:01:07और कोडिंग क्यूज़ (queues) खुद नहीं बना रहे हैं,
00:01:08या स्क्रैच से रिट्राई लॉजिक नहीं लिख रहे हैं,
00:01:11या ऑब्जर्वेबिलिटी (observability) की वायरिंग भी नहीं कर रहे हैं।
00:01:13यह सब काम पहले ही हो चुका है।
00:01:15इसलिए वे हमारे इंफ्रास्ट्रक्चर प्रिमिटिव्स का उपयोग कर रहे हैं,
00:01:17वह चीज़ जिसे बनाने में हमने पिछला दशक बिताया है,
00:01:20ताकि वे अपना पूरा ध्यान अपने प्रोडक्ट पर केंद्रित कर सकें।
00:01:24और यही वह समस्या है जिसे हल करने के लिए हमने Workflows बनाया है।
00:01:27हमने इसे छह महीने पहले बीटा में लॉन्च किया था,
00:01:30और इसकी प्रतिक्रिया अविश्वसनीय थी।
00:01:33और अब, सौ मिलियन रन के बाद,
00:01:36हमें यह घोषणा करते हुए बहुत खुशी हो रही है कि Workflows आज GA (जनरल उपलब्धता) में है।
00:01:41मैं आपको दिखाता हूँ कि यह कैसे काम करता है।
00:01:43जो ऐप मैं आपको दिखाने जा रहा हूँ
00:01:44वह एक बर्थडे कार्ड जनरेटर है जिसे मैंने बनाया है।
00:01:47अब, यह वास्तव में कुछ भी हो सकता है,
00:01:49लेकिन यह उन सभी चीज़ों को छूता है जिनके बारे में हमने अभी बात की।
00:01:51यह एक सिंगल रिक्वेस्ट में फिट नहीं होता,
00:01:54यह इंसानों का इंतज़ार करता है, चीज़ें विफल होने पर रिट्राई करता है,
00:01:57और यूजर को वास्तविक समय में प्रगति स्ट्रीम करता है।
00:02:00तो, यहाँ बताया गया है कि यह कैसे काम करता है।
00:02:02मुझे खुद को एक कार्ड भेजने दें,
00:02:04और मैं अपना ईमेल दर्ज करके शुरुआत करूँगा।
00:02:05इसके बाद, मैं एक तारीख चुनूँगा,
00:02:09और मैं 23 अप्रैल चुनने जा रहा हूँ।
00:02:11अब, मुझे अपने जन्मदिन पर अलाव जलाना पसंद है,
00:02:14इसलिए मैं ओशन बीच बॉनफायर करूँगा,
00:02:17और मैं इसे सिर्फ खुद को भेज रहा हूँ, तो पर्नेट के लिए।
00:02:21और डेमो को आसान बनाने के लिए मैं यहाँ अपना ईमेल दर्ज करूँगा।
00:02:24तो, मैं खुद को अपने जन्मदिन के लिए RSVP करने वाला हूँ।
00:02:27बढ़िया, अब मैं जनरेट और सेंड पर क्लिक करूँगा,
00:02:30और मुझे बर्थडे कार्ड जनरेट होना शुरू होता दिखेगा।
00:02:34मैं Vercel डैशबोर्ड पर जाऊँगा
00:02:35जहाँ मैं देख सकता हूँ कि यह रन अभी-अभी आया है।
00:02:37मुझे अंदर क्लिक करने दें।
00:02:39और मैं इसे वास्तविक समय में देख सकता हूँ क्योंकि यह प्रॉम्प्ट जनरेट करता है,
00:02:42और फिर संदेश जनरेट करता है,
00:02:43और एक इमेज भी जनरेट करता है।
00:02:45यह वही ऑब्जर्वेबिलिटी है जिसके बारे में हम बात कर रहे थे।
00:02:48हर कदम यहाँ दिखाई दे रहा है।
00:02:50आप ठीक-ठीक देख सकते हैं कि क्या चल रहा है,
00:02:52क्या पूरा हो गया है, और क्या इंतज़ार कर रहा है।
00:02:54यूजर की तरफ,
00:02:57मैं देख सकता हूँ कि कार्ड जनरेट हो गया है,
00:02:58और RSVP ईमेल भेज दिए गए हैं।
00:03:01इस बिंदु पर, वर्कफ़्लो निलंबित (suspended) है।
00:03:04वास्तव में कोई कंप्यूटिंग नहीं हो रही है।
00:03:07यह किसी इंसान के जवाब देने का इंतज़ार कर रहा है,
00:03:09और मैं अभी अपने ईमेल में जाकर जवाब दे सकता हूँ,
00:03:12या कुछ घंटों या दिनों तक इंतज़ार करके तब जवाब दे सकता हूँ।
00:03:15यह प्रगति को ट्रैक करना जारी रखेगा।
00:03:18अब, ईमेल दिखाने से पहले,
00:03:20मैं वास्तव में आपको CLI दिखाना चाहता हूँ।
00:03:22Workflow पहले ही दिन CLI के साथ आता है
00:03:25जो आपको उन सभी चीज़ों का निरीक्षण करने देता है
00:03:27जो ऑब्जर्वेबिलिटी डैशबोर्ड पर उपलब्ध हैं।
00:03:29इसका मतलब है कि आपके और आपके एजेंटों के पास
00:03:32पूरी तस्वीर तक पहुँच है
00:03:35जब आप कुछ गलत होने पर उसे डीबग करने की कोशिश कर रहे हों।
00:03:37ठीक है, अब मेरे ईमेल पर चलते हैं।
00:03:40मुझे ईमेल तुरंत आता हुआ दिखना चाहिए।
00:03:43वह रहा।
00:03:44और मैं, यह बस मुझे RSVP करने के लिए कह रहा है।
00:03:46मैं हाँ (yes) पर क्लिक करूँगा, वह हो जाएगा।
00:03:49डैशबोर्ड पर वापस, मैं देख सकता हूँ कि हुक्स फिर से शुरू हो गए हैं,
00:03:53और मुझे स्लीप मोड में चले जाना चाहिए।
00:03:55यूजर डैशबोर्ड पर वापस, और मुझे वही चीज़ दिखेगी।
00:03:58अब हम RSVP का इंतज़ार नहीं कर रहे हैं,
00:04:00और अब यह बस 23 तारीख का इंतज़ार कर रहा है,
00:04:01ताकि यह जन्मदिन का कार्ड भेज सके।
00:04:03अब, मैं आपको दो हफ्ते इंतज़ार नहीं करवाना चाहता,
00:04:05इसलिए मैं डैशबोर्ड पर वापस जाऊँगा
00:04:06और यहीं से स्लीप मोड को जगा दूँगा।
00:04:09इससे वर्कफ़्लो तुरंत फिर से शुरू हो जाना चाहिए,
00:04:12और हम वर्कफ़्लो को पूरा होते देखेंगे।
00:04:14मुझे यूजर डैशबोर्ड पर वापस जाने दें।
00:04:17पोस्टकार्ड भेज दिया गया है।
00:04:18और मेरे ईमेल में, मुझे एक बर्थडे कार्ड मिलना चाहिए
00:04:22RSVP के साथ भी।
00:04:23बढ़िया।
00:04:24अब, मैं आपको कोड दिखाना चाहता हूँ,
00:04:26और उस बात को याद करें जो हमने पहले कही थी।
00:04:29आज जो टीमें सबसे तेज़ी से शिप कर रही हैं वे क्यूज़ (queues) सँभालने
00:04:32और स्टेट (state) तथा इंफ्रास्ट्रक्चर के प्रबंधन में नहीं उलझी हैं।
00:04:34वह पुराना तरीका है।
00:04:35Workflow में, हमने आज जो कुछ भी देखा है
00:04:38वह एक सिंगल फंक्शन है,
00:04:40और यह इस निर्देश से शुरू होता है, useWorkflow।
00:04:43यही एक निर्देश है जो इस फंक्शन को हफ्तों तक चलने,
00:04:48स्टेप्स के बीच रुकने और बिल्कुल वहीं से शुरू करने की अनुमति देता है जहाँ इसने छोड़ा था।
00:04:52तो जब वर्कफ़्लो किसी स्टेप को कॉल करता है,
00:04:53जैसे प्रॉम्प्ट जनरेट करना या इमेज जनरेट करना,
00:04:56वर्कफ़्लो फंक्शन को निलंबित कर देता है,
00:04:58काम को बैकग्राउंड में क्यू (queue) कर देता है।
00:05:00विफल होने पर यह इसे रिट्राई भी करेगा,
00:05:02और काम पूरा होने पर वर्कफ़्लो को फिर से शुरू कर देगा।
00:05:05पूरे समय, मुझे हर स्टेप की पूर्ण ऑब्जर्वेबिलिटी
00:05:07Vercel डैशबोर्ड पर मिलती रहती है।
00:05:11मैं इनमें से किसी एक पर क्लिक भी कर सकता हूँ,
00:05:13और डिफ़ॉल्ट रूप से, Vercel पर सब कुछ एन्क्रिप्टेड है,
00:05:16लेकिन मैं डेटा को डिक्रिप्ट करूँगा ताकि आप इनपुट देख सकें।
00:05:19हाँ, यह डैशबोर्ड और CLI दोनों पर उपलब्ध है।
00:05:22Workflows बिल्ट-इन स्ट्रीमिंग के साथ भी आता है।
00:05:24इसी तरह मैंने क्लाइंट को वास्तविक समय में अपडेट भेजे
00:05:29ताकि लाइव प्रगति को ट्रैक किया जा सके।
00:05:31इसे करने के लिए मुझे किसी डेटाबेस
00:05:33को लाने की ज़रूरत नहीं पड़ी।
00:05:34क्लाइंट डिस्कनेक्ट और रिकनेक्ट भी आसानी से कर सकता है।
00:05:37यह एक पर्सिस्टेंट स्ट्रीम है।
00:05:39ठीक है, और यहाँ हुक (hook) है।
00:05:42हर RSVP के लिए, मैं एक अल्पकालिक (ephemeral) वेबहुक URL बना रहा हूँ
00:05:46हैंड-टू-हैंड, फिर मैं उसे ईमेल में भेज रहा हूँ,
00:05:50और फिर मैं बस यहाँ नीचे उसका इंतज़ार कर सकता हूँ।
00:05:52वर्कफ़्लो यहीं रुक जाता है
00:05:56जब तक कि हर व्यक्ति अपने लिंक पर क्लिक नहीं कर देता।
00:05:59इसमें कोई डेटाबेस शामिल नहीं है,
00:06:01और परिणाम भी केवल स्थानीय जावास्क्रिप्ट वेरिएबल्स में रहते हैं।
00:06:05वर्कफ़्लो अपनी पूरी स्टेट खुद रखता है।
00:06:08यह वह डिस्ट्रीब्यूटेड सिस्टम्स मशीनरी है
00:06:11जिसके बारे में हमने कहा था कि वह अब गायब हो गई है।
00:06:12आपको अब इन चीज़ों के बारे में सोचने की ज़रूरत नहीं है।
00:06:14ठीक है, अंत में, अपने जन्मदिन के लिए
00:06:17स्लीप मोड का उपयोग करते हैं।
00:06:18यह यहीं है।
00:06:19यह स्लीप कुछ सेकंड,
00:06:21दिनों या हफ्तों की भी हो सकती है जैसा हमने अभी किया।
00:06:24और जब यह सो रहा होता है, तो वर्कफ़्लो बस सस्पेंडेड रहता है
00:06:27बिना किसी कंप्यूटिंग के।
00:06:29जब यह जागता है, तो यह बिल्कुल वहीं से जारी रहता है जहाँ से इसने छोड़ा था,
00:06:33और रास्ते भर स्टेट को बनाए रखता है।
00:06:34और बस यही सब कुछ है।
00:06:37यह एक ऐसा फंक्शन है जिसे आप ऊपर से नीचे तक पढ़ सकते हैं
00:06:40और शुरू से अंत तक समझ सकते हैं।
00:06:43हर स्टेप एक क्यू (queue) द्वारा समर्थित है,
00:06:45यह स्वचालित रूप से रिट्राई किया जाता है,
00:06:47और अपने स्वयं के सर्वरलेस फंक्शन पर चलता है।
00:06:49कोई टाइमआउट सीमा नहीं है,
00:06:51इसलिए वर्कफ़्लो जितनी ज़रूरत हो उतनी देर तक चल सकते हैं।
00:06:54हमारा यही मतलब है
00:06:56जब हम कहते हैं कि Vercel नीचे की हर चीज़ को सँभालता है।
00:06:59आप बस लॉजिक लिख सकते हैं और बाकी का ध्यान हम रखेंगे।
00:07:02अब, इस डेमो में, मैंने आपको एक साधारण उपयोग का मामला दिखाया,
00:07:07लेकिन हमारे ग्राहक वर्कफ़्लो का उपयोग
00:07:09ज़बरदस्त पैमाने पर प्रोडक्शन में एजेंट चलाने के लिए करते हैं।
00:07:12Mux वर्कफ़्लो का उपयोग यह सुनिश्चित करने के लिए करता है कि वीडियो जनरेशन पाइपलाइन
00:07:17हर बार विश्वसनीय रूप से चले।
00:07:19और Flora वर्कफ़्लो के साथ 50 इमेज जनरेशन मॉडल्स में
00:07:23समानांतर क्रिएटिव एजेंटों को व्यवस्थित कर रहा है।
00:07:27Durable एक छोटी सी टीम है
00:07:30जो 3 मिलियन ग्राहक वेबसाइटों को होस्ट करती है,
00:07:33और वे अपने यूजर्स को हर दिन नए एजेंट शिप करने के लिए
00:07:35वर्कफ़्लो का उपयोग करते हैं।
00:07:38अब, मैंने इस डेमो की शुरुआत
00:07:40यह कहकर की थी कि सबसे दिलचस्प सॉफ्टवेयर
00:07:42जो हमारे ग्राहक बनाते हैं वह अब एक सिंगल रिक्वेस्ट में फिट नहीं होता।
00:07:46और हम इस तरह के और भी ऐप्स देख रहे हैं
00:07:50जो हर दिन डिप्लॉय किए जा रहे हैं।
00:07:51एजेंट्स, एजेंट्स को शिप कर रहे हैं,
00:07:54और जो टीमें उन्हें बना रही हैं वे क्यूज़ (queues) के बारे में नहीं सोच रही हैं,
00:07:58वे अपने ग्राहक की समस्याओं पर ध्यान केंद्रित कर रही हैं।
00:08:01और यह बदलाव सिर्फ Vercel के अंदर ही नहीं हो रहा है।
00:08:05हमारे ग्राहक डिप्लॉयमेंट दोगुने हो रहे हैं,
00:08:07और पहले से कहीं कम इंजीनियर खुद इंफ्रास्ट्रक्चर तैयार कर रहे हैं।
00:08:11तो आप जो भी ऐप या एजेंट बनाना चाहते हैं,
00:08:16वर्कफ़्लो उसे विश्वसनीय,
00:08:18लंबे समय तक चलने वाला, टिकाऊ और ऑब्जर्वेबल बना देगा।
00:08:22आपके लैपटॉप से लेकर दस लाख यूजर्स तक
00:08:25सब कुछ उसी एप्लिकेशन कोड के साथ।
00:08:27Workflows आज सामान्य रूप से उपलब्ध है,
00:08:31तो जाइए और कुछ ऐसा शिप कीजिए जो काम करे।
00:08:37[खामोश ऑडियो]