पाइपलाइन प्रदर्शन समायोजन
अपने GitHub Actions वर्कफ़्लो की निष्पादन गति और संसाधन खपत को अनुकूलित करने के लिए अड़चनों की पहचान तथा उन्नत तकनीकों का उपयोग कीजिए।
पाइपलाइन प्रदर्शन समायोजन, CoddyKit पर DevOps बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह DevOps बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
अपनी पाइपलाइन की गति बढ़ाएँ
पाइपलाइन प्रदर्शन ट्यूनिंग में आपका स्वागत है! आधुनिक विकास में, तेज़ CI/CD पाइपलाइन त्वरित प्रतिक्रिया और संसाधनों के कुशल उपयोग के लिए अत्यंत महत्वपूर्ण हैं।
धीमी पाइपलाइन समय और धन की बर्बादी करती हैं। यह पाठ आपको बाधाओं की पहचान करने और अपने GitHub Actions वर्कफ़्लो को काफ़ी तेज़ करने की उन्नत तकनीकें सिखाएगा।
वर्कफ़्लो की बाधाओं का पता लगाना
अनुकूलन करने से पहले, आपको यह जानना होगा कि किस चीज़ का अनुकूलन करना है। GitHub Actions धीमे चरणों या कार्यों का सटीक पता लगाने के लिए उत्कृष्ट उपकरण प्रदान करता है।
- GitHub UI: वर्कफ़्लो रन के लॉग देखें। समयरेखा का दृश्य स्पष्ट रूप से दिखाता है कि प्रत्येक कार्य और चरण में कितना समय लगा।
- कार्य सारांश: ऐसे चरणों को खोजें जिनकी अवधि असामान्य रूप से लंबी हो।
- क्रिया लॉग: विस्तृत लॉग उन विशिष्ट कमांड या प्रक्रियाओं को उजागर कर सकते हैं जो सबसे अधिक समय ले रही हैं।
उन चरणों पर ध्यान दें जिनमें लगातार सबसे अधिक समय लगता है।
स्वतंत्र कार्यों को समानांतर चलाना
यदि आपके वर्कफ़्लो के कुछ भाग एक-दूसरे पर निर्भर नहीं हैं, तो उन्हें एक ही समय पर चलाएँ! कुल निष्पादन समय कम करने का यह एक सरल लेकिन शक्तिशाली तरीका है।
अपने वर्कफ़्लो में शीर्ष-स्तर के कई कार्य परिभाषित करें। GitHub Actions उन्हें डिफ़ॉल्ट रूप से समानांतर चलाएगा, बशर्ते आप उनके बीच needs निर्भरताएँ निर्दिष्ट न करें।
name: Parallel Jobs Example
on: [push]
jobs:
build-frontend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Frontend
run: echo "Building frontend..."
build-backend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Backend
run: echo "Building backend..."
Checkout क्रिया का अनुकूलन
actions/checkout क्रिया आपके रिपॉज़िटरी का कोड प्राप्त करती है। बड़े रिपॉज़िटरी या लंबे इतिहास वाले रिपॉज़िटरी के लिए यह धीमा हो सकता है। इसका अनुकूलन करें:
- शैलो क्लोन: केवल नवीनतम कमिट प्राप्त करने के लिए
fetch-depth: 1का उपयोग करें। इससे अधिकांश CI/CD कार्यों में काफ़ी समय बचता है। - स्पार्स Checkout: यदि आपको केवल कुछ फ़ाइलों की आवश्यकता है, तो स्पार्स checkout पर विचार करें, हालांकि इसे सेट अप करना अक्सर अधिक जटिल होता है।
जब तक बिल्कुल आवश्यक न हो, fetch-depth: 0 से बचें, क्योंकि इससे पूरा इतिहास डाउनलोड होता है।
name: Optimized Checkout
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1 # Only fetch the latest commit
- name: Run Build
run: echo "Code checked out and building..."
बिल्ड आर्टिफ़ैक्ट का आकार कम करना
यदि आपका वर्कफ़्लो आर्टिफ़ैक्ट अपलोड या डाउनलोड करता है, जैसे कि संकलित बाइनरी या परीक्षण रिपोर्ट, तो उनका आकार सीधे प्रदर्शन को प्रभावित करता है।
गति बढ़ाने के लिए:
- केवल आवश्यक फ़ाइलें शामिल करें: ऐसी अस्थायी बिल्ड निर्देशिकाएँ या लॉग अपलोड न करें जिनकी आपको आवश्यकता नहीं है।
- आर्टिफ़ैक्ट को संपीड़ित करें: यदि संभव हो, तो बड़े आर्टिफ़ैक्ट अपलोड करने से पहले उन्हें संपीड़ित करें।
actions/upload-artifactक्रिया संपीड़न अपने-आप संभालती है, लेकिन सुनिश्चित करें कि आपकी स्रोत फ़ाइलें न्यूनतम हों।
दक्षता के लिए पथ फ़िल्टरिंग
हर कोड परिवर्तन के लिए हर कार्य को ट्रिगर करना आवश्यक नहीं होता। कार्यों को केवल तभी चलाने के लिए पथ फ़िल्टरिंग का उपयोग करें जब संबंधित फ़ाइलों में बदलाव किया गया हो।
यह विशेष रूप से बड़े रिपॉज़िटरी में उपयोगी है, जहाँ दस्तावेज़ में किया गया बदलाव पूरे बैकएंड बिल्ड को ट्रिगर नहीं करना चाहिए।
अपने वर्कफ़्लो के on ट्रिगर में paths या paths-ignore निर्दिष्ट करें।
name: Path Filter Example
on:
push:
paths:
- 'frontend/**'
- 'shared/**'
jobs:
build-frontend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Frontend
run: echo "Frontend files changed, building..."
तेज़ रनर और संसाधन आवंटन
आपके वर्कफ़्लो को निष्पादित करने वाली वर्चुअल मशीनें (रनर) अलग-अलग आकार और प्रकार की होती हैं। CPU-गहन कार्यों के लिए अधिक शक्तिशाली रनर निष्पादन समय को काफ़ी कम कर सकता है।
- बड़े GitHub-होस्टेड रनर: GitHub अधिक मांग वाले कार्यभार के लिए बड़े रनर उपलब्ध कराता है, जैसे
ubuntu-latest-xlarge। - स्वयं-होस्टेड रनर: यदि आपकी हार्डवेयर आवश्यकताएँ बहुत विशिष्ट हैं या आप आंतरिक संसाधनों तक नेटवर्क विलंबता कम करना चाहते हैं, तो स्वयं-होस्टेड रनर को आपकी सटीक आवश्यकताओं के अनुसार अनुकूलित किया जा सकता है।
उन्नत कैशिंग रणनीतियाँ
निर्भरताओं, जैसे npm पैकेज या Maven आर्टिफ़ैक्ट, को कैश करना आवश्यक है। इन सुझावों से बुनियादी कैशिंग से आगे बढ़ें:
- सूक्ष्म कैश कुंजियाँ: अनावश्यक कैश मिस से बचने के लिए अधिक विशिष्ट कैश कुंजियों का उपयोग करें। उदाहरण के लिए, किसी विशिष्ट लॉक फ़ाइल और OS का हैश शामिल करें।
- एकाधिक कैश: हर चीज़ को एक बड़े कैश में न रखें। अलग-अलग निर्भरता प्रकारों, जैसे node_modules और pip पैकेज, के लिए अलग कैश हिट दरों को बेहतर बना सकते हैं।
- पुनर्स्थापना कुंजियाँ: यदि प्राथमिक कुंजी से मिलान न हो, तो कई कैश कुंजियाँ आज़माने के लिए
restore-keysका उपयोग करें। इससे आंशिक मिलान की संभावना बढ़ती है।
name: Advanced Caching
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache Node Modules
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: | # Try less specific keys if primary misses
${{ runner.os }}-node-
- name: Install Dependencies
run: npm ci
इस वर्कफ़्लो का अनुकूलन करें
ऐसे वर्कफ़्लो पर विचार करें जो फ्रंटएंड और बैकएंड दोनों कोड का बिल्ड करता है। वर्तमान में यह क्रमिक रूप से चलता है और checkout पूरा इतिहास प्राप्त करता है। इसके प्रदर्शन में काफ़ी सुधार करने वाले कौन-से दो बदलाव होंगे?
name: Inefficient Workflow
on: [push]
jobs:
build-all:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Frontend Deps
run: npm install
- name: Build Frontend
run: npm run build
- name: Install Backend Deps
run: pip install -r requirements.txt
- name: Build Backend
run: python setup.py build
पुनरावृत्ति: गति के लिए ट्यूनिंग
आपने अपने GitHub Actions वर्कफ़्लो को अनुकूलित करने की शक्तिशाली तकनीकें सीख ली हैं!
- बाधाओं की पहचान करें: GitHub UI और लॉग का उपयोग करें।
- कार्यों को समानांतर चलाएँ: स्वतंत्र कार्यों को एक साथ चलाएँ।
- Checkout का अनुकूलन करें: शैलो क्लोन का उपयोग करें।
- आर्टिफ़ैक्ट कम करें: अपलोड और डाउनलोड के आकार छोटे रखें।
- पथ फ़िल्टरिंग: संबंधित फ़ाइलों में बदलाव होने पर ही कार्य चलाएँ।
- तेज़ रनर: उपयुक्त रनर संसाधन चुनें।
- उन्नत कैशिंग: सूक्ष्म कुंजियों और कई कैश का उपयोग करें।
इन रणनीतियों को अपनाकर, आप अपनी पाइपलाइन को तेज़ और अधिक कुशल बना सकते हैं तथा मूल्यवान समय और संसाधन बचा सकते हैं।
एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 142
- पाठ
- 568
अक्सर पूछे जाने वाले प्रश्न
क्या “पाइपलाइन प्रदर्शन समायोजन” पाठ निःशुल्क है?
हाँ — DevOps बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “पाइपलाइन प्रदर्शन समायोजन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“पाइपलाइन प्रदर्शन समायोजन” में मैं क्या सीखूँगा?
अपने GitHub Actions वर्कफ़्लो की निष्पादन गति और संसाधन खपत को अनुकूलित करने के लिए अड़चनों की पहचान तथा उन्नत तकनीकों का उपयोग कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ DevOps बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या DevOps बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर DevOps बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“पाइपलाइन प्रदर्शन समायोजन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस DevOps बूटकैंप पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर DevOps बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- DORA मापदंड और CI/CD स्वास्थ्य
- पाइपलाइन प्रदर्शन समायोजन
- DevOps स्वचालन के भावी रुझान
- CI/CD लागत और runner efficiency को अनुकूलित करना