Wolkra पर CI रनर फ़्रैंकफ़र्ट का एक क्लाउड सर्वर है जो आपके पाइपलाइन जॉब्स चलाता है, प्रति घंटा बिलिंग के साथ, ताकि आप तेज़ बिल्ड मशीन केवल ज़रूरत के समय चलाएं और कोई प्रति-मिनट फ़ीस न दें।
रनर को पूरा root एक्सेस, इमेज पुल और आर्टिफ़ैक्ट के लिए अनमीटर्ड ट्रैफ़िक, और एक क्लिक में Docker मिलता है।
अपने रनर खुद क्यों चलाएं
- हार्डवेयर खुद चुनें। कंपाइल के लिए CPU-ऑप्टिमाइज़्ड प्लान या बड़े टेस्ट सूट के लिए मेमोरी-ऑप्टिमाइज़्ड प्लान चुनें।
- गर्म कैश। डिपेंडेंसी, Docker लेयर और बिल्ड कैश जॉब्स के बीच रनर पर ही रहते हैं।
- कोई प्रति-मिनट कीमत नहीं। आप सर्वर के घंटों का भुगतान करते हैं, हर जॉब के मिनटों का नहीं।
- कोड जर्मनी में रहता है। सोर्स, सीक्रेट और आर्टिफ़ैक्ट फ़्रैंकफ़र्ट के सर्वरों पर प्रोसेस होते हैं। देखें EU VPS और GDPR।
- प्राइवेट एक्सेस। प्राइवेट नेटवर्क में रनर इंटरनल डेटाबेस और स्टेजिंग सर्वरों तक उन्हें एक्सपोज़ किए बिना पहुँच सकते हैं।
सपोर्टेड रनर
जो कुछ भी Linux पर चलता है, वह KVM VPS पर काम करता है, उदाहरण के लिए:
- GitLab Runner, हमारे GitLab ऐप के साथ भी
- सेल्फ़-होस्टेड GitHub Actions रनर
- Forgejo, Gitea और Woodpecker रनर
- Jenkins एजेंट, Buildkite एजेंट और इसी तरह के अन्य
ज़्यादातर रनर जॉब्स को अलग रखने के लिए Docker इस्तेमाल करते हैं। Docker ऐप Compose के साथ Docker CE इंस्टॉल करता है, इसलिए नए रनर को केवल रनर सॉफ़्टवेयर और एक रजिस्ट्रेशन टोकन चाहिए।
रनर का साइज़ तय करना
CPU-optimised
बिल्ड, कंप्यूटिंग और व्यस्त API के लिए हर GB पर ज़्यादा vCPU।
| प्लान | vCPU | RAM | डिस्क | ट्रैफ़िक | प्रति घंटा | मासिक अधिकतम सीमा |
|---|---|---|---|---|---|---|
| C1 | 2 | 2 GB | 30 GB | अनमीटर्ड | €0.0112 | €6.99 |
| C2 | 4 | 4 GB | 40 GB | अनमीटर्ड | €0.0224 | €13.99 |
| C3 | 8 | 8 GB | 70 GB | अनमीटर्ड | €0.0432 | €26.99 |
- लिंटिंग, यूनिट टेस्ट, छोटे बिल्ड: Standard (s) प्लान।
- कंपाइलिंग, बंडलिंग, कंटेनर इमेज बनाना: CPU-ऑप्टिमाइज़्ड (c) प्लान।
- बड़े टेस्ट सूट, टेस्ट में डेटाबेस, JVM बिल्ड: मेमोरी-ऑप्टिमाइज़्ड (m) प्लान।
जॉब चलते समय CPU और मेमोरी ग्राफ़ पर नज़र रखें, और जब बिल्ड रिसोर्सेज़ का इंतज़ार करने लगें तो रीसाइज़ करें। देखें मॉनिटरिंग।
अच्छी तरह काम करने वाले पैटर्न
हमेशा चालू रनर
एक या दो रनर जो हमेशा उपलब्ध रहें। आसान, और कैश हमेशा गर्म। लगातार कमिट करने वाली छोटी टीमों के लिए अच्छा।
बर्स्ट रनर
एक बेस रनर रखें, और व्यस्त घंटों या रिलीज़ के दिनों में और जोड़ें। क्योंकि बिलिंग हर शुरू हुए घंटे के हिसाब से है और मासिक कीमत पर अधिकतम सीमा है, चार घंटे मौजूद रहने वाला रनर चार घंटे का ही खर्च करता है। बाद में उसे डिलीट कर दें।
API से ऑटोस्केलिंग
जॉब कतार बढ़ने पर रनर सर्वर बनाने और खाली होने पर उन्हें डिलीट करने के लिए प्रोजेक्ट-स्कोप्ड टोकन के साथ REST API इस्तेमाल करें। cloud-init यूज़र डेटा पास करें जो पहले बूट पर रनर इंस्टॉल और रजिस्टर करे, या तैयार किए गए स्नैपशॉट से रनर बनाएं ताकि वे तैयार हालत में शुरू हों।
टोकन के लिए सुझाव:
- ऑटोस्केलर को उसका अपना प्रोजेक्ट दें, ताकि उसका टोकन केवल रनर सर्वरों को छू सके।
- ऑटोस्केलर चलाने वाली मशीन के लिए एक्सपायरी वाला read/write टोकन और IP अलाउ लिस्ट इस्तेमाल करें।
संवेदनशील जॉब्स के लिए अलग-थलग रनर
डिप्लॉयमेंट जॉब्स को प्राइवेट नेटवर्क में बिना पब्लिक IP वाले एक अलग रनर पर चलाएं। एक NAT गेटवे उसे इमेज और पैकेज पुल करने के लिए आउटबाउंड एक्सेस देता है, और इंटरनेट से कोई भी उस तक सीधे नहीं पहुँच सकता।
सिक्योरिटी चेकलिस्ट
- SSH की इस्तेमाल करें और पासवर्ड से साइन-इन बंद करें।
- SSH के अलावा कोई इनबाउंड पोर्ट न खोलने वाला मुफ़्त फ़ायरवॉल लगाएं। रनर आम तौर पर केवल आउटबाउंड कनेक्शन बनाते हैं।
- पब्लिक फ़ोर्क से आने वाली अविश्वसनीय पाइपलाइन उन रनर पर न चलाएं जिनमें प्रोडक्शन सीक्रेट हों।
- रनर सॉफ़्टवेयर और OS को अपडेट रखें, या रनर को अक्सर नई इमेज से बदलते रहें।
- रनर सर्वरों पर लेबल इस्तेमाल करें, ताकि एक ही फ़ायरवॉल नियमों का सेट उन सब पर लागू हो।
कैश और आर्टिफ़ैक्ट के लिए स्टोरेज
बिल्ड कैश तेज़ी से बढ़ते हैं। कैश या लोकल रजिस्ट्री के लिए 10 GB से 10 TB तक का ब्लॉक स्टोरेज वॉल्यूम अटैच करें, और भरने पर उसे ऑनलाइन बढ़ाएं। वॉल्यूम आपके लिए अपने-आप फ़ॉर्मेट और माउंट किए जा सकते हैं।
कैशिंग के सुझाव
रनर पर एक शेयर्ड डिपेंडेंसी कैश रखें, Dockerfile को सबसे कम से सबसे ज़्यादा बदलने वाले हिस्से के क्रम में लिखकर Docker लेयर दोबारा इस्तेमाल करें, और पुरानी इमेज को शेड्यूल पर साफ़ करें।
CI के लिए Wolkra क्यों
- प्रीपेड बैलेंस और बिना कॉन्ट्रैक्ट के साथ प्रति घंटा बिलिंग। देखें प्रति घंटा बिलिंग।
- 10 Gbit/s तक के शेयर्ड पोर्ट पर, उचित उपयोग के साथ अनमीटर्ड ट्रैफ़िक। बेस इमेज, डिपेंडेंसी और आर्टिफ़ैक्ट मिलकर कोई बैंडविड्थ बिल नहीं बनाते। देखें नेटवर्क।
- यूरोप के केंद्र से पूरे यूरोप में कम लेटेंसी, यूरोपियन Git होस्ट और रजिस्ट्री के करीब।
बड़े कंटेनर वर्कफ़्लो के लिए देखें Docker होस्टिंग और डेवलपमेंट एनवायरनमेंट।
अपना पहला रनर जोड़ें
अकाउंट बनाएं, फ़्रैंकफ़र्ट में Docker ऐप लॉन्च करें, और कुछ ही मिनटों में उसे अपने CI सिस्टम के साथ रजिस्टर करें।
अक्सर पूछे जाने वाले सवाल
Wolkra पर मैं कौन-से CI सिस्टम चला सकता हूँ?
कोई भी रनर जो Linux पर चलता है, जिसमें GitLab Runner, सेल्फ़-होस्टेड GitHub Actions रनर, Forgejo और Gitea रनर, Woodpecker और Jenkins एजेंट शामिल हैं।
CI रनर सेल्फ़-होस्ट क्यों करें?
आप मशीन का साइज़ चुनते हैं, जॉब्स के बीच कैश गर्म रखते हैं, प्रति-मिनट फ़ीस से बचते हैं और सोर्स कोड और बिल्ड आर्टिफ़ैक्ट जर्मनी के सर्वरों पर रखते हैं।
क्या रनर अपने-आप स्केल अप और डाउन हो सकते हैं?
हाँ, आपके अपने टूलिंग से। REST API सर्वर बनाता और डिलीट करता है, इसलिए कोई स्क्रिप्ट या ऑटोस्केलर कतार बढ़ने पर रनर जोड़ सकता है और बाद में उन्हें हटा सकता है।
क्या इमेज पुल और आर्टिफ़ैक्ट अपलोड का बिल बनता है?
नहीं। ट्रैफ़िक उचित उपयोग (फ़ेयर यूज़) के साथ अनमीटर्ड है, इसलिए बेस इमेज पुल करने और आर्टिफ़ैक्ट अपलोड करने पर कोई प्रति-GB फ़ीस नहीं है।
क्या रनर उसी सर्वर पर होना चाहिए जिस पर GitLab है?
उसे अपने अलग सर्वर पर रखना बेहतर है। बिल्ड बहुत CPU और मेमोरी इस्तेमाल करते हैं, और उन्हें अलग रखने से GitLab तेज़ी से रिस्पॉन्ड करता रहता है।