CI/CD Nedir?

İngilizce: CI/CD (Continuous Integration / Continuous Delivery)

CI/CD, kod değişikliklerini otomatik derleme, test ve dağıtım hatlarından geçirerek sürümü tekrarlanabilir hale getiren DevOps pratiğidir.

CI/CD Nedir?

CI/CD, yazılım değişikliklerinin manuel adımlara bağlı kalmadan derlenmesi, test edilmesi ve hedef ortama aktarılması için kurulan otomasyon pratiğidir. CI, continuous integration yani sürekli entegrasyon; CD ise continuous delivery veya continuous deployment anlamına gelir.

Sürekli entegrasyonda geliştiricinin gönderdiği her değişiklik ortak kod tabanına alınır ve otomatik kontrollerden geçer. Sürekli teslimde canlıya çıkış için hazır paket üretilir; sürekli dağıtımda ise bu paket belirlenen kurallar sağlanınca otomatik yayınlanır.

Tipik Pipeline Aşamaları

  • Kodun Git deposundan alınması
  • Bağımlılıkların kurulması
  • Lint, unit test ve entegrasyon testlerinin çalışması
  • Uygulama veya Docker imajının build edilmesi
  • Güvenlik ve secret taramalarının yapılması
  • Staging ya da production ortamına dağıtım
  • Hata durumunda rollback veya yeniden yayın

İş Dünyasında Kullanımı

CI/CD, özellikle sık güncelleme alan web uygulamaları, SaaS ürünleri, mobil backend’ler ve API servislerinde sürüm kalitesini ölçülebilir hale getirir. Amaç yalnızca hızlı dağıtım değildir; hangi commit’in hangi testlerden geçtiğini, hangi ortama ne zaman çıktığını ve hata anında nasıl geri dönüleceğini bilmektir.

GitHub Actions, GitLab CI, CircleCI ve Jenkins bu süreçleri kurmak için kullanılan yaygın araçlardır. CI/CD, daha geniş DevOps kültürünün teknik ayağıdır; ekip anlaşmaları, branch stratejisi ve izleme düzeni olmadan tek başına yeterli olmaz.

Barlas Dijital’de CI/CD çalışmaları genellikle otomasyon ve bakım süreçleriyle birlikte tasarlanır.

Ansible

Ansible, YAML playbook'larla sunucu kurulumu, konfigürasyon yönetimi ve uygulama dağıtımını agent kurmadan otomatikleştiren araçtır.

API Sözleşme Testi

API sözleşme testi, tüketici beklentileriyle sağlayıcı yanıtlarını OpenAPI veya Pact gibi sözleşmeler üzerinden karşılaştırır.

Blue-Green Deployment

Blue-green deployment, aynı uygulamanın iki üretim ortamı arasında trafik yönlendirerek kesintisiz ve hızlı geri alınabilir yayın yapma tekniğidir.

CI Pipeline

CI pipeline, kod değişikliklerini otomatik derleme, test ve analiz adımlarından geçirerek ana dala güvenli taşımayı sağlar.

OTA Güncelleme (Code Push)

Code push, mobil uygulamanın JavaScript veya varlık güncellemelerini mağaza yayını beklemeden OTA olarak göndermesidir.

DevOps

DevOps, yazılım geliştirme ve operasyon ekiplerini ortak süreç, otomasyon ve ölçümlerle daha güvenilir teslimata hizalayan yaklaşımdır.

Docker

Docker, uygulama kodunu ve bağımlılıklarını konteyner imajlarında paketleyerek geliştirme, test ve üretimde aynı şekilde çalıştırır.

Ortam Yönetimi

Ortam yönetimi, geliştirme, test, staging ve production ortamlarının ayar, veri ve sürümlerini kontrollü biçimde ayırır.

Feature Flag

Feature flag, bir özelliğin kimlere ve ne zaman açılacağını kodu yeniden dağıtmadan kontrol eden koşullu yayınlama yöntemidir.

GitHub Actions

GitHub Actions, depo olaylarıyla tetiklenen YAML iş akışları üzerinden test, build, güvenlik taraması ve dağıtım otomasyonu çalıştırır.