Aracılığıyla paylaş


Azure DevOps için Yönetilen DevOps Havuzları (önizleme)

Geliştirme ve platform mühendisliği ekiplerinin özel DevOps havuzlarını hızlı bir şekilde ayarlamasına ve yönetmesine yardımcı olmak için tasarlanan Yönetilen DevOps Havuzlarının önizlemesini duyurmaktan heyecan duyuyoruz.

Ayrıca GitHub Advanced Security için Ölçüm Kullanımı tahmini API'lerini iyileştirerek kullanıcıları tanımlamanıza yardımcı olacak yeni özellikler sağladık.

Ayrıntılar için sürüm notlarına göz atın.

Azure DevOps için GitHub Gelişmiş Güvenliği

Azure Boru Hatları

Azure DevOps için GitHub Gelişmiş Güvenliği

Gelişmiş Güvenlik ölçümü kullanım API'si artık kullanıcı kimliklerini döndürüyor

Gelişmiş Güvenlik kullanıcılarınızı tanımlamanıza yardımcı olmak için Ölçüm Kullanımı Tahmini API'leri artık her kullanıcının görünen adı, CUID, e-posta tanımlayıcısı ve kimlik tanımlayıcısı dahil olmak üzere Azure DevOps kimliğini döndürür. Bu özellik kuruluş, proje ve depo düzeylerinde kullanılabilir. Bu yeni uç noktayı kullanmak için söz dizimi mevcut ölçüm kullanım API'sinin uç noktalarına benzer; uç noktaya /details ekleyin.

  • Kuruluş düzeyinde: GET https://advsec.dev.azure.com/{organization}/_apis/management/meterUsageEstimate/details?api-version=7.2-preview.1
  • Proje düzeyinde: GET https://advsec.dev.azure.com/{organization}/{project}/_apis/management/meterUsageEstimate/details?api-version=7.2-preview.1
  • Depo düzeyinde: GET https://advsec.dev.azure.com/{organization}/{project}/_apis/management/repositories/{repository}/meterUsageEstimate/details?api-version=7.2-preview.1

Derlemeleri olmayan C# ve Java projeleri için GitHub Gelişmiş Güvenlik kodu taraması

CodeQL ile kod tarama, deponuzdaki kodu tek bir dil için temsil eden veritabanlarında sorgu çalıştırmayı içerir. C/C++, C#, Go, Java ve Swift gibi derlenmiş diller için bu genellikle önce kodun oluşturulmasını gerektirir.

Ancak Azure DevOps için GitHub Gelişmiş Güvenliği'nin arkasındaki statik analiz altyapısı olan CodeQL artık derlemeye gerek kalmadan C# ve Java projelerini tarayabiliyor. Derleme modu "yok" olarak ayarlandığında CodeQL veritabanı doğrudan kod tabanından oluşturulur ve derleme adımı atlanır.

Tüm derlenmiş diller için varsayılan derleme modu "el ile" şeklindedir. Ancak C# ve Java için derleme modunu "yok" olarak değiştirebilirsiniz.

AdvancedSecurity-Codeql-Init@1 kurulumu sırasında derleme modunu yapılandırabilirsiniz. Azure DevOps ile GitHub Gelişmiş Güvenliği'nde kod taramasını yapılandırma hakkında ayrıntılı yönergeler için bkz. Kod taramayı ayarlama

Saygı:

  • "Hiçbiri" seçilirse ve desteklenen uyumlu diller C# veya Java dışında bir dil seçilirse işlem hattı görevi beklendiği gibi çalışmayabilir.

  • Derleme modu "hiçbiri" şu anda diğer yorumlanmış dillerle (örneğin, JavaScript, Python, Ruby) birlikte çalışır.

  • Geçerli Örnek: Derleme modu "yok" olarak ayarlanmış C# ve JavaScript (Yorumlanmış dilde JavaScript)

  • Geçersiz Örnek: Derleme modu "yok" olarak ayarlanmış C#, JavaScript ve Swift (Swift, derleme modunda "yok" olarak desteklenmez).

Azure Boru Hatları

Yönetilen DevOps Havuzları (önizleme)

Mühendislik ekipleri, kullanıcıları için uygulama ve hizmet geliştirmeye yönelik kod yazmaya odaklanabilecekleri durumlarda üstünlük sağlar. Ancak uygulamada genellikle DevOps altyapısını korumak gibi diğer görevleri yönetmek için önemli miktarda zaman harcanıyor.

Geliştirme ve platform mühendisliği ekiplerinin benzersiz ihtiyaçlarına göre uyarlanmış özel DevOps havuzları dağıtmasına yardımcı olmak için tasarlanmış yeni bir Azure DevOps özelliği olan Yönetilen DevOps Havuzları'nın (MDP) genel önizlemesini duyurmaktan heyecan duyuyoruz. MDP, Ölçek Kümesi aracılarının esnekliğini Microsoft tarafından barındırılan aracılarla ilişkili bakım kolaylığıyla bir araya getirerek ekiplerin tutarlılık ve en iyi yöntemleri oluşturmasına olanak tanırken performansı, güvenliği, uyumluluğu ve maliyet verimliliğini de en iyi duruma getirir.

Yönetilen DevOps Havuzlarının başlıca avantajları şunlardır:

  • Sizin yerinize barındırılan: MDP, Microsoft tarafından barındırılır ve yönetilir ve sanal makineler Microsoft'a ait Azure abonelikleri içinde oluşturulan ve bakımı yapılan aracıları güçlendirmektedir.
  • Yönetimde harcanan süre: MDP, özellikle şirket içi altyapıyı veya el ile korunan sistemleri temel alan aracıları yönetmek için harcanan süreyi önemli ölçüde azaltır.
  • Belirli Havuzlar: Kuruluşlar, yeni havuzların oluşturulabilmesinin kolay olması nedeniyle takıma veya iş yüküne özgü birden çok havuzu kolayca oluşturabilir.
  • DevOps Faturalaması: MDP, birçok özellik aracılığıyla bir ekibin DevOps faturasını iyileştirmeye yardımcı olur. Ekiplerin havuzun QoS/performansı ile maliyeti arasında en uygun dengeyi bulmasını kolaylaştırır.
  • Ölçeklenebilir: MDP, bir havuzda binlerce aracı ölçekleyebilir.

Ekipler, Microsoft tarafından barındırılan aracılarda bulunan yazılımları içeren hızlı başlangıç görüntüleriyle veya ekibin kendi senaryolarına özgü önkoşullarla oluşturduğu görüntülerle havuzlar oluşturabilir.

Blog gönderimizi veya belgelerini okuyarak Yönetilen DevOps Havuzları hakkında daha fazla bilgi edinin.

Azure işlem hatları görevleri Node 20 kullanır

İşlem hattı görevlerinin çoğu Node'u çalıştırıcı olarak kullanır. NodeJS'i çalıştırıcı olarak kullanan Azure pipelines görevinin artık tümü NodeJS 20 kullanıyor. Görev uzantılarının yazarlarının, görevlerini Node 20'yi kullanacak şekilde güncellemeleri gerekmektedir. Yükseltme hakkında yönergeler için bkz. Özel görevimi en son Node'a nasıl yükseltebilirim?.

Derleme işlem hattı için izin oluşturma

İşlem hattı güvenliğini artırmak için işlem hattı düzeyinde yeni bir izin Create build pipelinesunuyoruz.

Daha önce, bir işlem hattı oluşturmak veya düzenlemek için Edit build pipeline yetkisi gerekiyordu. Bu durum, işlem hatları oluşturma yeteneğine sahip tüm kullanıcıların, kendileri oluşturmadıkları işlem hatlarını da düzenleyebilmesi nedeniyle bir güvenlik riski oluşturuyordu. Bunu önlemek zaman alıcıydı.

Güvenlikten ödün vermeden işlem hattı deneyiminizi geliştirmek için, Edit build pipeline iznine sahip tüm kullanıcılar ve gruplar artık Create build pipeline iznini de alacak.

İşlem hattı oluşturulduğunda, oluşturana Edit build pipeline izni verilir.

geliştirilmiş işlem hattı güvenliği için Edit build pipeline ve Okuyucular gibi kullanıcı gruplarından izni kaldırmayı seçebilirsiniz. Bu, varsayılan olarak yalnızca işlem hattını oluşturanın düzenleyebilmesini sağlar.

Uyarı

Derleme işlem hattını düzenle izni, başkalarının bir YAML işlem hattını düzenlemesini engellemez; yalnızca işlem hattının özelliklerini düzenlemeye karşı korur.

Yeni projeler için, Edit build pipeline iznine sahip olan kullanıcılar ve gruplar, aynı zamanda Create build pipeline iznine de sahip olacaktır. Bu, gelecekte değişebilir.

Aşama düzeyinde özel kilit kontrolü

Bazı kullanım örnekleri, işlem hattının belirli bir kaynağa belirli bir zamanda yalnızca bir kez erişmesini gerektirir. Bu durumu desteklemek için Özel kilit denetimine sahibiz.

Benzer bir durum, bir aşamaya herhangi bir anda sadece bir işlem hattı çalıştırmanın erişmesi gerektiğinde ortaya çıkar. Örneğin, bir Azure kaynak grubuna dağıtım yapan bir aşamanız varsa, aynı kaynak grubunu aynı anda güncellemek için birden fazla işlem hattı çalıştırılmasını engellemek isteyebilirsiniz. Şu anda bunu başarmak için proxy kaynak olarak bir ortam kullanılması ve bu ortam üzerine Özel kilit denetiminin yerleştirilmesi gerekir. Bu yaklaşım zaman alabilir, karmaşıklık ekleyebilir ve bakım çalışmalarını artırabilir.

Bu sprint'te, özel kilidi aşama düzeyinde belirtmek için destek sunuyoruz. Kimliği olan bir aşamanız varsa ve bu aşamanın lockBehavior özelliğini belirtirseniz, aşama için otomatik bir kilit oluşturulur. Davranış sequential hem kaynak düzeyi hem de aşama düzeyi kilitler için tutarlı olmaya devam eder. Ancak, runLatest davranışı farklıdır, çünkü işlem hattının tüm dalları yerine yalnızca aynı dal için runLatest derlemeleri iptal eder.

İşlem hattı çalıştırmalarındaki şablon bilgileri

İşlem Hattı Çalıştırmaları - REST API'sini, genişletilmiş ve bir işlem hattı çalıştırmasında yer alan şablonlar hakkında bilgilerle güncelleştirdik.

Örneğin, aşağıdaki YAML işlem hattı kodunuz olduğunu düşünün:

extends:
  template: template-stages.yml@templates
  parameters:
    stages:
    - stage: deploy
      jobs:
      - job:
        steps:
        - template: template-step.yml

Yeni REST API aşağıdaki yeni özelliklere sahiptir:

"yamlDetails":
    {
        "extendedTemplates":
        [
            {
                "yamlFile": "template-stages.yml",
                "repoAlias": "templates"
            }
        ],
        "includedTemplates":
        [
            {
                "yamlFile": "template-step.yml",
                "repoAlias": "templates"
            }
        ],
        "rootYamlFile":
        {
            "ref": "refs/heads/main",
            "yamlFile": "azure-pipelines.yml",
            "repoAlias": "self"
        },
        "expandedYamlUrl": "https://dev.azure.com/fabrikamfiber/161cfeeb-d9fd-395c-917b-fec46db44fbb/_apis/build/builds/39224/logs/1"
    }

El ile tetiklenen YAML işlem hattı aşamaları

El ile tetiklenen YAML işlem hattı aşamaları hakkında sık sık istekler alırız. Bu, birleşik bir işlem hattına sahip olmak istediğinizde ancak her zaman tamamına kadar çalışmasını istemediğinizde yararlıdır.

Örneğin işlem hattınız oluşturma, test etme, hazırlama ortamına dağıtma ve üretime dağıtma aşamalarını içerebilir. Hazır olduğunuzda el ile tetiklemesini tercih ettiğiniz üretim dağıtımı dışında tüm aşamaların otomatik olarak çalıştırılmasını isteyebilirsiniz.

Bu sprint ile el ile tetiklenen YAML işlem hattı aşamaları için destek ekliyoruz. Bu özelliği kullanmak için trigger: manual özelliğini bir aşamaya eklemeniz gerekir.

Aşağıdaki YAML işlem hattı örneğini göz önünde bulundurun:

stages:
- stage: stage_WUS1
  displayName: Deploy WUS1
  trigger: manual
  jobs:
  - job: DeployJob
    steps:
    - task: AzureCLI@2
      inputs:
        azureSubscription: 'AzureWIF'
        scriptType: 'ps'
        scriptLocation: 'inlineScript'
        inlineScript: 'Write-host ''hello, world'''     
- stage: stage_WUS2
  displayName: Deploy WUS2
  trigger: manual
  jobs:
  - job: DeployJob
    steps:
    - task: AzureCLI@2
      inputs:
        azureSubscription: 'AzureWIF'
        scriptType: 'ps'
        scriptLocation: 'inlineScript'
        inlineScript: 'Write-host ''hello, world'''

Bu işlem hattını çalıştırdığınızda, deneyim aşağıdaki gibidir:

El ile tetiklenen YAML işlem hattı aşamalarının ekran görüntüsü.

El ile tetiklenen aşamaların bağımlılıkları yoktur ve herhangi bir zamanda çalıştırılabilir. İşlem hattı çalışması, yalnızca elle başlatılan aşamalar kaldığında tamamlanır.

Sonraki Adımlar

Uyarı

Bu özellikler önümüzdeki iki-üç hafta içinde kullanıma sunulacaktır.

Azure DevOps'a gidin ve bir göz atın.

Geri bildirim sağlama

Bu özellikler hakkında düşüncelerinizi duymak isteriz. Bir sorunu bildirmek veya öneri sağlamak için yardım menüsünü kullanın.

Öneride bulunma

Stack Overflow'da topluluk tarafından öneriler ve sorularınıza yanıt alabilirsiniz.

Teşekkürler

Silviu Andrica