Build Server mobil inkişafda — bu nədir, vəzifələri və iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-04-11 Oxuma vaxtı: 8 dəq

Build Server — bu məxusi server və ya virtual maşındır ki, avtomatik olaraq mənbə kodu kompilyasiya edir, testləri işə salır və yerləşdirməyə hazır artefaktlar yaradır. O, CI/CD infrastrukturunun mərkəzi qovşanağı kimi xidmət edir və kompilyasiya tapşırıqlarını öz üzərinə götürərək yerli tərtibatçı maşınlarını boşaldır. GitLab Global DevSecOps Report, 2025 hesabatına görə, 67% komanda dayanıqlılığı və kompilyasiya sürətini artırmaq üçün ayrılmış build serverlərdən istifadə edir.

Başlıca

  • Build Server — bu CI/CD boru kəməri ilə inteqrasiya olunmuş, kodun avtomatik kompilyasiyası və test edilməsi üçün mərkəzləşdirilmiş sistemdir.
  • Əsas vəzifələr — mənbə kodun kompilyasiyası, vahid testlərin işə salınması, statik analiz, artefaktların hazırlanması və onların reyestrdə dərc edilməsi.
  • Məşhur tətbiqlər — Jenkins, GitLab Runner, GitHub Actions self-hosted, TeamCity, Bamboo.
  • Self-hosted vs bulud — self-hosted tam nəzarət verir, bulud həlləri isə inzibatçilik xərclərini azaldır.
  • Mobil inkişaf üçün build server macOS (iOS üçün) dəstəkləməli və böyük layihələrin kompilyasiyası üçün kifayət resurslara malik olmalıdır.

Build Server nədir

Build Server (kompilyasiya serveri) — bu kodun kompilyasiyası və buraxılışların hazırlanması ilə bağlı tapşırıqların avtomatik icrası üçün nəzərdə tutulmuş ixtisaslaşdırılmış hesablama sistemidir. Tərtibatçının yerli maşınında kompilyasiyadan fərqli olaraq, server repozitorinin surəti ilə işləyir, təmiz mühit və sabit asılılıq versiyalarından istifadə edir.

Build server Continuous Integration təcrübəsinin əsas komponentidir. O, hər bir commit-in kim tərəfindən edilməsindən asılı olmayaraq eyni yoxlama prosesindən keçməsini təmin edir. Bu, “mənim maşınımda işləyir” problemini aradan qaldırır və vahid keyfiyyət standartını təmin edir.

Google DORA, 2025 məlumatlarına görə, ayrılmış build server istifadə edən komandalar dəyişiklik təsdiq müddətini saatlardan dəqiqələrə qədər azaldır. Bu, son istifadəçilərə funksiyaların və düzəlişlərin çatdırılma sürətinə birbaşa təsir edir.

Mobil inkişafda build server nəyə lazımdır

Mobil tətbiqlərin kompilyasiyası əhəmiyyətli resurs tələb edir: Kotlin və ya Swift kompilyasiyası 5 dəqiqədən 40 dəqiqəyə qədər çəkə bilər. Kompilyasiyanı tərtibatçının yerli maşınında işə salsa, o, tamamlanana qədər məhsuldar işləyə bilməz. Build server bu problemi həll edərək tərtibatçını digər tapşırıqlar üçün azad edir.

Build server ilə CI serveri arasındakı fərq

Təcrübədə terminlər çox vaxt sinonim kimi istifadə olunur, lakin fərq var: CI server (Jenkins, CircleCI) — bu boru kəmərlərini idarə edən sistemdir, build server isə bu boru kəmərlərinin icra olunduğu fiziki və ya virtual hostdur. Bir CI server çoxlu build agentlərini (build slaves) idarə edə bilər.

Build server-in arxitekturası

Tipik build server bir neçə komponentdən ibarətdir, hər biri prosesin müəyyən mərhələsinə cavabdehdir. Arxitekturanı başa düşmək infrastrukturu komandanın yükü altında düzgün miqyaslamağa kömək edir.

Əsas komponentlər

Nüvə (executor) — kompilyasiya tapşırıqlarını işə salır. Docker konteynerləri, virtual maşınlar və ya birbaşa host üzərində işləyə bilər. Tapşırıq növbəsi paralel kompilyasiyaların prioritetlərini idarə edir. Artefakt anbarı sonrakı dərc üçün nəticələri (APK, IPA, AAB) saxlayır.

Build agentləri şəbəkəsi (build farm)

İşi sürətləndirmək üçün build server agentlər hovuzunu idarə edə bilər. Hər bir agent — kompilyasiya yerinə yetirə bilən ayrıca maşın və ya konteynerdir. Yük artdıqca avtomatik miqyaslama (auto-scaling) buludda yeni agentlər əlavə edir. Məsələn, Jenkins Kubernetes plagini ilə hər kompilyasiya üçün dinamik olaraq podlar yarada bilər.

groovy
pipeline {
    agent {
        kubernetes {
            yaml """
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: android-sdk
    image: openjdk:17-jdk
    command: ['sleep','infinity']
"""
        }
    }
    stages {
        stage('Build') {
            steps {
                sh './gradlew assembleDebug'
            }
        }
    }
}

Build server növləri

Build serverlər yerləşdirilmə üsuluna və hədəf texnologiya stackinə görə bir neçə kateqoriyaya bölünür. Müəyyən həllin seçimi komandanın ölçüsündən, büdcədən və təhlükəsizlik tələblərindən asılıdır.

Self-hosted build serverlər

Jenkins, TeamCity, Bamboo, GitLab Runner (self-hosted) — öz serverlərdə və ya VPS-də qurulur. Müsbət cəhətləri: konfiqurasiya üzərində tam nəzarət, istənilən proqram təminatından istifadə imkanı, məlumatlar şirkətin infrastrukturunu tərk etmir. Mənfi cəhətləri: inzibatçılıq, yeniləmə və miqyaslama xərcləri.

Bulud idarə olunan həllər

GitHub Actions, CircleCI, Bitrise, Codemagic, GitLab SaaS — server idarəçiliyi tələb etmir. Ödəniş kompilyasiya dəqiqələrinə və ya abunə üzrədir. Kiçik komandalar üçün bu optimal başlanğıcdır. Çoxlu kompilyasiyası olan böyük layihələr üçün xərclər self-hosted həllin qiymətindən yüksək ola bilər.

HəllNövPlatformalarBaşlanğıc qiymət
JenkinsSelf-hostedIstənilənPulsuz (open-source)
GitHub ActionsBuludLinux, macOS, Windows2000 dəq/ay pulsuz
BitriseBuludiOS, Android, Flutter, React Native$0 (90 dəq/ay)
TeamCitySelf-hostedIstənilənPulsuz (100 kompilyasiya)

iOS inkişafı üçün build serverlər

iOS-ın xüsusiyyəti ondan ibarətdir ki, kompilyasiya yalnız macOS-də mümkündür. Variantlar: stekdə Mac mini, MacStadium (Mac icarəsi), macOS runner ilə GitHub Actions, öz Mac agentləri ilə Bitrise. Self-hosted Mac build server bahalı avadanlığın alınması və onun saxlanmasını tələb edir.

Build server-i necə qurmaq olar

Android və iOS kompilyasiyaları ilə mobil layihə üçün build server-in addım-addım qurulmasına baxaq. Əsas olaraq iOS üçün self-hosted runner və Android üçün bulud runner ilə GitHub Actions istifadə edirik.

Addım 1: CI serverinin quraşdırılması və konfiqurasiyası

İdarəetmə platforması seçin (Jenkins, GitLab, GitHub Actions). Master node quraşdırın, SSH və ya personal access token vasitəsilə repozitoriyaya girişə ayarlayın. Repozitoriyaya push bildirişləri zamanı avtomatik kompilyasiya başlatmaq üçün webhook konfiqurasiya edin.

Addım 2: Build agentlərinin əlavə edilməsi

Bir və ya bir neçə maşını agent (slaves/runners) kimi qeydiyyatdan keçirin. Android kompilyasiyaları üçün agent quraşdırılmış JDK, Android SDK, Gradle ilə Linux və ya Windows-da işləyə bilər. iOS üçün — Xcode Command Line Tools və CocoaPods ilə macOS-da.

Addım 3: Boru kəmərinin konfiqurasiyası

Mərhələləri müyyənləşdirin: checkout, asılılıqların quraşdırılması, kompilyasiya, test, artefaktın dərci. Sürətləndirmək üçün asılılıqların keşlənməsindən istifadə edin (Gradle cache, CocoaPods cache, Docker image layers).

yaml
name: Android Build
on:
  push:
    branches: [main, develop]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-java@v4
        with:
          distribution: 'temurin'
          java-version: '17'
      - name: Cache Gradle
        uses: actions/cache@v4
        with:
          path: ~/.gradle/caches
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
      - name: Build Release APK
        run: ./gradlew assembleRelease
      - name: Upload Artifact
        uses: actions/upload-artifact@v4
        with:
          name: app-release.apk
          path: app/build/outputs/apk/release/app-release.apk

Build server-lərin qiymət müqayisəsi

Self-hosted və bulud build serveri arasında seçim yalnız texniki deyil, həm də maliyyə qərarıdır. Qiymət kompilyasiyaların həcmindən, tələb olunan icra vaxtından və iOS üçün macOS ehtiyacından asılı olaraq çox dəyişir.

CAPEX vs OPEX

Self-hosted server kapital xərcləri (CAPEX) tələb edir: avadanlığın alınması (Mac mini $699-dan, server stendləri, şəbəkə avadanlığı), quraşdırma və texniki xidmət. Bulud həlləri — əməliyyat xərcləri (OPEX): kompilyasiya dəqiqələrinə görə ödəniş. Kiçik komandalar üçün OPEX daha sərfəlidir, gündə yüzlərlə kompilyasiyası olan böyük layihələr üçün CAPEX 6–12 ay ərzində özünü doğruldur.

ParametrSelf-hosted (Jenkins)Bulud (GitHub Actions)Ixtisaslaşdırılmış (Bitrise)
Başlanğıc xərclər$1000–$5000$0$0
Aylıq ödəniş$50–$200 (hosting)$0–$500 (dəqiqə limiti)$0–$300 (abunə)
macOS dəstəyiMac mini + CI quraşdırma tələb edirDaxili (macOS runner)Daxili
İnzibatçılıq5–10 saat/ay1–2 saat/ay1–2 saat/ay

Gizli xərclər

Büdcə hesablayarkən gizli xərcləri nəzərə alın: proqram təminatını yeniləmə, nasazlıqları aradan qaldırma, konfiqurasiyaların ehtiyat nüsxəsi, şəbəkə artefakt saxlanması vaxtı. Self-hosted həllər üçün baza texniki xidmət dəyərinə 20–30% əlavə edin. Bulud həlləri üçün — dəqiqə limitinin pik yükləri, xüsusilə buraxılışlardan əvvəl örtdüyünə əmin olun.

Xərclərin optimallaşdırılması

Build server xərclərini bir neçə yolla azaltmaq olar: buludda spot instanslardan istifadə (70% ədəcuz), kompilyasiyalar arasında asılılıqları keşləmək, uğursuz boru kəmərlərinin icra müddətini məhdudlaşdırmaq və iş vaxtından kənarda qeyri-aktiv self-hosted agentlərin avtomatik söndürülməsini konfiqurasiya etmək.

Build server-lər üçün ən yaxşı təcrübələr

Build server-in səmərəli işləməsi bir sıra prinsiplərə riayət etməyi tələb edir. Kompilyasiya sürətinin optimallaşdırılması və infrastrukturun dayanıqlılığı birbaşa komandanın məhsuldarlığına təsir edir.

Keşləmə və artımlı kompilyasiyalar

Gradle Build Cache, C/C++ üçün CCache, Kotlin və Swift üçün incremental compiler — bütün mövcud keşləmə mexanizmlərini aktivləşdirin. Müxtəlif tərtibatçıların və agentlərin kompilyasiya nəticələrini paylaşması üçün uzaqdan kompilyasiya keşi (HTTP və ya S3 vasitəsilə) konfiqurasiya edin.

Mühitlərin izolyasiyası

Hər bir kompilyasiya təmiz mühitdə işə salınmalıdır. Əvvəlki kompilyasiyaların cariyə təsirini istisna etmək üçün Docker konteynerlərindən və ya müvəqqqəti virtual maşınlardan istifadə edin. Bu, “çirkli vəziyyət” (state pollution) problemini aradan qaldırır.

  • Docker-dan istifadə edin kompilyasiya mühitlərinin konteynerləşdirilməsi üçün — bu, kompilyasiyaların təkrarlanmasını təmin edir
  • Monitorinq qurun build server üçün — CPU, yaddaş, disk, kompilyasiya vaxtı, xəta tezliyi
  • Təmizləməni avtomatlaşdırın köhnə artefaktların disk sahəsini doldurmaması üçün

Build server-in təhlükəsizliyi

Build server mənbə kodlara, imza açarlarına və sirlərə çıxışa malikdir. Hücum səthini minimuma endirin: müxtəlif layihələr üçün izolyasiya olunmuş agentlərdən istifadə edin, master node girişini məhdudlaşdırın, signed commits istifadə edin və asılılıqları zəifliklər üçün yoxlayın.

Tez-tez verilən suallar

Kiçik komanda üçün hansı build server seçilməlidir?

Kiçik komandalar üçün bulud həlləri optimaldır: GitHub Actions (2000 dəq/ay pulsuz) və ya mobil layihələr üçün Bitrise. Onlar inzibatçılıq tələb etmir və tez konfiqurasiya olunur.

iOS və Android üçün eyni build server istifadə edilə bilərmi?

Bəli, lakin iki növ agent tələb olunacaq: iOS üçün macOS və Android üçün Linux/Windows. CI server (Jenkins, GitLab) vahid interfeysdən hər iki növ agenti idarə edə bilər.

Mobil kompilyasiya üçün build serverə nə qədər operativ yaddaş lazımdır?

Android kompilyasiyası üçün minimum 8 GB RAM, tövsiyə olunan 16 GB. iOS üçün — 8 GB-dan. Boru kəməri bir neçə paralel kompilyasiya işə salırsa, yaddaş xətti miqyaslanır: N kompilyasiya x 8 GB.

Self-hosted build server buluddan nə ilə yaxşıdır?

Self-hosted konfiqurasiya üzərində tam nəzarət verir, kompilyasiya dəqiqə limiti yoxdur (böyük həcmlərdə özünü doğruldur) və məlumat izolyasiyasını təmin edir. Bulud həlləri kiçik və orta komandalar üçün daha sərfəlidir.

Layihə Flutter istifadə edirsə, build server lazımdırmı?

Bəli, Flutter layihələri də müxtəlif platformalar üçün kompilyasiya tələb edir. Codemagic — Flutter üçün ixtisaslaşdırılmış CI/CD həllidir ki, eyni repozitoridan Android, iOS, Web və Desktop kompilyasiyalarını eyni vaxtda dəstəkləyir.

Nəticə

  • Build Server — CI/CD infrastrukturunun mərkəzi elementi, kompilyasiyanı, testi və artefaktların hazırlanmasını avtomatlaşdırır.
  • Arxitektura master node və yük altında miqyaslana bilən build agentləri hovuzunu əhatə edir.
  • Self-hosted həllər (Jenkins, TeamCity) nəzarət tələbləri yüksək olan böyük komandalar üçün uyğundur.
  • Bulud xidmətləri (GitHub Actions, Bitrise, Codemagic) — server idarəçiliyi olmadan sürətli başlanğıc.
  • iOS kompilyasiyaları macOS tələb edir ki, bu da Android/Linux ilə müqayisədə infrastruktur dəyərini artırır.
  • Keşləmə və artımlı kompilyasiyalar build server-in sürəti üçün kritik əhəmiyyət daşıyır.
  • Təhlükəsizlik build server üçün prioritetdir: agent izolyasiyası, sirr idarəçiliyi, asılılıq skan edilməsi.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun