Wolkra-da CI runner pipeline tapşırıqlarınızı icra edən, saatlıq hesablanan Frankfurt bulud serveridir; beləliklə sürətli build maşınını yalnız lazım olanda işlədir və dəqiqəlik ödəniş etmirsiniz.
Runner-lər tam root girişi, image yükləmələri və artefaktlar üçün ölçülməyən trafik və bir kliklə Docker alır.
Niyə öz runner-lərinizi işlətməli
- Avadanlığı seçin. Kompilyasiya üçün CPU-optimallaşdırılmış, böyük test dəstləri üçün yaddaş-optimallaşdırılmış plan götürün.
- İsti keşlər. Asılılıqlar, Docker qatları və build keşləri tapşırıqlar arasında runner-də qalır.
- Dəqiqəlik qiymət yoxdur. Hər tapşırığın dəqiqələri üçün deyil, serverin saatları üçün ödəyirsiniz.
- Kod Almaniyada qalır. Mənbə kodu, secret-lər və artefaktlar Frankfurtdakı serverlərdə emal olunur. Bax: Aİ VPS və GDPR.
- Şəxsi giriş. Şəxsi şəbəkədəki runner-lər daxili verilənlər bazalarına və staging serverlərinə onları xaricə açmadan çata bilir.
Dəstəklənən runner-lər
Linux-da işləyən hər şey KVM VPS-də işləyir, məsələn:
- GitLab Runner, o cümlədən GitLab tətbiqimizlə
- Öz serverinizdəki GitHub Actions runner-ləri
- Forgejo, Gitea və Woodpecker runner-ləri
- Jenkins agentləri, Buildkite agentləri və bənzərləri
Əksər runner-lər tapşırıqları təcrid etmək üçün Docker-dən istifadə edir. Docker tətbiqi Docker CE-ni Compose ilə quraşdırır, beləliklə yeni runner-ə yalnız runner proqramı və qeydiyyat tokeni lazım olur.
Runner ölçüsünü seçmək
CPU üçün optimallaşdırılmış
Build-lər, hesablamalar və yüklü API-lər üçün GB başına daha çox vCPU.
| Plan | vCPU | RAM | Disk | Trafik | Saatlıq | Aylıq limit |
|---|---|---|---|---|---|---|
| C1 | 2 | 2 GB | 30 GB | Ölçülməyən | €0.0112 | €6.99 |
| C2 | 4 | 4 GB | 40 GB | Ölçülməyən | €0.0224 | €13.99 |
| C3 | 8 | 8 GB | 70 GB | Ölçülməyən | €0.0432 | €26.99 |
- Linting, unit testlər, kiçik build-lər: Standard (s) plan.
- Kompilyasiya, bundling, konteyner image-lərinin build-i: CPU-optimallaşdırılmış (c) plan.
- Böyük test dəstləri, testlərdə verilənlər bazaları, JVM build-ləri: yaddaş-optimallaşdırılmış (m) plan.
Tapşırıqlar işləyərkən CPU və yaddaş qrafiklərini izləyin və build-lər resurs gözləyəndə planı böyüdün. Bax: monitorinq.
Yaxşı işləyən modellər
Həmişə işləyən runner
Həmişə əlçatan bir və ya iki runner. Sadədir, keşlər həmişə istidir. Müntəzəm commit-ləri olan kiçik komandalar üçün uyğundur.
Pik saatlar üçün runner-lər
Bir əsas runner saxlayın, yüklü saatlarda və ya reliz günlərində əlavələrini qoşun. Hesablama hər başlanmış saat üzrə aparıldığından və aylıq qiymətlə məhdud olduğundan, dörd saat mövcud olan runner dörd saata başa gəlir. Sonra onu silin.
API ilə avtomatik miqyaslama
Layihəyə bağlı tokenlə REST API-dən istifadə edərək tapşırıq növbəsi uzananda runner serverləri yaradın, boşalanda isə silin. Runner-i ilk açılışda quraşdırıb qeydiyyatdan keçirən cloud-init user data ötürün və ya runner-ləri hazır snapshot-dan yaradın ki, hazır vəziyyətdə başlasınlar.
Tokenlər üzrə məsləhətlər:
- Autoscaler-ə ayrıca layihə verin ki, onun tokeni yalnız runner serverlərinə toxuna bilsin.
- Autoscaler-i işlədən maşın üçün bitmə müddəti olan oxuma/yazma tokeni və IP icazə siyahısından istifadə edin.
Həssas tapşırıqlar üçün təcrid olunmuş runner-lər
Deploy tapşırıqlarını şəxsi şəbəkədə, public IP-si olmayan ayrıca runner-də işlədin. NAT gateway ona image-ləri və paketləri yükləmək üçün xaricə çıxış verir, internetdən isə heç kim ona birbaşa çata bilməz.
Təhlükəsizlik yoxlama siyahısı
- SSH açarlarından istifadə edin və parolla girişi söndürün.
- SSH-dan başqa heç bir daxilolma portu açıq olmayan pulsuz firewall qoşun. Runner-lər adətən yalnız xaricə bağlantılar qurur.
- Production secret-lərini saxlayan runner-lərdə açıq fork-lardan gələn etibarsız pipeline-ları işlətməyin.
- Runner proqramını və əməliyyat sistemini yenilənmiş saxlayın və ya runner-ləri tez-tez təzə image-dən əvəz edin.
- Runner serverlərinə etiketlər qoyun ki, bir firewall qayda dəsti hamısına tətbiq olunsun.
Keşlər və artefaktlar üçün yaddaş
Build keşləri sürətlə böyüyür. Keşlər və ya lokal registry üçün 10 GB-dan 10 TB-a qədər blok yaddaş volume-u qoşun və dolduqca onu onlayn böyüdün. Volume-lar sizin üçün formatlana və mount edilə bilər.
Keşləmə məsləhətləri
Runner-də ümumi asılılıq keşi saxlayın, Dockerfile-ları ən az dəyişəndən ən çox dəyişənə doğru sıralayaraq Docker qatlarını təkrar istifadə edin və köhnə image-ləri cədvəl üzrə təmizləyin.
Niyə CI üçün Wolkra
- Əvvəlcədən ödənilmiş balans və müqaviləsiz saatlıq hesablama. Bax: saatlıq hesablama.
- 10 Gbit/s-ə qədər paylaşılan portlarda ədalətli istifadə şərti ilə ölçülməyən trafik. Baza image-ləri, asılılıqlar və artefaktlar trafik hesabı yaratmır. Bax: şəbəkə.
- Avropanın mərkəzindən, Avropa Git hostlarına və registry-lərinə yaxın yerdən bütün Avropaya aşağı gecikmə.
Daha geniş konteyner iş axınları üçün Docker hostinqi və inkişaf mühitləri səhifələrinə baxın.
İlk runner-inizi əlavə edin
Hesab yaradın, Frankfurtda Docker tətbiqini işə salın və bir neçə dəqiqəyə onu CI sisteminizdə qeydiyyatdan keçirin.
Tez-tez verilən suallar
Wolkra-da hansı CI sistemlərini işlədə bilərəm?
Linux-da işləyən istənilən runner: GitLab Runner, öz serverinizdəki GitHub Actions runner-ləri, Forgejo və Gitea runner-ləri, Woodpecker və Jenkins agentləri.
Niyə CI runner-ləri öz serverimdə işlətməliyəm?
Maşının ölçüsünü özünüz seçirsiniz, keşləri tapşırıqlar arasında isti saxlayırsınız, dəqiqəlik ödənişlərdən qaçırsınız, mənbə kodu və build artefaktları isə Almaniyadakı serverlərdə qalır.
Runner-lər avtomatik artıb-azala bilərmi?
Bəli, öz alətlərinizlə. REST API serverləri yaradır və silir, beləliklə skript və ya autoscaler növbə uzananda runner əlavə edə, sonra isə silə bilər.
Image yükləmələri və artefakt göndərmələri hesablanırmı?
Xeyr. Trafik ədalətli istifadə şərti ilə ölçülmür, ona görə də baza image-lərini yükləmək və artefaktları göndərmək üçün GB üzrə ödəniş yoxdur.
Runner GitLab ilə eyni serverdə olmalıdırmı?
Ayrıca serverdə olması daha yaxşıdır. Build-lər çox CPU və yaddaş işlədir, onları ayrı saxlamaq isə GitLab-ın cəld cavab verməsini təmin edir.