Aracılığıyla paylaş


Klasik sürüm işlem hatları

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Klasik yayın işlem hatları, geliştiricilere uygulamaları birden çok ortam için verimli ve güvenli bir şekilde dağıtmak için bir çerçeve sağlar. Klasik yayın işlem hatlarını kullanarak test ve dağıtım süreçlerini otomatikleştirebilir, esnek dağıtım stratejileri ayarlayabilir, onay iş akışlarını birleştirebilir ve çeşitli aşamalarda sorunsuz uygulama geçişleri sağlayabilirsiniz.

Yayın işlem hatları nasıl çalışır?

Azure Pipelines, her dağıtımın bir parçası olarak aşağıdaki adımları yürütür:

  1. Dağıtım öncesi onay:

    Yeni bir dağıtım isteği tetiklendiğinde Azure Pipelines, bir sürümü bir aşamaya dağıtmadan önce bir ön dağıtım onayının gerekli olup olmadığını doğrular. Onay gerekiyorsa ilgili onaylayanlara e-posta bildirimleri gönderir.

  2. Kuyruk dağıtım işi:

    Azure Pipelines, kullanılabilir bir Aracıda dağıtım işini zamanlar.

  3. Aracı seçimi:

    Kullanılabilir bir ajan dağıtım işini alır. Yayın işlem hattı, çalışma zamanı sırasında uygun bir aracıyı dinamik olarak seçecek şekilde yapılandırılabilir.

  4. Yapıtları indirme:

    Aracı, yayında belirtilen tüm yapıtları alır ve indirir.

  5. Dağıtım görevlerini çalıştırın:

    Aracı, dağıtım işindeki tüm görevleri yürütür.

  6. İlerleme günlükleri oluşturma:

    Aracı, her dağıtım adımı için kapsamlı günlükler oluşturur ve bunları Azure Pipelines'a geri gönderir.

  7. Dağıtım sonrası onay:

    Bir aşamaya dağıtım tamamlandıktan sonra, Azure Pipelines söz konusu aşama için dağıtım sonrası onayının gerekli olup olmadığını doğrular. Onay gerekmiyorsa veya gerekli bir onay alındıktan sonra dağıtımı bir sonraki aşamaya başlatmak için devam eder.

Azure Pipelines'daki dağıtım adımlarını gösteren ekran görüntüsü.

Dağıtım modeli

Azure yayın işlem hatları Jenkins, Azure Artifacts ve Team City gibi çok çeşitli yapıt kaynaklarını destekler. Aşağıdaki örnekte Azure yayın işlem hatlarını kullanan bir dağıtım modeli gösterilmektedir:

Aşağıdaki örnekte, işlem hattı, ayrı derleme işlem hatlarından elde edilen iki derleme yapıtından oluşur. Uygulama başlangıçta Geliştirme aşamasına ve ardından iki ayrı Soru-Cevap aşamasına dağıtılır. Dağıtım her iki Soru-Cevap aşamasında da başarılı olursa uygulama Prod ring 1'e ve ardından Prod ring 2'ye dağıtılır. Her üretim halkası, aynı web uygulamasının dünyanın farklı konumlarına dağıtılan birden çok örneğini temsil eder.

Yayın işlem hattı dağıtım adımlarını gösteren ekran görüntüsü.

Sürümler ve dağıtımlar

Yayın, CI/CD işlem hattında belirtilen, sürümlenmiş nesne kümesini barındıran bir yapıdır. Aşamalar, görevler, tetikleyiciler ve onaylayanlar gibi ilkeler ve dağıtım seçenekleri gibi yayın işlem hattındaki tüm görevleri ve eylemleri gerçekleştirmek için gereken tüm bilgilerin anlık görüntüsünü içerir. Bir yayın işlem hattından birden çok sürüm olabilir ve her biri hakkındaki bilgiler belirtilen saklama süresi boyunca Azure Pipelines'da depolanır ve görüntülenir.

Dağıtım, otomatikleştirilmiş testleri çalıştırmayı, derleme yapıtlarını dağıtmayı ve bu aşama için belirtilen diğer eylemleri içerebilen görevleri bir aşama için çalıştırma eylemidir. Bir sürümün başlatılması, her dağıtımı özgün yayın işlem hattında tanımlanan ayarlara ve ilkelere göre başlatır. Bir aşamada bile her sürümün birden çok dağıtımı olabilir. Bir yayının dağıtımı bir aşama için başarısız olduğunda, aynı sürümü bu aşamaya yeniden dağıtabilirsiniz. Bir sürümü yeniden dağıtmak için, dağıtmak istediğiniz sürüme gidin ve dağıt'ı seçin.

Aşağıdaki diyagramda yayın, yayın işlem hatları ve dağıtımlar arasındaki ilişki gösterilmektedir.

Sürümler ve dağıtımlar arasındaki farkı gösteren diyagram.

SSS

S: Dağıtımım neden tetiklenmedi?

Y: Yayın işlem hattı oluşturma, dağıtımı otomatik olarak başlatmaz. Bunun olmasının birkaç nedeni şunlardır:

  • Dağıtım Tetikleyicileri: tanımlı dağıtım tetikleyicileri dağıtımın duraklatmasına neden olabilir. Bu, zamanlanmış tetikleyicilerle veya başka bir aşamaya dağıtım tamamlanana kadar gecikme olduğunda oluşabilir.

  • Kuyruğa Alma İlkeleri: Bu ilkeler, yürütme sırasını ve yayınların dağıtım için ne zaman kuyruğa alınacağını belirler.

  • Dağıtım Öncesi Onaylar veya Geçitler: Belirli aşamalar, dağıtım öncesi onaylar veya geçitler gerektirebilir ve tanımlanan tüm koşullar karşılanıncaya kadar dağıtımı engelleyebilir.

S: Yayın zamanında değişkenleri nasıl düzenleyebilirim?

Y: Sürüm hattınızın Değişkenler sekmesinde, bir yayın kuyruğa alınırken değiştirmek istediğiniz değişkenler için yayın sırasında ayarlanabilir onay kutusunu seçin.

Yayın zamanında ayarlanabilir özelliğinin nasıl etkinleştirileceğine ilişkin ekran görüntüsü.

Daha sonra yeni bir sürüm oluştururken bu değişkenlerin değerlerini değiştirebilirsiniz.

Yayın zamanında değişkenleri düzenlemeyi gösteren ekran görüntüsü.

S: Bir sürümü tanımlayan işlem hattı yerine değiştirmek ne zaman daha uygun olur?

Y: Yayın örneğinin onaylarını, görevlerini ve değişkenlerini düzenleyebilirsiniz. Ancak, bu düzenlemeler yalnızca bu örnek için geçerlidir. Değişikliklerinizin gelecekteki tüm sürümlere uygulanmasını istiyorsanız bunun yerine yayın işlem hattını düzenleyin.

S: "Yayını bırakma" özelliğinin yararlı olduğu senaryolar nelerdir?

Y: Yayını yeniden kullanmayı planlamıyorsanız veya kullanılmasını önlemek istiyorsanız, yayından İşlem Hatları> (...) > Terk et seçeneğini seçerek vazgeçebilirsiniz. Dağıtım devam ederken sürümü bırakamazsınız, önce dağıtımı iptal etmeniz gerekir.

Bir yayının nasıl terk edileceğini gösteren bir ekran görüntüsü.

Yeni sürümlerin adlandırmasını nasıl yönetebilirim?

Y: Yayın işlem hatları için varsayılan adlandırma kuralı, yayınların Release-1, Release-2 vb. olarak adlandırıldığı sıralı numaralandırmadır. Ancak, yayın adı biçim maskesini değiştirerek adlandırma düzenini özelleştirme esnekliğine sahipsiniz. Yayın işlem hattınızın Seçenekler sekmesinde Genel sayfasına gidin ve Yayın adı biçimi özelliğini tercihlerinize uyacak şekilde ayarlayın.

Biçim maskesini belirtirken aşağıdaki önceden tanımlanmış değişkenleri kullanabilirsiniz. Örnek: Aşağıdaki sürüm adı biçimi: $(Build.BuildNumber) $(Build.DefinitionName) derlemesi için $(Rev:rrr) sürümü şu sürümü oluşturur: Derleme 20170213.2 Için Sürüm 002 MySampleAppBuild.

Değişken Açıklama
Rev: rr Belirtilen kadar en az basamağa sahip otomatik olarak artan bir sayı.
Tarih / Tarih: MMddyy Varsayılan MMddyy biçiminde, bugünün tarihi. M/MM/MMM/MMMM, d/dd/ddd/dddd, y/yy/yyyy/yyyy, h/hh/H/HH, m/mm, s/ss'lerin tüm bileşimleri desteklenir.
System.TeamProject Bu yapının ait olduğu projenin adı.
Release.ReleaseId Yayın kimliği, projedeki tüm sürümlerde benzersizdir.
Release.DefinitionName Geçerli sürümün ait olduğu yayın işlem hattının adı.
Build.BuildNumber Yayında yer alan derlemenin numarası. Bir yayında birden çok derleme varsa, bu birincil derlemenin numarasıdır.
Build.DefinitionName Bir sürümde yer alan derlemenin işlem hattı adı. Bir yayında birden fazla derleme varsa, bu birincil derlemenin işlem hattı adıdır.
Artifact.ArtifactType Yayın ile ilişkilendirilen eserin kaynağının türü. Örneğin, bu Azure Pipelines veya Jenkins olabilir.
Build.SourceBranch Birincil eser kaynağının dalı. Git için, dal refs/heads/main ise, bu main biçimindedir. Team Foundation Sürüm Denetimi için, çalışma alanının kök sunucu yolu $/teamproject/branch ise, bu, branch şeklindedir. Bu değişken Jenkins veya diğer yapıt kaynakları için ayarlanmadı.
Özel değişken Yayın işlem hattında tanımlanan genel yapılandırma özelliğinin değeri. Yayın günlüğü komutlarını kullanarak yayın adını özel değişkenlerle güncelleştirebilirsiniz

S: Yayınlarım için bekletme süresini nasıl tanımlayabilirim?

A: Yayın işlem hatlarınız için tutum ilkelerini nasıl ayarlayacağınızı öğrenmek için tutum ilkelerine bakın.