• टेक ब्लॉग पर कंटेंट को अपने-आप डिप्लॉय करने वाले Slackbot को विकसित करने की प्रक्रिया और तरीका
  • विकास प्रक्रिया
      1. ऑटोमेशन की योजना बनाना
      • पहला, टेक ब्लॉग पर कंटेंट डिप्लॉय करते समय पहले से इस्तेमाल हो रहे टूल्स (Notion, GitLab) को एक नए टूल (Slackbot) में एकीकृत करने का फैसला किया गया। इसका उद्देश्य यह था कि सदस्य नए डिप्लॉयमेंट सिस्टम को आसानी और तेजी से अपना सकें
      • दूसरा, TypeScript framework का उपयोग करने का निर्णय लिया गया। TypeScript व्यापक रूप से इस्तेमाल होता है, और यह एक static type language है, इसलिए स्थिर रूप से विकास किया जा सकता है। इससे नए डिप्लॉयमेंट सिस्टम का रखरखाव आसान और सुविधाजनक होता है
      • तीसरा, user-friendly interaction को सपोर्ट करना
      • Slackbot चुनने के कारण
        • Slackbot इन सभी सिद्धांतों को पूरा करता है
        • Slackbot Bolt नाम का framework प्रदान करता है। यह JavaScript, Java, Python के साथ-साथ documentation को भी अच्छी तरह सपोर्ट करता है। इसे संदर्भ के रूप में लेकर टेक ब्लॉग डिप्लॉयमेंट ऑटोमेशन टूल विकसित करना आसान होता है। लोकल environment में चलाने पर भी Slack application में टूल का परीक्षण किया जा सकता है
        • Slack उपयोगकर्ता को दिखने वाली स्क्रीन को Block Kit फीचर से डिज़ाइन करने की सुविधा देता है। स्क्रीन flow को JSON में डिज़ाइन करके और function के जरिए data प्रोसेस करके सहज interaction किया जा सकता है
      1. स्क्रीन बनाना
      • Slack उपयोगकर्ता के साथ interaction के लिए message और modal को सपोर्ट करता है
      • टेक ब्लॉग पर कंटेंट डिप्लॉय करने वाले workflow को modal के रूप में लागू किया गया
      • Slackbot का उपयोग करके टेक ब्लॉग डिप्लॉयमेंट प्रक्रिया
        • ब्लॉग पोस्ट करना: कौन-सा कंटेंट कहाँ डिप्लॉय करना है, इसका चयन
        • ब्लॉग validity check: यह जांचना कि metadata और cover image जैसे frontend के लिए आवश्यक तत्व डिप्लॉय किए जाने वाले कंटेंट में मौजूद हैं या नहीं
        • GitLab issue/MR जांच: GitLab में issue और MR बनाने का चरण। अगर issue और MR पहले से मौजूद हों, तो उसी MR में commit किया जाता है
        • पूर्णता संदेश: डिप्लॉयमेंट पूरा होने पर Notion के मूल कंटेंट लिंक और GitLab MR लिंक वाला संदेश छोड़ा जाता है
      1. बॉट का डिज़ाइन और निर्माण
      • एक ही बॉट से Notion, GitLab जैसी अन्य सेवाओं के साथ पूरी interaction करने की योजना बनाई गई
      • GitLab में CI/CD pipeline बनाकर application को डिप्लॉय करने या बॉट में बदलाव करने के समय, इस तरीके को अधिक लाभकारी माना गया
      • बॉट विकास के लिए TypeScript भाषा और Slack द्वारा समर्थित Bolt framework का उपयोग किया गया
      • फ़ोल्डर संरचना NestJS से प्रेरित होकर अपनाई गई
        • workflow.ts: स्क्रीन और data flow को परिभाषित करता है, और सभी workflow का शुरुआती बिंदु है
        • service.ts: business logic को परिभाषित करता है
        • model.ts: Slack या third-party API के साथ data types को परिभाषित करता है
        • modal.ts: उपयोगकर्ता के साथ interaction करने वाली स्क्रीन को परिभाषित करता है
      1. बॉट के काम करने का तरीका
      • Slack में किसी भी channel में command दर्ज करते ही बॉट कॉल हो जाता है
      • इस समय Notion के कंटेंट शीर्षक और कंटेंट अपलोड करने वाले channel को चुनकर 제출하기 बटन दबाने पर आवश्यक metadata भरा गया है या नहीं, यह अपने-आप जांचा जाता है
      • GitLab ID, लेखक का नाम, md फ़ाइल नाम, cover image, <!--truncate--> आदि वे metadata हैं जिन्हें भरना ज़रूरी है; इनमें से एक भी छूट जाए तो कंटेंट अपलोड नहीं किया जा सकता
      • यदि सभी आवश्यक metadata भर दिए गए हों, तो 계속하기 बटन दबाकर अगले चरण में जाया जा सकता है
      • इस समय GitLab में उस कंटेंट का issue और MR अपने-आप बन जाता है
      • MR पर label भी अपने-आप लग जाता है, और कंटेंट डिप्लॉय करने वाली pipeline भी अपने-आप चलती है
      • pipeline चलने के बाद GitLab review app के माध्यम से कंटेंट डिप्लॉयमेंट की स्थिति पहले से देखी जा सकती है
  • लागू करने के परिणाम
    • तकनीकी writers और engineers द्वारा टेक ब्लॉग पर कंटेंट डिप्लॉय करने के लिए MR बनाने की आवृत्ति लगभग 30% बढ़ गई
    • एक क्लिक में 1 मिनट के भीतर कंटेंट डिप्लॉय
    • pipeline failure rate 5% से नीचे आ गई

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.