sürekli-entegrasyon

Sürekli Entegrasyon (CI), geliştiricilerin kod değişikliklerini merkezi bir depoya sık sık birleştirdiği, ardından otomatik derlemelerin ve testlerin çalıştığı bir yazılım geliştirme uygulamasıdır.

Sürekli Entegrasyon (CI), geliştiricilerin kod değişikliklerini düzenli olarak merkezi bir depoya, genellikle günde birden fazla kez birleştirdiği bir yazılım geliştirme uygulamasıdır. Her birleştirme daha sonra otomatik bir derleme ve otomatik bir test paketi tarafından doğrulanır. CI'nin temel amacı, entegrasyon hatalarını mümkün olduğunca çabuk tespit etmek, kod çakışmalarını önlemek ve kod tabanının tutarlı bir şekilde çalışan durumda kalmasını sağlamaktır. Bir geliştirici kod gönderdiğinde, Jenkins, GitLab CI veya GitHub Actions gibi otomatik bir sistem değişikliği algılar, en son kodu çeker, derler (build eder) ve bir dizi test (örneğin, birim testleri, temel entegrasyon testleri) çalıştırır. Derleme veya herhangi bir test başarısız olursa, ekibe derhal bildirim yapılır ve genellikle hatalı kod devam etmeden önce düzeltilir. Bu uygulama, kodun nadiren birleştirildiği geleneksel geliştirme döngülerinde sıklıkla ortaya çıkan entegrasyon problemlerini önemli ölçüde azaltır. Sorunları erken yakalayarak, CI daha yüksek kaliteli koda, daha hızlı geliştirme döngülerine ve Sürekli Teslimat ve Sürekli Dağıtımın temellerini oluşturan gelişmiş ekip işbirliğine yol açar.

        graph LR
  Center["sürekli-entegrasyon"]:::main
  Pre_logic["logic"]:::pre --> Center
  click Pre_logic "/terms/logic"
  Rel_cicd["cicd"]:::related -.-> Center
  click Rel_cicd "/terms/cicd"
  Rel_continuous_delivery["continuous-delivery"]:::related -.-> Center
  click Rel_continuous_delivery "/terms/continuous-delivery"
  Rel_cicd_pipeline["cicd-pipeline"]:::related -.-> Center
  click Rel_cicd_pipeline "/terms/cicd-pipeline"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Bilgi testi

1 / 3

🧒 5 yaşındaki gibi açıkla

Sınıftaki herkesin büyük bir resmin küçük bir parçasını yapması ve tüm resmin iyi görünmesi için sürekli birbirleriyle kontrol etmesi gibidir.

🤓 Expert Deep Dive

Sürekli Entegrasyon, modern yazılım geliştirmede, özellikle Agile ve DevOps metodolojileri içinde temel bir uygulamadır. Entegrasyon noktasını seyrek, büyük ölçekli birleştirmelerden sık, küçük ölçekli entegrasyonlara doğru temelden değiştirir. Temel mekanikler bir sürüm kontrol sistemi (örneğin, Git), otomatik bir derleme sistemi ve otomatik bir test çerçevesi içerir. Derleme sistemi kaynak kodunu çalıştırılabilir artefaktlara derlerken, test paketi kodun işlevselliğini ve doğruluğunu doğrular. Entegrasyonun sıklığı anahtardır; günde birden fazla kez entegre etmek, entegrasyonlar arasındaki değişikliklerin kapsamını en aza indirir, bu da derleme veya test hatalarının kaynağını belirlemeyi kolaylaştırır. Mimari olarak, CI işlem hatları genellikle özel CI sunucuları veya bulut tabanlı hizmetler kullanılarak uygulanır. CI'nin etkinliği, derleme ve test paketinin hızı ve güvenilirliği ile doğru orantılıdır. Yavaş veya kararsız testler uygulamayı baltalar. Ödünleşimler arasında sağlam otomasyonun kurulmasındaki başlangıç yatırımı ve geliştirme ekibinin sık sık entegre olma disiplini yer alır. Bunu yapmamak "entegrasyon cehennemine" yol açabilir.

🔗 İlgili terimler

Ön koşullar:

📚 Kaynaklar