Forum DevOps & CI/CD GitLab CI/CD Pipeline ile Otomatik Deployment Süre...
DevOps & CI/CD

GitLab CI/CD Pipeline ile Otomatik Deployment Süreçleri

Furkan Demir
4 ay önce • 186 görüntülenme

Yazılım Teslimatını Otomatize Etmek: Sürekli Entegrasyon ve Dağıtım

Kodunuzu FTP üzerinden sunucuya sürükleyip bırakma devri çoktan kapandı. Modern yazılım geliştirme süreçlerinde, kod repoya pushlandığı anda testlerin otomatik çalışması, derlenmesi ve canlı sunucuya aktarılması standart bir DevOps pratiğidir.

GitLab CI/CD Mimarisinin Temelleri

GitLab, .gitlab-ci.yml adında projenin ana dizininde bulunan bir dosya ile tüm süreci yönetir. Bir pipeline (boru hattı) genellikle 3 ana aşamadan (stage) oluşur:

Build (Derleme): Uygulamanın bağımlılıklarının (npm install, composer install vs.) indirilip projenin çalışabilir hale (Örn: Docker İmajı) getirilmesi.

Test: Unit testlerin, entegrasyon testlerinin ve SonarQube gibi araçlarla statik kod kalitesi analizlerinin çalıştırılması. Kod %80 test coverage (kapsama) altında kalırsa pipeline otomatik olarak durdurulur ve hatalı kodun canlıya çıkması engellenir.

Deploy (Dağıtım): Testleri geçen kodun SSH üzerinden staging (test) veya production (canlı) sunucusuna gönderilerek servislerin yeniden başlatılması.

GitLab Runner Yapılandırması

Bu işlemleri GitLab'ın kendi ortak sunucularında yapmak (Shared Runners) kotalara takılabilir veya güvenlik ihlali yaratabilir. Kendi sunucunuza bir gitlab-runner kurup, tag mekanizmasıyla spesifik projelerinizi kendi donanımınız üzerinde derlemek en sağlıklı yöntemdir.

Siz CI/CD süreçlerinde GitHub Actions, Jenkins veya GitLab arasından hangisini, neden tercih ediyorsunuz?

Beğen 0
Bilgi İşlem Uzmanı 2

GitLab CI/CD süreçlerine SonarQube statik kod analizini de eklerseniz, güvenlik açığı olan kodun canlıya çıkmasını otomatik engelleyebilirsiniz.

Beğen 2

Cevap yazmak için giriş yapmalısınız.

Giriş Yap