Sürekli entegrasyon ve sürekli dağıtım, kod kalitesini iyileştirmek ve hızlı teslimat sağlamak için tasarlanmış yazılım geliştirmeye yönelik iki yaklaşımdır. Yeni yazılım özelliklerinin ve düzeltmelerin hızlı bir şekilde teslim edilmesini sağlamak için genellikle birlikte (CI / CD) dağıtılırlar.
İyi ayarlanmış bir CI / CD, kuruluşunuzun müşterilerinize hızlı bir şekilde kaliteli kodu sunmasına yardımcı olacaktır.
Sürekli Entegrasyon (Continuous Integration)
Özcan Acar hocamın makalesinden alıntıdır. Sürekli entegrasyon, kod üzerinde yapılan her değişikliğin ardından, tüm sistemin çalışır durumda olduğunu, yapılan değişikliğin sistemin bazı bölümlerinde kırılmalara yol açmadığını tespit etmek için kullanılan yöntemdir. Kırılmaları tespit edebilmek için birim testlere ihtiyaç duyulmaktadır. Bu testler, yapılan değişikliğin neticesi olarak yeni bir yapı (build) hazırlandıktan sonra otomatik olarak çalıştırılır. Yapılan değişiklik yeni yapının bir parçası olduğu için, testlerde oluşan hatalar, yapılan değişikliğin sistemi kırdığı anlamına gelmektedir. Bu durumdan tüm programcılar haberdar edilerek, hatanın bir an önce giderilmesi ve testlerin her zaman olumlu sonuç vermesi sağlanır. Sürekli entegrasyon ile programcılar tarafından kod üzerinde yapılan çalışmalar neticesinde her zaman çalışır bir sürümün oluşması sağlanmış olur.
Sürekli Teslimat / Dağıtım (Continuous Delivery / Deployment)
Sürekli Teslimat Sürekli Entegrasyonun doğal bir uzantısıdır.
Sürekli Teslimat, başarılı olan bir yapıyı (build) bir ortama atmanın otomatik bir yoludur. Burada teslimat ile dağıtım arasında küçük bir nüans vardır. Teslimat manual olarak, dağıtım ise otomatik olarak yapılmasıdır. Sürekli teslimat düzgün bir şekilde uygulandığında, müşteriler her zaman standartlaştırılmış bir test sürecinden geçmiş hazır yapıya sahip olacaklardır.
Netflix, tamamen otomatik bir sürekli dağıtım sistemine sahip olduğu için bilinir. Dağıtımlar otomatik olduğundan ve herhangi bir zamanda gerçekleşebileceğinden, uygulamanız, yeni bir sürüm dağıtıldığında geçici kesintilerden etkilenmeyecek şekilde tasarlanmalıdır.
1 yorum yapıldı “CI (Continuous integration) ve CD (Continuous Delivery/Deployment)”