Aracılığıyla paylaş


Bulut ölçeğinde analizi yönetme

DevOps bugün insanların düşünme ve çalışma kültürünü değiştirerek, bireylerin ve kuruluşların sürdürülebilir çalışma uygulamaları geliştirmesine ve sürdürmesine yardımcı olarak işletmelerin değer oluşturma hızını hızlandırmıştır. DevOps, geliştirme ve işlemleri bir araya getirir ve genellikle sürekli tümleştirme (CI) ve sürekli teslim (CD) uygulamalarını destekleyen yazılım mühendisliği araçlarıyla ilişkilendirilir. Bu araçlar ve uygulamalar arasında kaynak kod yöneticileri (Git, Apache Subversion veya Team Foundation Sürüm Denetimi gibi) ve otomatik derleme ve teslim yöneticileri (Azure Pipelines veya GitHub Actions gibi) bulunur.

DevOps ile gözlemlenebilirlik, çevik ve ölçeklenebilir bir platform sağlamanın anahtarıdır. DevOps, ekiplere kaynak denetimi, CI/CD işlem hatları, kod olarak altyapı, İş akışları ve otomasyon uygulama olanağı sağlar. Gözlemlenebilirlik işletme sahiplerinin, DevOps mühendislerinin, veri mimarlarının, veri mühendislerinin ve site güvenilirlik mühendislerinin sorunları otomatik bir şekilde algılamasını, tahmin etmesini, engellemesini ve çözmesini ve üretim analizini ve yapay zekayı bozacak kapalı kalma sürelerini ortadan kaldırmasını sağlar.

Kaynak denetimi

Kaynak denetimi, kodun ve yapılandırmaların kalıcı olmasını ve değişikliklerin izlenip sürüme dönüştürülmesini sağlar. Çoğu kaynak denetim sistemi, bir kod deposunun farklı dallarında gözden geçirilip çalışmak için yerleşik işlemlere de sahiptir. Şu anda en popüler kaynak denetim türü, kişilerin çevrimdışı çalışmasına ve merkezi depolarla eşitlenmesine olanak tanıyan bir dağıtılmış sürüm denetimleri sistemi olan Git'tir. Git satıcıları genellikle dalları kullanır ve değişiklik ve gözden geçirme akışını desteklemek için çekme isteği kılavuzunu izler.

Dallar, aynı anda gerçekleşen diğer işleri etkilemeden değişiklikleri veya özellik geliştirmelerini yalıtıyor. Dalların kullanımı özellik geliştirmek, hataları düzeltmek ve yeni fikirlerle güvenli bir şekilde deneme yapmak için yükseltilmelidir. Çekme istekleri, bir daldan yapılan değişiklikleri varsayılan dala birleştirir ve denetimli bir gözden geçirme işlemini destekler. Güvenlik amacıyla, ana dal kod incelemelerini sağlamak için çekme isteklerini kullanmalıdır.

Önemli

Bulut ölçeğindeki analiz depoları için şu yönergeleri izleyin:

  • Denetimli bir gözden geçirme süreci sağlamak için dalları ve çekme isteklerini zorunlu kılarak deponun ana dalını güvenli hale getirmek.
  • Kaynak denetiminde kaynak kodundaki değişiklikleri izlemek ve birden çok ekip üyesinin aynı anda kod geliştirmesine olanak sağlamak için Azure DevOps veya GitHub depoları kullanılmalıdır.
  • Uygulama kodu ve altyapı yapılandırmaları bir depoda denetlenmelidir.

CI/CD işlem hatları

CI, ekiplerin kaynak kodu otomatik olarak test edip oluşturmasına olanak tanır ve CD'de yüksek kod kalitesi sağlamak için hızlı yinelemeler ve geri bildirim döngüleri sağlar. İşlem hatları, değişikliklerin CI'sini (yazılım kodu veya altyapı kodu) ve paketlenmiş/derlenmiş değişikliklerin CD'sini yapılandırmanın yollarıdır. Bu, derleme ve yayın olarak da adlandırılır. CD, uygulamaların bir veya daha fazla ortam için otomatik dağıtımını açıklar. CD genellikle bir CI işlemini izler ve tümleştirme testlerini kullanarak uygulamanın tamamını doğrular.

İşlem hatları çeşitli görevler içeren birden çok aşama içerebilir ve uyumluluk ve doğrulama sağlamak için basit ve karmaşık onay akışlarına sahip olabilir. Tercihe bağlı olarak, işlem hatları çeşitli otomatik tetikleyicilerle de yapılandırılabilir. Kurumsal ölçekli ve yapay zeka dağıtımı için üretim adımlarının her zaman insan ön onayına sahip olması gerekir ve bu işlem modelinde yerleşik olarak bulunur. CI/CD işlem hatları GitHub Actions veya Azure Pipelines ile oluşturulmalı ve otomatik tetikleyiciler olmalıdır.

Kod olarak altyapı

IaC'deki kod terimi genellikle geliştirici arka planı olmadan BT personeli için endişelere neden olur, ancak IaC kod yazmaya tipik yazılım geliştiricilerinin bunu nasıl yapacağına başvurmaz. Ancak, altyapıyı öngörülebilir bir biçimde sunmak için yazılım geliştirme süreçlerindeki birçok araç ve ilkeyi benimser.

IaC, tam değişiklik denetimleri, denetim geçmişi, testler, doğrulamalar ve onay süreçleriyle bir DevOps işlem hattının parçası olarak altyapının sağlanmasına, yapılandırılmasına ve yönetilmesine yardımcı olur ve güvenlik ve uyumluluktan ödün vermeden görevlerin proje için uygun rollere atanabilmesini sağlar.

IaC'ye yönelik iki yaklaşım bildirim temelli ve kesindir:

  • Bildirim temelli, altyapının istenen durumunu belirtmeyi ve bir düzenleme altyapısının istenen duruma ulaşmak için gerekli eylemleri yürütmesini sağlamayı ifade eder. Azure'da bu işlem Azure Resource Manager şablonlarıyla gerçekleştirilir. Terraform gibi üçüncü taraf soyutlama katmanları da bu yaklaşım için kullanılabilir.

  • Kesinlik temelli yaklaşım, belirli komutların tanımlı sırada yürütülmesini ifade eder. Azure için bu, komut satırı arabirimi veya PowerShell ile yapılabilir, ancak tümleşik çözümler gerekiyorsa .NET, Python ve Java gibi yerel programlama dili yazılım geliştirici setleri de kullanılabilir.

Azure Resource Manager şablonlarında temel sağlama kaynaklar bölümündedir ve tek tek kaynakların yapılandırması özellikler bölümünde tanımlanır. bir Azure Data Lake Storage 2. Nesil için yapılandırma aşağıdaki gibi görünür:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.MachineLearningServices/workspaces/datastores",
            "name": "[concat(parameters('workspaceName'), '/', parameters('datastoreName'))]",
            "apiVersion": "2020-05-01-preview",
            "location": "[parameters('location')]",
            "properties": {
                "DataStoreType": "adls-gen2",
                "SkipValidation": "[parameters('skipValidation')]",
                "ClientId": "[parameters('clientId')]",
                "ClientSecret": "[parameters('clientSecret')]",
                "FileSystem": "[parameters('fileSystem')]",
                "AccountName": "[parameters('accountName')]",
                "TenantId": "[parameters('tenantId')]",
                "ResourceUrl": "[parameters('resourceUrl')]",
                "AuthorityUrl": "[parameters('authorityUrl')]"
            }
        }
    ]
}

Önemli

Veri yönetimi giriş bölgesi, veri giriş bölgeleri veya veri uygulamaları (veri ürünleri oluşturan) gibi bulut ölçeğindeki her analiz katmanı, Azure Resource Manager veya Terraform gibi bildirim temelli bir dille tanımlanmalı, bir depoya iade edilmeli ve CI/CD işlem hatları aracılığıyla dağıtılmalıdır. Bu, ekiplerin Azure kapsamının altyapısında ve yapılandırmasında yapılan değişiklikleri izlemesine ve sürüm oluşturmasına olanak tanırken, farklı mimari düzeylerinin çevik bir şekilde otomatik halelenmesini destekler. Bu kılavuz, ekiplerin belirli Azure kapsamlarının durumuyla ilgili her zaman görünürlük elde etmek için Git depolarını kullanmasına yol açar.

İş akışları ve otomasyon

Ekipler, geliştirilen kodun hatasız ve üretime hazır olduğundan emin olmak için CI/CD işlem hatlarını birden çok aşamada kullanmalıdır. Geliştirme ortamına, test ortamına ve üretim ortamına sahip olmak en iyi uygulamalardan bazılarıdır. Bu aşamalar, her ortam için ayrı hizmetler kullanılarak Azure'a da yansıtılmalıdır.

Platform ekibi, bir kuruluş içinde hızla ölçeklendirilecek dağıtım şablonları sağlamak ve bakımını yapmak ve IaC'ye aşina olmayan ekipler için dağıtımları basitleştirmekle sorumludur. Bu şablonlar, senaryo içindeki yeni yapıtlar için temel görevi görür ve şirket içindeki en iyi uygulamaları ve ortak standartları temsil etmek için zaman içinde korunması gerekir.

Test ve üretim dağıtımları yalnızca yaygın en iyi yöntemleri (örneğin, Azure Resource Manager şablonları) zorlamak için yükseltilmiş izinlere sahip bir CI/CD işlem hattı ve hizmet bağlantısı aracılığıyla yönetilmelidir.

Dikkat

Veri uygulaması ekiplerinin yalnızca test ve üretim ortamlarına okuma erişimi olmalıdır ve bu ortamlara yapılan dağıtımlar yalnızca yükseltilmiş izinlere sahip CI/CD işlem hatları ve hizmet bağlantıları aracılığıyla yürütülmelidir. Üretim yolunu hızlandırmak için veri uygulaması ekiplerinin geliştirme ortamına yazma erişimi olmalıdır.

Sonraki adımlar

Platform otomasyonu