Sürekli tümleştirme ve sürekli geliştirme

Tamamlandı

Şirketinizin altyapısını değiştirmeden veya dağıtmadan önce, sürekli tümleştirme (CI) ve sürekli teslim veya dağıtım (CD) kavramlarını inceleyerek ne oluşturmayı planladığınızı anlayın. Bu ünitede CI/CD işlem hatları hakkında bilgi edinecek ve GitHub Actions ile CI ve CD'nin nasıl uygulanacağını öğreneceksiniz.

CI ve CD, yazılım geliştirme, test ve dağıtımın tüm aşamalarında sürekli otomasyon ve izleme sağlayan işletim uygulamalarıdır. Geliştirici ekipleri daha üretken olmak ve yeni kodu mevcut bir kod tabanıyla tümleştirirken ortaya çıkabilecek sorunları azaltmaya yardımcı olmak için CI ve CD kullanır.

Sürekli tümleştirme

CI/CD araçlarının geliştirilmesinden önce, tüm develop-test-deploy-test işlemi el ile gerçekleştirilir. Otomatikleştirilmiş test paketleri mevcuttu, ancak el ile veya uzman ekipler tarafından zamanlanmış zamanlarda çalıştırılması gerekiyordu.

Yazılım geliştiricilerinin karşılaştığı en önemli zorluklardan biri birleştirme günü oldu. Birleştirme günü, çoğu yazılım geliştirme ekibi aynı kod üzerinde çok az testle farklı kaynak denetimi dallarında çalıştığı için gerçekleşti. Birleştirme gününde, tüm kod değişiklikleri ana dal ile yeniden tümleştirildi. Sonuç olarak, ekip üyelerinin dalları ana dalda bir araya gelip kesiştikçe tümleştirme sorunlarını çözmeye bir gün ayırmak gerekiyordu.

Kritik bir CI ilkesi, tüm yeni değişiklikleri mümkün olduğunca sık ana dalda birleştirmektir. Değişikliklerin sürekli birleştirilmesi, birçok geliştirici değişikliklerini aynı anda birleştirdiğinde oluşan birleştirme gününü "tümleştirme cehennemi" önlemeye yardımcı olur.

CI, ekiplerin koddaki en küçük değişiklikleri sık sık uygulamasını ve tümleştirmesini gerektirir. CI uygulamak, ekiplerin üretim ortamında sürekli test, derleme, dağıtma ve sonra yeniden test etme anlamına gelir. CI'nin amacı, kod değişikliklerinin neden olduğu üretim sorunlarını ana kod dalını etkilemeden veya müşterilere dağıtmadan önce algılamak ve önlemektir.

Sürekli teslim ve dağıtım

Sürekli teslim , CI'nin sona erdiği yeri alır ve seçilen altyapı ortamına teslim sürecini otomatikleştirir. Değişiklikleri hızlı ve sürdürülebilir bir şekilde yayınlamak için sürekli teslimi kullanabilirsiniz. Sürekli teslimi kullandıktan sonra değişiklikleri günlük, haftalık, aylık veya iş gereksinimlerinize uygun başka bir zamanlamaya göre dağıtmaya önceden karar verirsiniz.

Sürekli dağıtım , CI/CD işlem hattının tüm aşamalarını üretime geçiren değişiklikleri otomatik olarak serbest bırakarak bir adım ileri gider. Sürekli dağıtım, yazılım geliştirmedeki en gelişmiş işlemlerden biridir ve uygulamanın işlevselliğinin tüm yönlerini insan müdahalesi olmadan test eden kod gerektirir.

CI/CD işlem hatları

İşlem hattı, belirtilen bir olay gerçekleştiğinde çalışan toplu işlemlerden oluşur. Çok sayıda olay yazılım geliştirmenin bir parçasıdır ve CI/CD işlem hattı tüm ilgili olayları desteklemelidir. Bir olay işlem hattını tetiklediğinde, bu olayın tüm dinleyicileri tetiklenir ve işlemin ilk aşaması başlar.

Ci/CD işlem hattı, yeni bir kod değişikliği tetiklendiğinde çalışır. Çoğu durumda ilk aşama, kaynak kodun kopyalanması veya indirilmesidir. Sonraki adım tetikler ve bu şekilde devam eder.

Bir kod değişikliği her CI/CD çalıştırmasını tetiklese işlem hattındaki tüm adımlar yürütülür. Bir adımda hata varsa işlem hattı durdurulur. İş akışları mantıksal atlamalar içerebilir, böylece bazı aşamalar belirli koşullar altında yürütülmez, ancak genel işlem hattı yürütülmeye devam eder.

GitHub Actions

GitHub Actions, GitHub ile ilgili tüm olayları destekler ve bu modülde CI/CD işlem hattını otomatikleştirir. GitHub Actions'da her adım JavaScript'te veya Docker kapsayıcısı kullanarak eylemleri tanımlar. Eylemleri oluşturmak ve işlem hattı adımlarının yapı taşları oluşturmak kolaydır.

GitHub Actions'ı kullanarak Tüm GitHub barındırılan kodunuzu otomasyon iş akışıyla sorunsuz bir şekilde tümleştirebilirsiniz. İş akışı, kodu çeşitli ortamlarda tümleştirmek için birden çok görevi işler.

GitHub Actions, açık kaynak modeli nedeniyle CI/CD işlem hatları için popüler bir sağlayıcıdır. İş akışları açık kaynak olduğundan, platformdaki herkesin kullanabileceği depolarda depolanır. GitHub kullanıcıları başka bir şey yüklemeden veya yapılandırmadan birbirlerinin eylemlerini kullanabilir veya kendi özel eylemlerini oluşturabilir.

Eylemleri kullanıcılar arasında paylaşabilmek, yinelenen kodu veya aşamaları yeniden yazmanıza gerek olmadığı, ancak mevcut eylemleri kullanabileceğiniz veya özelleştirebileceğiniz anlamına gelir. Sonraki ünitelerde, docker kapsayıcısında GitHub Actions'ı kullanarak bir uygulamanın sürekli dağıtımını uygulayan bir CI/CD işlem hattı tanımlayacaksınız.

Bilgilerinizi kontrol edin

1.

CI ile CD arasındaki fark nedir?

2.

CI işlem hattı nedir?