Ölçeklendirmeyi yapılandırın

Ölçeklendirme ayarlarını yapılandırarak Yönetilen DevOps Havuzları örneğinizin performansını ve maliyetini yönetebilirsiniz. Fiyatlandırma ve performans hakkında bilgi için bkz . Maliyet ve performansı yönetme.

Ajan durumu

Havuzları şu şekilde yapılandırabilirsiniz:

Havuz için varsayılan ayar "stateless"tir, bu durumu her seferinde Fresh aracısını kullanarak elde edebilirsiniz. Bazı durumlarda, ekipler önceki işlem hattı çalıştırması sırasında oluşturulan paketleri veya dosyaları yeniden kullanmak için aracıları yeniden kullanmak isteyebilir. yapı iş yükü, ekiplerin durumu muhafaza etmek ve ajanları yeniden kullanmak istediği yaygın bir senaryodur. Yönetilen DevOps Havuzları aracılığıyla durum bilgisi olan havuzlar elde ederken, bunu en iyi güvenlik yöntemleriyle dengeleyebilirsiniz. Aracı varsayılan olarak en fazla yedi gün yeniden kullanılabilir, ancak daha erken geri dönüştürülecek şekilde yapılandırabilirsiniz.

Not

Güvenlik ajanları, kullanıcıların tedarik zinciri saldırılarına karşı savunma olarak durumsuz havuzlar kullanmasını önerir. Her seferinde Taze ajan durumu ayarını kullanın.

Durumsuz havuzlar

Durum bilgisi olmayan bir aracı yapılandırdığınızda, her iş için yeni bir aracı temin edilir. İş tamamlandıktan sonra etken silinir.

Durumsuz aracıların yaşam döngüsü ve Azure Pipelines'de nasıl kullanıldıkları hakkında daha fazla bilgi edinmek için Durumsuz aracıların yaşam döngüsü ve ayırmada olası gecikmeler bölümüne bakın.

Durumsuz bir ajanı gösteren ekran görüntüsü.

Ajan durumunuher seferinde Yeni bir ajan olarak ayarladığınızda, her iş için yeni bir ajan temin edilir. İş tamamlandıktan sonra etken silinir.

Durum bilgisi olan havuzlar

Durum bilgisine sahip bir temsilciyi gösteren ekran görüntüsü.

Same aracısını etkinleştirdiğinizde birden çok derleme tarafından kullanılabilir (kaynak şablonlarındaki "kind": "stateful" ayarı veya Azure CLI { "stateful": {...} } ayarı), havuzdaki aracılar durum bilgisi içerir. Durum bilgisi olan havuzları aşağıdaki ayarları kullanarak yapılandırabilirsiniz:

  • Bekleme aracıları için en uzun yaşam süresi (maxAgentLifetime), durum bilgisi olan bir havuzdaki bir aracının kapatılıp atılmadan önce çalışabileceği maksimum süreyi yapılandırır. Bekleme aracıları için en uzun yaşam süresi biçimi dd.hh:mm:ss. Bekleme aracıları için maksimum yaşam süresinin varsayılan değeri, izin verilen yedi günlük en uzun süreye (7.00:00:00) ayarlanmıştır.

  • Geri Alma Süresi (gracePeriodTimeSpan), durumlu bir havuzdaki bir aracının tüm geçerli ve kuyruğa alınmış işler bittikten sonra kapanmadan önce yeni işler için bekleme süresini yapılandırır. Varsayılan ayar, Vade Süresi olmamasıdır ve formatı dd.hh:mm:ss biçimindedir.

    Önemli

    Bekleme ajanları için maksimum yaşam süresi dolduğunda bir iş çalışıyorsa, aracı işin bitmesine kadar kapanmaz, ancak iş iki günden uzun sürerse durdurulabilir. Yönetilen DevOps Havuzlarındaki bireysel işler, bekleme aracıları için iki günden fazla yapılandırılmış maksimum yaşam süresine sahip bir bekleme aracısında çalıştıkları durumda bile en fazla iki gün sürebilir. (Yönetilen DevOps Havuzu, iki günden uzun süre çalışan işlem hatlarını, hepsi iki gün veya daha kısa sürede tamamlanan birden fazla daha kısa işe bölerek destekler.)

Durumsuz havuzlardaki aracılar kapatılır ve her işten sonra atılır. Durum bilgisine sahip havuzlarda bulunan aracılar, aşağıdaki koşullardan herhangi biri karşılandığında çalışmaya devam ediyor.

  • İlk iş tamamlandığında başka bir iş kuyruğa alınırsa, Yönetilen DevOps Havuzları kuyruğa alınan işi kapatmak yerine ilk işi çalıştıran aracıya gönderir.
  • Havuz için bir geçiş süresi yapılandırılmışsa, aracılar kapatmadan önce geçiş süresi boyunca belirtilen süre boyunca yeni görevleri beklerler.
  • Bekleme aracıları etkinse ve ajan görüntüsü aktif sağlama dönemi ölçütlerini karşılıyorsa, aracı çalışmaya devam eder ve işleri bekler.

Durum bilgisi olan havuzlarda çalışan ajanlar, önceki koşullar doğru olsa bile, bekleme durumundaki ajanlar için maksimum çalışma süresi boyunca sürekli çalışırsa kapatılır ve atılır. Örneğin, bekleme aracıları için en uzun yaşam süresi üç gün yapılandırılırsa ve Bekleme aracısı moduEl ile, Tüm Hafta Düzeni (Makineler 7/24 kullanılabilir) olarak ayarlanırsa, aracılar üç sürekli çalışma süresinden sonra yeniden başlatılır.

Önemli

Durum bilgisi olan havuzlardaki aracılar, iş bittikten sonra da, bir bekleme süresi yoksa, yedek aracılar için etkin sağlama dönemi yoksa ve aracı ile eşleşen işleme alınmayı bekleyen işler yoksa, kapatılabilir ve atılabilir. Bir aracı atıldığında, herhangi bir durum kaybolur.

Geçiş süreleri, tutarlı yüke sahip işlem hatları için durum bilgisine sahip havuzları çalıştırmanın en uygun maliyetli yolunu sağlar. Geçiş süreleri, aracıları çevrimiçi ve işleri kabul etmeye hazır tutmak için bekleme aracı modunun kullanılmasını zorunlu kılmaz.

Bekleme aracısı modu

Havuz oluşturduğunuzda , bekleme aracısı modu varsayılan olarak kapalıdır. Bekleme aracısı modu kapalı olduğunda, işlem hatlarınıza hemen atanacak yedek aracı yoktur. İşlem hatlarınızın, isteğe bağlı bir aracın sağlanabilmesi için birkaç saniye ile 15 dakika arasında beklemesi gerekebilir. Daha iyi performans için Bekleme aracısı modunu etkinleştirin ve iş yükünüz için kapasite sağlayan bir bekleme aracısı zamanlaması yapılandırın.

Hazır bekleyen aracı zamanlamasını yapılandırdığınızda, Yönetilen DevOps Havuzları sağlanan aracıların sayısını, geçerli sağlama düzeninde belirttiğiniz hazır bekleyen aracı sayısıyla düzenli aralıklarla karşılaştırır. Yedekteki ajan sayısını korumak için gerekli oldukça yeni ajanlar başlatır. Aracılar bölmesini kullanarak havuzunuzdaki aracıların geçerli durumunu ve sayısını görüntüleyebilirsiniz.

Önemli

Bir plandaki tahsis sayısı, Havuz ayarlarında yapılandırdığınız En fazla aracı değerinden büyük olamaz.

Aşağıdaki ayarları kullanarak bekleme aracısı modunu yapılandırabilirsiniz:

  • Kapalı: Bekleme aracısı modu kapalıdır ve işler kuyruğa alınırken isteğe bağlı olarak aracılar sağlanır.
  • El ile: El ile bekleme zamanlamasını yapılandırın.
  • Otomatik: Aracı kullanım geçmişine göre otomatik bekleme zamanlaması kullanın. Bunu maliyet ve performans için yapılandırabilirsiniz.

Bekleme aracısı modu seçimlerini gösteren ekran görüntüsü.

Kılavuz

Manuel mod, sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hattı kullanım düzenlerini bilen ekipler için en iyi seçenektir. El ile seçeneğini kullandığınızda, ön sağlama düzeninizi tanımlamanız gerekir. Şemanızı, havuzdaki hangi aracıların kullanılma olasılığının en yüksek olduğunu ve kaç aracının kullanılma olasılığını anladığınıza göre tanımlarsınız. Öngörülen talebi karşılayan aracıların sağlama sayısını belirtirsiniz.

Kendi sağlama zamanlamanızı oluşturabilir veya önceden tanımlanmış zamanlamalardan birini seçebilirsiniz. Zamanlamaları belirtmek için kullanılacak saat dilimini yapılandırabilirsiniz. Ön Sağlama Zaman Dilimi için varsayılan değer (UTC) Eşgüdümlü Evrensel Saat'tir.

El ile hazır bekleyen ajanları aşağıdaki üç şekilden biriyle yapılandırabilirsiniz.

Ön sağlama hızlı başlangıçlarının her biri aşağıdaki genel ayarlara sahiptir (bu hızlı başlangıca özgü ayarlara ek olarak):

  • Önceden sağlama Saat Dilimi: Önceden sağlama düzeninizdeki zaman dilimleri için saat dilimini yapılandırmanıza olanak tanır. Ön Yapılandırma Saat Dilimi için varsayılan değer (UTC) Eşgüdümlü Evrensel Saat'tir.
  • Bekleme aracısı yüzdesi: Her görüntü için istediğiniz bekleme aracılarının yüzdesini yapılandırılır. Tüm görüntülerin eşit olarak sağlandığından emin olmak için girebilir * veya yüzdeyi temsil etmek için 0 ile 100 arasındaki bir tamsayı belirtebilirsiniz. Yüzde belirtirseniz, tüm görüntülerin toplamı 100'e eşit olmalıdır. Tek bir görüntü varsa * veya 100 belirtin. Azure Resource Manager şablonları (ARM şablonları) kullandığınızda, bölümünde images ayarını yapılandırabilirsiniz. Daha fazla bilgi için bkz Görüntüleri yapılandırma.

El ile bekleme modunu gösteren ekran görüntüsü.

Sıfırdan başlama

Sıfırdan başlamayı seçerseniz, sağlama şemanız olarak sağlama dönemlerinin listesini ekleyebilirsiniz. Her sağlama dönemi bir başlangıç günü, bitiş günü, saat dilimi, başlangıç saati, bitiş saati ve sayıdan oluşur. Sağlama dönemleri birbiriyle örtüşemez.

Özellik Açıklama
Çok Günlü Bu seçeneği belirlediğinizde, sağlama düzeniniz için hem Başlangıç Günü hem de Bitiş Günü'nüzü yapılandırabilirsiniz.
Sonraki döneme kadar Bu seçeneği belirlediğinizde, sağlama dönemi Başlangıç Saati değerinden sonraki sağlama döneminin başlangıcına kadar çalışır.
Başlangıç Günü Sağlama döneminin başladığı gün.
Bitiş Günü Sağlama döneminin bittiği gün. Çok Gün seçiliyse gereklidir.
Başlangıç Zamanı Sağlama sürecinin başladığı zaman.
Bitiş Zamanı Sağlama döneminin sona ermesi. Sonraki döneme kadar seçilmediği sürece gereklidir.
Sayı Hazırda bekletilecek ajanların sayısı. Bu sayı sıfırdan büyük olmalı ve Havuz ayarlarındakiMaksimum aracı değerinden büyük olmamalıdır.

Sağlama dönemi oluşturduktan sonra, dönemi Ön sağlama düzeni listesinden silebilir veya düzenleyebilirsiniz.

Aşağıdaki örnekte, Pazartesi sabahları sabah 12:00 ile 05:00 EST arasında bir ajan sağlanarak manuel bir şema yapılandırma gösterilmektedir.

El ile ölçeklendirme düzenini gösteren ekran görüntüsü.

Hafta içi düzeni

Hafta içi düzenini seçerseniz, belirtilen sayıda bekleme aracısının hafta içi her gün beklemede olduğu bir başlangıç saati ve bitiş saati belirtebilirsiniz.

Özellik Açıklama
Başlangıç Zamanı Sağlama sürecinin başladığı zaman.
Bitiş Zamanı Sağlama döneminin sona ermesi.
Sağlama Sayısı Hazırda bekletilecek ajanların sayısı. Bu sayı sıfırdan büyük olmalı ve Havuz ayarlarında yapılandırılan En fazla aracı değerinden büyük olmamalıdır.

Aşağıdaki örnekte, Doğu Saati (UTC-5) kullanılarak, çalışma saatlerinde dört aracı yapılandırılır, çalışma saatleri dışında ve hafta sonlarında ise hiçbir aracı kullanılmaz.

Hafta içi düzenini gösteren ekran görüntüsü.

Tüm hafta düzeni

Tüm hafta düzenini seçerseniz, her zaman kullanılabilir olmasını istediğiniz aracı sayısını belirtebilirsiniz.

Tüm hafta düzenini gösteren ekran görüntüsü.

Otomatik

Kullanım desenlerinizi bilmiyorsanız ve geçmiş verilere göre otomatik tahmine güvenmek istiyorsanız Otomatik'i seçin. Aşağıdaki beş seçeneğe sahip bir kaydırıcı kullanarak maliyet ve aracı performansı arasında denge sağlayabilirsiniz. Yönetilen DevOps Havuzları, son üç haftalık geçmiş verileriniz (varsa) üzerinde bir sorgu çalıştırır. Havuzun kuyruğa alınmış oturumlarını beş dakikalık dönemler halinde düzenler ve belirtilen yüzdelik dilimi (ani dalgalanmaları önlemek için) her saat için atar.

  • En uygun maliyetli (MostCostEffective): 10. yüzdelik dilim.
  • Daha uygun maliyetli (MoreCostEffective): 25. yüzdelik dilim.
  • Dengeli (varsayılan) (Balanced): 50. yüzdebirlik.
  • Daha fazla performans (MorePerformance): 75. yüzdelik dilim.
  • En iyi performans (BestPerformance): 90. yüzdebirlik.

Otomatik ölçeklendirme ayarını gösteren ekran görüntüsü.

Aracıların yaşam döngüsü ve tahsis sürecindeki olası gecikmeler

bekleme aracılarını stateless şemasını kullanarak etkinleştirdiğinizde, ready durumundan allocated durumuna geçmeden ve işlem hattı çalıştırmadan önce Azure Pipelines aracısını yüklemeniz ve yapılandırmanız gerekir.

Yönetilen DevOps Havuzları yeni aracılar sağladığında en son Azure Pipelines aracısını indirmeyi dener; böylece hazır duruma geçmeden önce hazır bekleyen aracılara zaten indirilir. Başlatma, bağlantı ve işin başlatılması, havuzun SKU hızına, kullanılan görüntüye ve ağ yüküne bağlı olarak 10 saniyeden bir dakikaya kadar sürebilir. Ayrıca, bir işlem hattı işinde belirli ayarları belirttiğinizde, bu durum farklı bir aracının yeniden indirilmesine ve çalıştırılmasına neden olabilir. Aracının regresyonları ve geri almaları da aracının yeniden indirilip geri yüklenmesine neden olabilir.

Yönetilen DevOps Havuzları bu aracıyı "kısa ömürlü" bir şekilde kullandığından, hazır aracılar her zaman potansiyel bir gecikmeye sahip olabilir, yani her iş için görev aracısını bir kez başlatıp çalıştırırız. Hazır aracıların Azure DevOps işleri almasında gecikmeler görürseniz aşağıdaki soruları göz önünde bulundurun:

  • Hazır ajanlarınız var mı? En yaygın sorun, aracıların ne zaman önceden sağlanması gerektiğinin yanlış anlaşılmasıdır. Aşağıdaki koşullar karşılandığında makinelerin sıfırdan başlatılması gerekir:
    • Kuyruğa alınan iş sayısı, havuzdaki hazır durumda bekleyen aracılar sayısından daha fazladır.
    • İşler, ön sağlama planının/sürecinin dışında sıraya alınır.
    • Hazır bekleyen aracı sayısı boş olarak ayarlandı.
  • Birden çok görüntüsü olan hazır bekleyen aracıları düzgün yapılandırıyor musunuz? ImageOverride talebini kullanarak işlem hattınızda hangi görüntünün kullanılacağını belirtmiyorsanız, işler ilk görüntüyü hedefler. Ölçeklendirme ayarlarınıza bağlı olarak, beklediğiniz kadar çok sayıda ajanınız olmayabilir, çünkü bazıları diğer görüntülere tahsis edilmiştir.
  • Boru hatlarınızda ImageVersionOverride talebini kullanıyor musunuz? ImageVersionOverride Havuz ayarlarınızda yapılandırılandan farklı bir görüntü sürümü belirtmek için talebi kullandığınızda, her aracı belirtilen görüntü sürümünü kullanarak isteğe bağlı olarak başlar. Yedek ajanlar, havuzunuzun yapılandırmasında belirtilen görüntü sürümleri kullanılarak sağlanır. Eğer ImageVersionOverride kullanırsanız, bekleme durumundaki aracılar bu sürüme uymaz ve yeni bir aracı başlatılır.
  • Ara sunucu, sanal ağ veya güvenlik duvarı ayarları havuzunuzu yavaşlatıyor mu? Herhangi bir ağ ayarındaki olası yavaşlık, aracıyı başlatmanın ve Azure DevOps bağlamanın daha uzun sürmesine neden olur.
  • Aracı sürümünü geçersiz mi bırakacaksınız? Varsayılan olarak, Yönetilen DevOps Havuzları en son Azure DevOps görev aracısı sürümünde çalışır. İşlem hattı YAML'sindeki ayarlar (Agent.Version talebi gibi) ve Azure DevOps kuruluş ayarları işlem hatlarını görev aracısının eski sürümlerini kullanmaya zorlayabilir ve bu da makine ayrıldıktan sonra yeniden indirme gerektirir.