Aracılığıyla paylaş


Klasik yayın işlem hatları

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

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 aracı 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 kaynaklanan 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üme sahip yapıt kümesini tutan 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 tetiklenemedi?

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 kuyruğa alınıp kuyruğa alınmaması gerektiğini 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: Yayın işlem 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 zamanı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 kullanmak istemiyorsanız veya kullanılmasını önlemek istiyorsanız, yayından aşağıdaki İşlem Hatları> (...) > gibi vazgeçebilirsinizTerk et. Dağıtım devam ederken sürümü bırakamazsınız, önce dağıtımı iptal etmeniz gerekir.

Yayından nasıl ayrılacaklarını gösteren ekran görüntüsü.

S: Yeni sürümlerin adlandırmasını Nasıl yaparım? yönetebilirsiniz?

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 En az belirtilen basamak sayısına sahip otomatik olarak basılmış bir sayı.
Tarih / Tarih: MMddyy Varsayılan MMddyy biçiminde geçerli tarih. M/MM/MMM/MMMM, d/dd/ddd/ddd, y/yy/y/y, h/hh/H/HH, m/mm, s/sn'lerin tüm bileşimleri desteklenir.
System.TeamProject Bu derlemenin 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 sayısı. Bir yayında birden çok derleme varsa, birincil derlemenin numarasıdır.
Build.DefinitionName Yayında yer alan derlemenin işlem hattı adı. Bir yayında birden çok derleme varsa, birincil derlemenin işlem hattı adıdır.
Artifact.ArtifactType Yayınla bağlantılı yapıt kaynağının türü. Örneğin, bu Azure Pipelines veya Jenkins olabilir.
Build.SourceBranch Birincil yapıt kaynağının dalı. Git için, dal refs/heads/main ise bu ana formdur. Team Foundation Sürüm Denetimi için, çalışma alanının kök sunucu yolu $/teamproject/branch ise, bu form dalınındır. 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?

Y: Yayın işlem hatlarınız için bekletme ilkelerini ayarlamayı öğrenmek için bkz. bekletme ilkeleri.