- Kişisel proje yönetimi ve CI/CD entegrasyonu odağında GitLab’ı uzun süredir kullanma deneyimi anlatılıyor
- İlk dönemde ücretsiz özel depo sunması, GitHub’a kıyasla başlıca avantajdı; sonrasında da iş akışı tamamen oturdu
- En sık kullanılan özellik Container Registry; ayrı bir Docker Hub hesabı veya token yönetimi olmadan imaj saklanabiliyor
- GitLab CI’ın yapılandırma dosyası tabanlı pipeline yapısı, ücretsiz shared runner’ları ve zengin dokümantasyonu başlıca güçlü yönler arasında gösteriliyor
- Buna karşılık web arayüzünün yavaşlığı ve aşırı özellik yükü dezavantaj olarak belirtiliyor; GitHub ve GitLab’ı amaca göre birlikte kullanmak en verimli yaklaşım olarak öne çıkıyor
GitLab kullanma geçmişi
- GitHub’ın özel depolar için ücret aldığı dönemde, GitLab ücretsiz özel depo sunduğu için kullanılmaya başlandı
- Çeşitli deneysel projeler herkese açılmadan yönetilebiliyordu
- Daha sonra GitHub ücretsiz politikayı devreye alsa da, CI pipeline’ları, Docker imajları ve dağıtım script’leri zaten GitLab merkezli kurulduğu için geçiş ihtiyacı ortadan kalktı
Docker Registry özelliği
- Tüm GitLab projelerine Container Registry varsayılan olarak dahil
- Yerelde veya CI içinde imaj oluşturup push etmek, ardından gereken yerde pull edip kullanmak gibi basit bir akış sunuyor
- Ayrı bir Docker Hub hesabı ya da token yönetimi gerekmiyor, pull limiti kaygısı da yok
- Kişisel projeler için fazlasıyla yeterli ve 10 GB depolama sınırı da pratikte sorun yaratmıyor
- Eski tag’leri temizlemek ve layer paylaşımı sayesinde alan verimliliği korunuyor
CI/CD ortamı
- GitLab CI, en başından beri ‘yapılandırma dosyası tabanlı CI’ fikrini hayata geçirdi
- Yalnızca
.gitlab-ci.yml dosyasını eklemek pipeline’ın otomatik çalışması için yeterli
- Yapılandırma sürüm kontrolüne girdiği için geçmiş pipeline durumları izlenebiliyor
- Varsayılan pipeline genellikle imaj oluşturma, push etme ve isteğe bağlı dağıtım adımlarından oluşuyor
- Dağıtım aşaması manuel tetiklemeyle kontrol edilebiliyor
- Shared runner’lar ücretsiz ama yavaş; gerekirse self-hosted runner bir VPS üzerine kolayca kurulabiliyor
- CI/CD dokümantasyonu oldukça kapsamlı; kalıplar bir kez öğrenildiğinde mevcut yapılandırmaları kopyalayıp yeniden kullanarak verimli yönetim sağlanabiliyor
Rahatsız eden noktalar
- Web arayüzü hızı yavaş; merge request, pipeline ve log geçişlerinde bekleme süresi oluşuyor
- Son dönemde biraz iyileşmiş görünse de hâlâ GitHub’dan daha yavaş
- Aşırı özellik yükü sorunu var
- Issue tracking, wiki, package registry, security scanning gibi pek çok özellik bulunsa da bunların fiilen kullanım oranı yaklaşık %10 düzeyinde
- Yine de ihtiyaç olduğunda zaten gömülü gelen özelliklerden yararlanabilmek potansiyel bir avantaj sağlıyor
Maliyet ve iş akışı
- Yaklaşık 12 kişisel proje ücretsiz olarak çalıştırılıyor; aktif projelerden durdurulmuş denemelere kadar hepsi buna dahil
- GitLab özel çalışma alanı, GitHub ise açık proje paylaşım alanı olarak ayrıştırılıyor
- GitHub işbirliği ve görünürlük için, GitLab ise deneyler ve otomasyon yönetimi için daha uygun
- İki platformu birlikte kullanma yapısı, iş akışında denge ve verimliliği koruyan bir yöntem olarak işliyor
3 yorum
GitLab'in CI/CD'sinin iyi olduğuna dair bir değerlendirme var, değil mi?
Ama ben, ücretsiz hesap kısıtlamaları yüzünden Korece desteği olsa bile elim yine GitHub'a gidiyor.
Forgejo ve onun temeli olan Gitea da GitHub çakması gibi hissettirdiği için pek içim ısınmıyor.
Biz Gitea kullanıyoruz; benzer arayüzü sayesinde öğrenme eğrisi düşük olduğu için tercih ettik.
GitLab için ise özelliklerin fazla olması nedeniyle zor ve ağır olduğuna dair çok geri bildirim aldık..
Hacker News görüşleri
Müşteri destek temsilcileri ortadan kayboldu ve tüm talepler satış ekibi üzerinden gitmek zorunda; üstelik özelliklerin çoğu pahalı Ultimate planına kilitlenmiş durumda
“AI” dışındaki özellikler ise yıllardır aynı sorunları yaşasa da kaderine terk edilmiş gibi
Bu yüzden artık her satış e-postası geldiğinde “acaba eski hızlı geliştirme temposunu ne zaman tekrar göreceğiz?” diye oyun oynuyorum
2015~2020 civarında keyifle kullandım ama tüm özellikler pürüzlüydü ve odak, kalite yerine özellik kontrol listesini doldurmaktı
Küçük bir ekibin büyük şirketlerle rekabet etmesi için belki de kaçınılmaz bir tercihti
10 yıl geçti, hâlâ öyle; Gitea ya da Forgejo çok daha hızlı ve Go 1.26 çıktıktan sonra daha da iyi olacaklar
Özellikle issue arama hızı o kadar kötü ki bir daha kullanmayı düşünmüyorum
2018’de Bitbucket ve Confluence’tan GitLab Cloud’a geçtik; Atlassian ürünleri çok daha yavaş ve karmaşıktı
GitLab hafif ve hızlı hissettiriyordu, bugün de çoğunlukla iyi çalışıyor
Yakın zamanda Jira Cloud kullandım; çok daha yavaş ve kullanışsızdı
Gerçekten şaşırtıcı bir durum
Sunucunun güç tüketimi %10 azaldı ve GitLab’da gereksiz özellik çok olduğu için arayüz bunaltıcı geliyordu
Forgejo daha sade ve proje bazında özellikleri gizleyebiliyorsunuz
Ama otomatik güncelleme yok, olgunluk seviyesi daha düşük ve bazı özellikler düzgün çalışmıyor
Bunun bir Jekyll teması mı yoksa özel yapım mı olduğunu bilmiyorum ama içinde gezinmek başlı başına keyifliydi
İhtiyacım olan CI, issue takibi gibi şeyler duruyor ama arayüz anında yükleniyor ve gereksiz özellik yok
GitLab CI sözdizimini daha çok seviyordum ama Forgejo’nun API’si daha az olgun
Yine de veritabanına doğrudan erişilebildiği için özel script’lerle çözülebiliyor
Bir Kubernetes kümesi ayağa kaldırıp Forgejo ile Argo’yu bağlayarak test ediyorum
Microsoft yerine Codeberg kaynaklarını kullanmak doğru mu emin değilim
Sanırım CI tarafını Woodpecker adlı proje yürütüyor; GitLab CI ile karşılaştırması nasıl olur merak ediyorum
GitLab, Gerrit kadar olmasa da stacked MR destekliyor ve force-push sonrasında bile yorumları görebiliyorsunuz
GitHub usulü büyük PR merkezli kültürün üretkenliğe ve inceleme kültürüne zarar verdiğini düşünüyorum
LDAP eşitleme ayarı gibi yönetimsel işlevlerde iyileştirme payı var ama CI/CD sözdizimi genel olarak kullanışlı
2021~2024 arasında her gün kullandım; hatta bug günlüğünü ayrı tutacak kadar
İlgili deneyimlerimi önceki yorumda paylaşmıştım
GitHub’ın basit issue takip sistemi kullanımı çok daha kolay
Proje yöneticileri GitLab’ı sevebilir ama kullanıcı açısından GitHub daha iyi geliyor
Şimdi GitHub kullanıyoruz; çok daha basit ve verimli
GitLab’dan gerçekten nefret ediyorum
Docker image’larında sadece katman başına sınır var; toplam boyut çok daha büyük olabiliyor
İlgili dokümanlar: Storage Usage Quotas, Container Registry Issue
70 GB’lık Interstellar REMUX’u yüklemeyi denemek isterdim
“Bir şey yapmaya çalış → hata al → ara → 3~8 yıllık resmî bug raporu bul” döngüsü sürekli tekrarlanıyor
Pek çok özellik %80/20 olgunluk seviyesinde kalmış ve MR görünümü o kadar yavaş ki insanı tüketiyor
Bununla ilgili önceki yorumda yazmıştım
Maven, NPM ve Python paket registry’lerini CI pipeline’ına entegre edebilmek hoşuma gidiyor
Ama özellikler fazla ve her ekran iki kat daha yavaş
Sonrasında Azure DevOps’a geçildi ama yavaş ve kalite kapıları da zayıf
Build sunucuları VM’e taşınınca IOPS kısıtları yüzünden build’ler yavaşladı
GitLab’a geri dönmek isterim; performans iyileştirmesine katkı sunmaya da hazırım