GitLab CI/CD Nedir ve Nasıl Kullanılır?
GitLab CI/CD, yazılım geliştirme süreçlerini otomatikleştirmek için GitLab tarafından sağlanan sürekli entegrasyon (CI) ve sürekli teslimat (CD) sistemidir. Kod değişikliklerinin test edilmesi, derlenmesi ve dağıtılması gibi işlemleri otomatik hale getirerek geliştirme sürecini hızlandırır ve hataları minimize eder. GitLab CI/CD, .gitlab-ci.yml adlı bir yapılandırma dosyası ile projeye entegre edilir ve belirlenen aşamalara göre pipeline’lar oluşturularak süreç yönetilir. Esnek yapısı ve geniş entegrasyon seçenekleri sayesinde hem küçük ekipler hem de büyük ölçekli projeler için ideal bir çözümdür.
GitLab CI/CD Nedir?
GitLab CI/CD, yazılım projelerinin geliştirme, test ve dağıtım süreçlerini otomatikleştirmek için kullanılan entegre bir sistemdir. Bu özellik yazılım yaşam döngüsünde aşağıdaki avantajları sağlar:
- Hızlı Geri Bildirim: Hatalar hızlıca tespit edilir.
- Otomasyon: İnsan hatasını minimuma indirir.
- Kolay Dağıtım: Ürünleri hızlı ve güvenilir bir şekilde dağıtır.
GitLab CI/CD’nin Kullanım Alanları
GitLab CI/CD, modern yazılım geliştirme süreçlerinde geniş bir kullanım alanına sahiptir:
- Kod Kalitesini Artırma: Otomatik testler ile hataları erken tespit eder.
- Hızlı Dağıtım: Yazılımı kullanıcıya daha hızlı ulaştırır.
- Güvenli Dağıtım: Manuel onay mekanizmaları ile riskleri azaltır.
- Otomasyon: Tekrarlayan görevleri otomatize ederek ekiplerin iş yükünü azaltır.
GitLab CI/CD’nin Avantajları
- Kolay Entegrasyon: GitLab projeleriyle doğrudan uyumludur.
- Yüksek Esneklik: YAML tabanlı dosyalar ile ihtiyaçlara göre özelleştirilebilir.
- Dahili İşlevsellik: Ekstra araç kurulumuna gerek kalmaz.
- Kapsamlı Destek: Docker, Kubernetes gibi teknolojilerle sorunsuz çalışır.
- Detaylı İzleme: Pipeline süreçlerini görselleştirerek kolay takip sağlar.
GitLab CI/CD Nasıl Çalışır?
Temel Bileşenler
- Pipeline: Kodun derlenmesi, test edilmesi ve dağıtılması için kullanılan adımların bütünüdür.
- Jobs: Pipeline içindeki her bir işlem. Örneğin, “kod analizi” veya “test çalıştır.”
- Stages: Jobs, belirli aşamalarda (örneğin build, test, deploy) gruplanır.
- Runners: GitLab Runner, işleri çalıştıran bir servistir ve GitLab’ın kendi altyapısında veya kendi sunucularınızda çalıştırılabilir.
GitLab Fiyatlandırma
GitLab CI/CD, GitLab’in sunduğu bir özellik ve kullanım duruma göre ücretsiz veya ücretli olabilir.
Ücretsiz Kullanım (Free Plan)
- Self-Managed (Kendi Sunucun): Eğer GitLab’ı kendi sunucunda çalıştırıyorsan, GitLab CI/CD’yi tamamen ücretsiz kullanabilirsin. Runner’ları kendin yöneterek sınırsız kullanım sağlayabilirsin.
- GitLab.com (Bulut Servisi): Ücretsiz Free Plan kullanıcıları aylık 400 dakika CI/CD çalıştırabilir. (Bu limit GitLab Shared Runner’lar için geçerli.)
Ücretli Planlar
- Daha fazla CI/CD dakikası veya özel özellikler için Premium veya Ultimate planlarına geçiş yapabilirsin.
- Bulut (SaaS) Kullanıcıları ekstra CI/CD dakikaları satın alabilir.
- Self-Managed kullanıcıları ise lisans yükselterek ek özelliklere erişebilir.
GitLab CI/CD’yi Kurulum Gerektirmeden Kullanma
1. .gitlab-ci.yml Dosyası Oluşturma
Projenizin kök dizininde .gitlab-ci.yml dosyasını oluşturun. Bu dosya, pipeline’ınızı yapılandırır.
Örnek Yapılandırma:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo “Building the application…”
- make build
test_job:
stage: test
script:
- echo “Running tests…”
- make test
deploy_job:
stage: deploy
script:
- echo “Deploying the application…”
- make deploy
2. GitLab Runner Kullanımı
- GitLab SaaS kullanıyorsanız, GitLab’ın kendi barındırdığı Runners üzerinden işlem yapabilirsiniz.
- Kendi sunucunuzda çalıştırmak için GitLab Runner kurabilirsiniz.
3. Pipeline Başlatma
- .gitlab-ci.yml dosyasını ekledikten sonra kodunuzu commit ve push yapın.
- GitLab, otomatik olarak bir pipeline başlatır.
4. Pipeline Sonuçlarını Takip Etme
- CI/CD > Pipelines sekmesinden pipeline durumunu görüntüleyin.
- Job detaylarına girerek hata mesajlarını inceleyebilirsiniz.
Kullanım Örnekleri
Örnek 1: Node.js Projesi İçin CI/CD
stages:
- test
test_job:
stage: test
image: node:14
script:
- npm install
- npm test
Örnek 2: Docker İmajı Oluşturma ve Dağıtım
stages:
- build
- deploy
build_job:
stage: build
script:
- docker build -t myapp:latest .
deploy_job:
stage: deploy
script:
- docker push myapp:latest
Örnek 3: Python Testleri Çalıştırma
stages:
- test
test_job:
stage: test
image: python:3.9
script:
- pip install -r requirements.txt
- pytest
GitLab CI/CD Kullanırken Dikkat Edilmesi Gerekenler
- YAML Hataları: .gitlab-ci.yml dosyasındaki format hataları pipeline’ı başlatmaz.
- Güvenlik: API anahtarlarını GitLab’ın CI/CD Variables özelliği ile saklayın.
- Pipeline Optimizasyonu: Paralel job’lar ve cache kullanımı ile süreyi azaltın.
- Runner Yönetimi: Büyük projelerde özel Runner’lar kullanarak kapasiteyi artırın.
GitLab CI/CD, yazılım geliştirme süreçlerini otomatize ederek daha hızlı ve güvenilir bir yazılım yaşam döngüsü sağlar. Kolay yapılandırılabilir olması, projelerinizin verimli bir şekilde yönetilmesine olanak tanır.
YAML dosyanızı yapılandırarak hemen bir pipeline başlatabilir ve CI/CD süreçlerini etkin şekilde kullanabilirsiniz.
Bir sonraki makalede farklı bir konuyu ele alacağız. Sorularınız veya önerileriniz varsa yorum yapmayı unutmayın! 😊