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.
İlgili Terimler
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 TestiAPI 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 DeploymentBlue-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 PipelineCI 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.
DevOpsDevOps, yazılım geliştirme ve operasyon ekiplerini ortak süreç, otomasyon ve ölçümlerle daha güvenilir teslimata hizalayan yaklaşımdır.
DockerDocker, 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önetimiOrtam yönetimi, geliştirme, test, staging ve production ortamlarının ayar, veri ve sürümlerini kontrollü biçimde ayırır.
Feature FlagFeature flag, bir özelliğin kimlere ve ne zaman açılacağını kodu yeniden dağıtmadan kontrol eden koşullu yayınlama yöntemidir.
GitHub ActionsGitHub Actions, depo olaylarıyla tetiklenen YAML iş akışları üzerinden test, build, güvenlik taraması ve dağıtım otomasyonu çalıştırır.