İçindekiler
- Hızlı Karşılaştırma
- GitHub Actions: GitHub ile kesintisiz otomasyon
- GitLab CI/CD: Repo ve pipeline tek çatı altında
- Jenkins: Sınırsız esneklik ve devasa eklenti ekosistemi
- Drone: Hafif, konteyner-first pipeline'lar
- CircleCI: Hız ve paralel işlem odaklı
- Bitbucket Pipelines: Atlassian ekosistemiyle uyumlu
- Hangisini Seçmelisin?
- Sıkça Sorulan Sorular
Giriş:
Ücretsiz CI/CD araçları, küçük takımlar ve tek geliştiriciler için yazılım teslim süreçlerini otomatikleştirmenin en uygun maliyetli yoludur. Pipeline kurmak, testleri otomatik çalıştırmak, build ve deployment adımlarını standardize etmek için ücretli çözümlere hemen yatırım yapmak zorunda değilsin; piyasada hem bulut tabanlı hem self-hosted, güçlü ücretsiz seçenekler var.
Bu rehberde GitHub Actions, GitLab CI/CD, Jenkins, Drone, CircleCI ve Bitbucket Pipelines gibi en yaygın kullanılan ücretsiz CI/CD çözümlerini karşılaştırıyor, her birinin hangi işlere daha uygun olduğunu, sınırlamalarını ve küçük takım olarak hangi durumda hangisini seçmen gerektiğini açıklıyorum. Hedef okuyucu öğrenciler, serbest çalışanlar ve küçük işletmeler; tercihler pratik, düşük maliyetli ve bakımı mümkün çözümler üzerine kurulu.
Hızlı Karşılaştırma
| Program | Platform | En iyi olduğu iş | Ücret |
|---|---|---|---|
| GitHub Actions | Bulut (GitHub) + Self-hosted runner | GitHub ile sıkı entegrasyon, workflow otomasyonu | Ücretsiz planda sınırlamalar var |
| GitLab CI/CD | Bulut (GitLab.com) + Self-hosted | Tek yerden repo + pipeline yönetimi | Ücretsiz planda sınırlamalar var |
| Jenkins | Self-hosted (sunucu) | Tam esneklik, eklenti ekosistemi | Tamamen ücretsiz (self-hosted) |
| Drone | Self-hosted, container tabanlı | Hafif, konteyner-first pipeline'lar | Tamamen ücretsiz (self-hosted) |
| CircleCI | Bulut + Self-hosted runner | Hızlı container-based paralel işler | Ücretsiz planda sınırlamalar var |
| Bitbucket Pipelines | Bulut (Bitbucket) | Bitbucket ile doğrudan entegrasyon | Ücretsiz planda sınırlamalar var |
GitHub Actions: GitHub ile kesintisiz otomasyon
GitHub Actions, özellikle kodunu GitHub'da barındırıyorsan en pürüzsüz entegrasyonu sunuyor. YAML tabanlı workflow dosyalarıyla test, build, release ve even-driven otomasyonları doğrudan repo içinde tanımlayabiliyorsun; marketplace'te hazır action'lar sayesinde birçok popüler adım için eklenti yazmana gerek kalmıyor.
Bulut runner'larıyla hızlıca başlayabilir, istersen self-hosted runner kurarak kendi sunucunda build çalıştırabilirsin. Ücretsiz planda kullanım kotası, paralel iş sayısı ve dakikalar gibi sınırlamalar olabiliyor; küçük projeler için genellikle yeterli ama kurumsal ölçek veya yüksek paralellik gerekiyorsa plan yükseltme ihtiyacı doğabiliyor.
Artıları
- GitHub ile doğal entegrasyon, PR/issue tetiklemeleri kolay
- Geniş marketplace ve hazır action ekosistemi
- Hem bulut hem self-hosted runner desteği
Eksileri
- Ücretsiz kotada dakikalar/paralel job sınırlamaları var
- Çok karmaşık kurulumlarda YAML dosyaları yönetimi zorlaşabilir
Kimler için? Kodlarını GitHub'da tutuyorsan, hızlı kurulum ve güçlü entegrasyon için ideal.
GitLab CI/CD: Repo ve pipeline tek çatı altında
GitLab CI/CD, GitLab'ın sunduğu entegre CI/CD çözümü; repository, issue takip, container registry ve pipeline'lar aynı platformda yer aldığı için yönetim tek konsolda gerçekleşiyor. .gitlab-ci.yml ile pipeline tanımlamak basit ve esnek; GitLab Runner'lar sayesinde hem paylaşılan bulut runner'ları hem de kendi altyapında çalışan runner'lar kullanabiliyorsun.
GitLab, açık kaynak sürümüyle self-hosted kurulumlara izin veriyor; bu sayede tamamen kontrol sende kalıyor. GitLab.com üzerinde ücretsiz planlar mevcut fakat dakikalar, saklama ve paralel job gibi sınırlamalar olabileceğini göz önünde bulundurmalısın.
Artıları
- Repo, issue ve pipeline yönetimi tek ortamda
- Self-hosted ve bulut runner seçenekleri
- Container registry ve paket yönetimi entegrasyonu
Eksileri
- Ücretsiz hesabın kaynak kotaları sınırlı olabilir
- Büyük ve kompleks pipeline'larda kaynak yönetimi dikkat ister
Kimler için? Tüm geliştirme yaşam döngüsünü tek platformda tutmak isteyen ekipler için uygundur.
Jenkins: Sınırsız esneklik ve devasa eklenti ekosistemi
Jenkins, yıllardır CI/CD denilince akla gelen self-hosted klasik çözümlerden. Açık kaynak olması ve çok zengin eklenti (plugin) havuzu sayesinde neredeyse her senaryoya uyacak şekilde özelleştirilebiliyor. Pipeline'larını deklaratif veya scripted Jenkinsfile ile tanımlayabilir, kendi sunucunda veya konteyner içinde çalıştırabilirsin.
Dezavantajı ise bakım maliyeti; Jenkins'in kurulumu ve eklenti yönetimi yeni başlayanlar için karmaşık olabilir. Ayrıca UI ve modern iş akışı ergonomisi bazı daha yeni araçlara göre daha ham görünebilir. Ancak tamamen kontrol sende olsun, kaynaklar ve otomasyon gereksinimi yüksek olsun dersen Jenkins en güçlü ücretsiz seçenektir.
Artıları
- Tamamen ücretsiz ve self-hosted, sınırsız özelleştirme
- Çok büyük eklenti ekosistemi
- Hem eski hem yeni tip pipeline ihtiyaçlarını karşılayabilir
Eksileri
- Kurulum, güncelleme ve bakım zahmetli olabilir
- Yeni başlayanlar için öğrenme eğrisi dik olabilir
Kimler için? Kendi sunucusunda tam kontrol ve özelleştirme isteyen teknik ekipler için.
Drone: Hafif, konteyner-first pipeline'lar
Drone, container tabanlı, minimalist bir CI/CD çözümü. Pipeline adımları Docker konteynerleri olarak çalıştırıldığı için ortam tutarlılığı sağlanır ve izolasyon güçlüdür. Drone'un açık kaynak versiyonu self-hosted kullanım için uygundur; yapılandırma YAML dosyalarıyla pipeline'ı tanımlarsın.
Drone kurulumu ve temel kullanımı genelde diğer self-hosted çözümlere göre daha hafiftir; küçük ekiplerin container tabanlı işler için tercih etmesi yaygındır. Eklenti ekosistemi Jenkins kadar geniş değil, fakat modern konteyner iş akışlarıyla uyumlu projectlerde avantaj sağlar.
Artıları
- Konteyner tabanlı, tutarlı ve izole pipeline'lar
- Hafif ve performans odaklı mimari
- Açık kaynak ve self-hosted kullanım
Eksileri
- Eklenti ve topluluk desteği Jenkins kadar geniş değil
- Kompleks entegrasyonlarda ek iş gerekebilir
Kimler için? Konteyner-first pipeline'lar ve düşük işletme yükü isteyen takımlar için.
CircleCI: Hız ve paralel işlem odaklı
CircleCI, özellikle hızlı container tabanlı build'ler ve paralel job yönetimiyle öne çıkar. Bulut hizmeti olarak kullanıldığında saniyeler içinde pipeline başlatma, önbellekleme ve paralel adımlarla derleme süresini kısaltma gibi avantajlar sunuyor. Ayrıca self-hosted runner opsiyonu da var.
Ücretsiz planda belirli kredi/dakika sınırları ve paralel işlem kısıtları olabilir; küçük projeler için genelde yeterli, ancak build süreleri veya paralel ihtiyaç artarsa yükseltme gerekebilir. Hazır orb'lar ve yapı bloklarıyla popüler diller için hızlı başlangıç şablonları bulunuyor.
Artıları
- Hızlı container tabanlı build ve paralel job desteği
- Önceden yapılandırılmış şablonlar ve kolay cache yönetimi
- Bulut + self-hosted runner seçenekleri
Eksileri
- Ücretsiz kotada paralel job ve dakika sınırlamaları var
- Büyük projelerde maliyet artışı olabilir
Kimler için? Kısa build süreleri ve paralel test ihtiyaçları olan ekipler için uygun.
Bitbucket Pipelines: Atlassian ekosistemiyle uyumlu
Bitbucket Pipelines, kodunu Bitbucket'ta barındıran ekipler için doğrudan entegre CI/CD çözümüdür. YAML tabanlı pipeline tanımlarıyla hızlıca CI süreçleri kurabilir, Atlassian ürünleriyle (Jira, Confluence) entegrasyon avantajı elde edebilirsin. Cloud runner'ları kolay kullanım sağlarken, self-hosted seçenekler de mevcuttur.
Bitbucket'ın ücretsiz planı küçük ekipler için uygundur fakat build dakikaları ve paralel yapı sınırları olabilir. Eğer Atlassian araç zincirini kullanıyorsan bu çözüm yönetimi kolaylaştırır; aksi halde diğer araçlar daha esnek alternatif sunabilir.
Artıları
- Bitbucket ve Atlassian ürünleriyle sıkı entegrasyon
- Hızlı YAML ile pipeline tanımlama
- Bulut ve self-hosted runner seçenekleri
Eksileri
- Ücretsiz pakette kullanım kotaları söz konusu
- Atlassian dışı ekosistemlerde avantajları sınırlı olabilir
Kimler için? Kodunu Bitbucket'ta tutan ve Atlassian araç zinciriyle çalışan ekipler için uygundur.
Hangisini Seçmelisin?
- Kodun GitHub'da ise: GitHub Actions
- Tüm geliştirme yaşam döngüsünü tek platformda istiyorsan: GitLab CI/CD
- Tam kontrol ve sınırsız özelleştirme arıyorsan: Jenkins
- Konteyner-first, hafif ve izolasyon istiyorsan: Drone
- Paralel testler ve hızlı build süreleri önemliyse: CircleCI
- Bitbucket kullanıyorsan ve Jira ile entegrasyon istiyorsan: Bitbucket Pipelines
Sıkça Sorulan Sorular
Küçük bir proje için hangi CI/CD aracı en hızlı kurulandır?
GitHub Actions veya GitLab CI/CD, eğer kodun zaten bu platformlarda barınıyorsa, en hızlı entegrasyon ve kurulum deneyimini sunar; repo içinde birkaç YAML satırıyla pipeline'ı çalıştırmaya başlayabilirsin.
Self-hosted mi yoksa bulut mu tercih etmeliyim?
Self-hosted daha fazla kontrol ve genelde sonsuz ücretsiz kaynak sunar fakat bakım ve güvenlik sorumlulukları getirir; bulut ise düşük işletme maliyeti ve kolay yönetim sağlar ama ücretsiz planda kotalar olabilir. Küçük takımlar genelde önce bulutla başlar, ihtiyaç büyüdükçe self-hosted çözüme geçer.
Ücretsiz planların en yaygın sınırlamaları neler?
Çoğunlukla ücretsiz planlarda build dakikası/kredisi, paralel job sayısı, saklama alanı ve bazı entegrasyonlarda kısıtlama olur. Hangi aracın hangi kotayı sunduğu zaman içinde değişebileceğinden net rakamlar yerine "ücretsiz planda sınırlamalar var" ifadesine dikkat et.
Pipeline güvenliğini nasıl sağlarım?
Sırları (secrets) platformun sunduğu güvenli değişken depolarında sakla, self-hosted runner'ları izole et ve erişimleri en düşük ayrıcalık ilkesiyle yönet. Ayrıca pipeline adımlarında dışardan gelen girdileri temizlemeyi unutma.
Birden fazla aracı birlikte kullanabilir miyim?
Evet. Örneğin kod GitHub'da olabilir ama Jenkins veya Drone üzerinde self-hosted runner ile derleme yapabilirsin; ya da testleri CircleCI'de, deploy'u başka bir araca bırakmak gibi hibrit yaklaşımlar gayet yaygındır.




