Mobil geliştirmede Build Server — nedir, görevleri ve çalışma prensibi

Yazar: IT Sectr Yayınlanma: 2026-04-11 Okuma süresi: 8 dk

Build Server, kaynak kodu otomatik olarak derleyen, testleri çalıştıran ve dağıtıma hazır yapay ürünler (artifact) oluşturan özel bir sunucu veya sanal makinedir. CI/CD altyapısının merkezi düğümü olarak görev yapar ve derleme görevlerini üstlenerek geliştiricilerin yerel makinelerini boşa çıkarır. GitLab Global DevSecOps Report, 2025’e göre, ekiplerin %67’si kararlılığı ve derleme hızını artırmak için özel derleme sunucuları kullanmaktadır.

Temel Noktalar

  • Build Server, CI/CD hattına entegre, otomatik kod derleme ve test için merkezi bir sistemdir.
  • Ana görevler — kaynak kodu derleme, birim testlerini çalıştırma, statik analiz, yapay ürünleri hazırlama ve bunları bir kayda yayınlama.
  • Popüler uygulamalar — Jenkins, GitLab Runner, GitHub Actions self-hosted, TeamCity, Bamboo.
  • Self-hosted ve bulut — self-hosted tam kontrol sağlar, bulut tabanlı çözümler yönetim maliyetlerini düşürür.
  • Mobil geliştirme için derleme sunucusu macOS’i (iOS için) desteklemeli ve büyük projeleri derlemek için yeterli kaynağa sahip olmalıdır.

Build Server Nedir

Build Server (derleme sunucusu), kod derleme ve sürüm hazırlığı ile ilgili görevleri otomatik olarak yürütmek üzere tasarlanmış özel bir bilgi işlem sistemidir. Geliştiricinin makinesindeki yerel derlemenin aksine, sunucu deponun bir kopyasıyla çalışır, temiz bir ortam ve sabit bağımlılık sürümleri kullanır.

Derleme sunucusu, Sürekli Entegrasyon (Continuous Integration) pratiğinin anahtar bir bileşenidir. Her commit’in, kim tarafından yapıldığına bakılmaksızın aynı doğrulama sürecinden geçmesini sağlar. Bu, “benim makinemde çalışıyor” sorununu ortadan kaldırır ve tek tip bir kalite standardı sağlar.

Google DORA, 2025’e göre, özel derleme sunucusu kullanan ekipler, değişiklik onay süresini saatlerden dakikalara indirmektedir. Bu, son kullanıcılara özellik ve düzeltmelerin teslim hızını doğrudan etkiler.

Mobil geliştirmede neden derleme sunucusu gereklidir

Mobil uygulamaları derlemek önemli kaynaklar gerektirir: Kotlin veya Swift derlemesi 5 ila 40 dakika sürebilir. Derlemeyi geliştiricinin yerel makinesinde çalıştırırsanız, tamamlanana kadar verimli bir şekilde çalışamaz. Derleme sunucusu, geliştiriciyi diğer görevler için serbest bırakarak bu sorunu çözer.

Derleme sunucusu ile CI sunucusu arasındaki fark

Pratikte, terimler genellikle eşanlamlı olarak kullanılır, ancak bir nüans vardır: bir CI sunucusu (Jenkins, CircleCI) boru hatlarını yöneten bir sistemdir, derleme sunucusu ise bu boru hatlarının yürütüldüğü fiziksel veya sanal ana bilgisayardır. Bir CI sunucusu birden fazla derleme aracısını (build slaves) yönetebilir.

Derleme Sunucusu Mimarisi

Tipik bir derleme sunucusu, her biri sürecin belirli bir aşamasından sorumlu olan birkaç bileşenden oluşur. Mimarisi anlamak, ekibin iş yüküne göre altyapıyı doğru şekilde ölçeklendirmeye yardımcı olur.

Ana Bileşenler

Yürütücü (çekirdek) — derleme görevlerini çalıştırır. Docker konteynerları, sanal makineler veya doğrudan ana bilgisayar üzerinde çalışabilir. İş kuyruğu paralel derlemelerin önceliklerini yönetir. Yapay ürün deposu sonuçları (APK, IPA, AAB) daha sonra yayınlamak üzere kaydeder.

Derleme Aracısı Ağı (build farm)

Çalışmayı hızlandırmak için derleme sunucusu bir aracı havuzunu yönetebilir. Her aracı, derleme gerçekleştirebilen ayrı bir makine veya konteynerdir. Yük arttığında, otomatik ölçeklendirme (auto-scaling) buluta yeni aracılar ekler. Örneğin, Kubernetes eklentisiyle Jenkins her derleme için dinamik olarak pod’lar oluşturabilir.

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'
            }
        }
    }
}

Derleme Sunucusu Türleri

Derleme sunucuları, dağıtım yöntemine ve hedef yığına göre birkaç kategoriye ayrılır. Belirli bir çözümün seçimi, ekip büyüklüğüne, bütçeye ve güvenlik gereksinimlerine bağlıdır.

Self-hosted Derleme Sunucuları

Jenkins, TeamCity, Bamboo, GitLab Runner (self-hosted) — kendi sunucularınıza veya VPS’inize kurulur. Artıları: yapılandırma üzerinde tam kontrol, herhangi bir yazılımı kullanma imkanı, veriler şirket altyapısından asla çıkmaz. Eksileri: yönetim, güncelleme ve ölçeklendirme maliyetleri.

Bulut Yönetimli Çözümler

GitHub Actions, CircleCI, Bitrise, Codemagic, GitLab SaaS — sunucu yönetimi gerektirmez. Derleme dakikası veya abonelik başına ödeme yapılır. Küçük ekipler için bu en uygun başlangıçtır. Yüksek derleme hacmine sahip büyük projeler için maliyetler self-hosted çözümü aşabilir.

ÇözümTürPlatformlarBaşlangıç Fiyatı
JenkinsSelf-hostedHerhangiÜcretsiz (açık kaynak)
GitHub ActionsBulutLinux, macOS, WindowsAyda 2000 dakika ücretsiz
BitriseBulutiOS, Android, Flutter, React Native$0 (ayda 90 dakika)
TeamCitySelf-hostedHerhangiÜcretsiz (100 derleme)

iOS Geliştirme için Derleme Sunucuları

iOS’un özelliği, derlemenin yalnızca macOS üzerinde mümkün olmasıdır. Seçenekler: rafta Mac mini, MacStadium (Mac kiralama), macOS runner ile GitHub Actions, kendi Mac aracılarıyla Bitrise. Kendi kendine barındırılan bir Mac derleme sunucusu, pahalı donanım satın alımı ve bakımını gerektirir.

Derleme Sunucusu Nasıl Kurulur

Android ve iOS derlemeleri olan bir mobil proje için derleme sunucusunun adım adım kurulumunu inceleyelim. Temel olarak iOS için self-hosted runner ve Android için bulut runner ile GitHub Actions kullanacağız.

Adım 1: CI Sunucusunu Kurun ve Yapılandırın

Bir yönetim platformu seçin (Jenkins, GitLab, GitHub Actions). Ana düğümü kurun, SSH veya kişisel erişim belirteci aracılığıyla depoya erişimi yapılandırın. Depoya push olaylarında derlemeyi otomatik olarak başlatmak için bir webhook ayarlayın.

Adım 2: Derleme Aracıları Ekleyin

Bir veya daha fazla makineyi aracı (slaves/runners) olarak kaydedin. Android derlemeleri için, JDK, Android SDK ve Gradle kurulu Linux veya Windows üzerinde bir aracı çalışabilir. iOS için — Xcode Command Line Tools ve CocoaPods ile macOS üzerinde.

Adım 3: Boru Hattını Yapılandırın

Aşamaları tanımlayın: checkout, bağımlılıkları yükleme, derleme, test etme, yapay ürünü yayınlama. Hızlandırmak için bağımlılık önbelleğini (Gradle önbelleği, CocoaPods önbelleği, Docker görüntü katmanları) kullanın.

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

Derleme Sunucusu Maliyet Karşılaştırması

Self-hosted ve bulut derleme sunucusu arasındaki seçim yalnızca teknik değil, aynı zamanda finansal bir karardır. Maliyet, derleme hacmine, gerekli yürütme süresine ve iOS için macOS ihtiyacına bağlı olarak büyük ölçüde değişir.

CAPEX ve OPEX

Self-hosted bir sunucu sermaye harcaması (CAPEX) gerektirir: ekipman satın alma (Mac mini $699’dan başlayan, sunucu rafları, ağ ekipmanları), kurulum ve bakım. Bulut çözümleri işletme giderleridir (OPEX): derleme dakikası başına ödeme. Küçük ekipler için OPEX daha avantajlıdır; günde yüzlerce derlemesi olan büyük projeler için CAPEX 6–12 ayda kendini amorti eder.

ParametreSelf-hosted (Jenkins)Bulut (GitHub Actions)Uzmanlaşmış (Bitrise)
Başlangıç maliyetleri$1000–$5000$0$0
Aylık ücret$50–$200 (barındırma)$0–$500 (dakika sınırı)$0–$300 (abonelik)
macOS desteğiMac mini + CI kurulumu gerekirDahili (macOS runner)Dahili
YönetimAyda 5–10 saatAyda 1–2 saatAyda 1–2 saat

Gizli Maliyetler

Bütçe yaparken gizli maliyetleri de hesaba katın: yazılım güncellemeleri, sorun giderme, yapılandırma yedeklemeleri, ağ yapay ürün deposu zamanı. Self-hosted çözümler için temel bakım maliyetine %20–30 ekleyin. Bulut çözümler için, özellikle sürümlerden önce dakika sınırının tepe yüklerini karşıladığından emin olun.

Maliyet Optimizasyonu

Derleme sunucusu maliyetlerini birkaç şekilde azaltabilirsiniz: bulutta spot örnekler kullanın (%70’e kadar daha ucuz), derlemeler arasında bağımlılıkları önbelleğe alın, başarısız boru hatlarının yürütme süresini sınırlayın ve çalışma saatleri dışında etkin olmayan self-hosted aracıların otomatik kapanmasını yapılandırın.

Derleme Sunucuları için En İyi Uygulamalar

Etkili bir derleme sunucusu işletimi, bir dizi ilkeye uymayı gerektirir. Derleme hızı optimizasyonu ve altyapı kararlılığı, geliştirme ekibinin ürenliğini doğrudan etkiler.

Önbellekleme ve Artımlı Derlemeler

Gradle Build Cache, C/C++ için CCache, Kotlin ve Swift için artımlı derleyici — mevcut tüm önbellek mekanizmalarını etkinleştirin. Farklı geliştiricilerin ve aracıların derleme sonuçlarını paylaşabilmesi için uzak bir derleme önbelleği (HTTP veya S3 aracılığıyla) kurun.

Ortam İzolasyonu

Her derleme temiz bir ortamda çalıştırılmalıdır. Önceki derlemelerin mevcut derlemeyi etkilemesini önlemek için Docker konteynerları veya geçici sanal makineler kullanın. Bu, durum kirliliği (state pollution) sorununu ortadan kaldırır.

  • Docker kullanın derleme ortamlarını konteynerleştirmek için — bu, derlemelerin tekrarlanabilirliğini sağlar
  • Derleme sunucusu izlemesi kurun — CPU, bellek, disk, derleme süresi, hata oranı
  • Eski yapay ürünlerin temizliğini otomatikleştirin disk alanını doldurmamak için

Derleme Sunucusu Güvenliği

Derleme sunucusu kaynak kodlarına, imzalama anahtarlarına ve sırlara erişebilir. Saldırı yüzeyini en aza indirin: farklı projeler için izole aracılar kullanın, ana düğüme erişimi kısıtlayın, imzalı commit’ler kullanın ve bağımlılıkları güvenlik açıklarına karşı tarayın.

Sıkça Sorulan Sorular

Küçük bir ekip için hangi derleme sunucusu seçilmeli?

Küçük ekipler için bulut çözümleri en uygundur: GitHub Actions (ayda 2000 dakikaya kadar ücretsiz) veya mobil projeler için Bitrise. Yönetim gerektirmezler ve hızla kurulurlar.

Aynı derleme sunucusu iOS ve Android için kullanılabilir mi?

Evet, ancak iki tür aracı gerekir: iOS için macOS üzerinde ve Android için Linux/Windows üzerinde. CI sunucusu (Jenkins, GitLab) tek bir arayüzden her iki aracı türünü de yönetebilir.

Mobil derlemeler için derleme sunucusunun ne kadar RAM’e ihtiyacı var?

Android derlemeleri için — minimum 8 GB RAM, 16 GB önerilir. iOS için — 8 GB’dan başlayan. Boru hattı birden fazla paralel derleme çalıştırırsa, bellek doğrusal olarak ölçeklenir: N derleme x 8 GB.

Self-hosted derleme sunucusu neden buluttan daha iyidir?

Self-hosted sunucu, yapılandırma üzerinde tam kontrol sağlar, derleme dakika sınırı yoktur (yüksek hacimlerde kendini amorti eder) ve veri izolasyonunu garanti eder. Bulut çözümleri, küçük ve orta ölçekli ekipler için daha uygun maliyetlidir.

Proje Flutter kullanıyorsa derleme sunucusuna ihtiyacım var mı?

Evet, Flutter projeleri de farklı platformlar için derleme gerektirir. Codemagic, tek bir depodan Android, iOS, Web ve Desktop derlemelerini aynı anda destekleyen, Flutter için özel bir CI/CD’dir.

Özet

  • Build Server, derleme, test ve yapay ürün hazırlığını otomatikleştiren CI/CD altyapısının merkezi bir öğesidir.
  • Mimari, bir ana düğüm ve yük altında ölçeklenebilen bir derleme aracısı havuzu içerir.
  • Self-hosted çözümler (Jenkins, TeamCity), yüksek kontrol gereksinimleri olan büyük ekipler için uygundur.
  • Bulut hizmetleri (GitHub Actions, Bitrise, Codemagic), sunucu yönetimi olmadan hızlı başlangıç sunar.
  • iOS derlemeleri macOS gerektirir, bu da Android/Linux’a kıyasla altyapı maliyetlerini artırır.
  • Önbellekleme ve artımlı derlemeler, derleme sunucusu hızı için kritik öneme sahiptir.
  • Derleme sunucusu güvenliği önceliklidir: aracı izolasyonu, sır yönetimi, bağımlılık taraması.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun