Automating Infrastructure Deployment with Azure ARM Şablons
Bulut altyapısı yönetimi, geliştiriciler ve IT operasyonlarının tanımlanması, dağıtma ve Azure kaynaklarını yapılandırılabilir bir çözüm için yapılandırarak yapılandırılmış bir JSON belgesinde, ARM şablonları yapılandırın ve manuel olarak doğal olarak risk edin.Bu makale temel kavramları, pratik dağıtım stratejileri, gelişmiş teknikleri ve gelişmiş teknikleri, gelişmiş teknikleri ve kanıtlanmış uygulamaları analiz eder.Ingerekli bir ölçümde çözümün çözümün durumunu ifade ederek, ARM şablonları yapılandırın.
Azure ARM Şablonları Nedir?
Azure ARM şablonu, Azure kaynaklarının bir setini ilan eden JavaScript Object Notation (JSON) dosyasıdır - sanal makineler, sanal ağlar, depolama hesapları, veritabanı ve uygulama hizmetleri - ve yapılandırmaları.Fed, [FONTT:0]|[FLT 1:2) kaynaklarına ihtiyaç duyduklarında, istenen durumu nasıl kıyaslar ve sonuçları ile ilgili raporlar.
ARM şablonları:0)idempotent[Dönemli: Aynı şablonları birden fazla kez dağıtmak, parametrelerin değişmediği sürece, sürekli entegrasyon ve sürekli teslimat (CI/CD) boru hatları için önemlidir.
Her şablon bir kaynak grubu veya abonelik için kapsamınıyor ve diğer şablonları referanslayabiliyor - modüler, koskolanabilir mimarilere izin veriyor.Tek bir test ortamı veya çoklu bölge üretim ağı düzenlemeniz olsun, ARM şablonları Azure ayak izini yönetmek için tutarlı ve denetim edilebilir bir mekanizma sağlar.
ARM Şablonları Kullanımının Avantajları
ARM şablonlarını benimseyen kuruluşlar hem operasyonel verimliliği hem de yönetişim geliştiren birkaç ölçülebilir fayda deneyimliyor.
Bilinç Across Environments
Kılavuz kaçınılmaz olarak sürüklenme - gelişim, yönlendirme ve üretim arasındaki farklı konfigürasyonlar. ARM şablonlar tek bir gerçek kaynağı uygular.Aynı şablonları çevreye özgü parametrelerle dağıtdığınızda, alt kaynak yapılandırmasının aynı olduğunu garanti edersiniz.Bu tutarlılık “benim makinemde işlerimizi azaltır” sorunlarım ve silmeyi basitleştirir.
CI/CD boru hatları için Otomasyon
ARM şablonları Azure DevOps ile sorunsuz bir şekilde entegre edilir, GitHub Actions, Jenkins ve diğer boru hatları araçları otomatik olarak kod işleme, program tabanlı yenilemeler veya manuel onaylar. Bu otomasyon, sürüm döngüleri ve ücretsiz operasyonları ekipleri tekrarlanan görev yürütmeden hızlandırır. Çiftliği altyapı testi ve geçerlilik ile tamamen otomatik boru hatları modern bulut mühendisliğinin arka kemiği haline gelebilir.
Version Control and Denetim
Çünkü ARM şablonları açıkça JSON dosyaları, doğal olarak Git bazlı iş akışlarına uygundurlar. altyapı tanımına her değişiklik takip edilir, ekiplerin tarihe incelemesine izin verir, revizyonları karşılaştırır ve Azure Aktiviteleriyle bir araya gelir.Ins ile birlikte, tam olarak hangi şablon oluşturmak veya değiştirmek için kullanılır, bir kaynağa uyum ve denetim gereksinimlerine uygun olarak yapılandırabilirsiniz.
Hız ve Paralelleştirme
ARM şablonları Azure'un yerli orkestrasyon motoruna bağımlılıkların izin verdiği paralel olarak kaynak dağıtmayı desteklemektedir. manuel olarak ayarlanacak saatler kadar uzatılabilir, aynı şablon aynı anda birden çok bölgeye aynı çatıları dağıtmak için parametrelenebilir, hızlı coğrafi genişleme veya felaket kurtarma senaryolarına izin verebilir.
Maliyet Kontrolü ve Yönetişim
Kaynak boyutlarını tanımlamak için, SKU'lar ve şablon içindeki etiketler, kuruluşlar maliyet merkezlerine, geri yüklemelere ve otomasyon kurallarına uymaya yönelik politikaları uygular. Şablonlar Azure Policy ile birlikte, her ortamın iç güvenlik ve maliyet kısıtlamalarına uymasını sağlamak için birleştirilebilir.
Bir ARM Şablonu Anatomisi
Bir ARM şablonunun yapısını anlamak, etkili kullanıma yönelik ilk adımdır. JSON dosyası birkaç bölüm halinde düzenlenir, her biri belirli bir rol oynar.
Schema ve Content Version
Her şablon, şablon dili versiyonunu tanımlayan bir özellik ile başlar ve iç sürüme devam eden bir mülk Azure Resource Manager, şablonun yapısını doğrulamaya yardımcı olur.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
...
}
Parametreler
[[Katılım zamanında tedarik edilebilir girişleri tanımlar.Bu, yöneticilere ilişkin notlar, konum, kaynak isimleri ve SKU seçimleri içerir. Varsayılan değerler dağıtımları basitleştirmek için kullanılabilir.
Değişkenler Değişkenler
Değişkenler, şablon ifadelerini basitleştirmek, tekrar azaltmak ve parametrelere veya diğer değişkenlere bağlı olarak hesaplanan değerleri kullanmak için kullanılır. Örneğin, eşsiz kaynak tanımlayıcıları oluşturmak için çevre adı ile bir isim olarak adlandırılabilirsiniz.
Kaynaklar Kaynakları Kaynaklar
Şablonun özü, siparişi yerine getirmek için mülkdür. Her kaynak nesnesi, kaynak sağlayıcı, tip, API versiyonu, adı, konum, özellikleri ve bağımlılıkları belirtir. Azure Resource Manager, sipariş etmek için mülk kullanır - diğerlerine bağlı olarak dağıtılması gereken kaynaklar ön koşullara kadar dağıtılmaz.
Çıktılar
Dağıtım sonrası geri dönüş değerleri, oluşturulan bir web uygulamasının tam nitelikli domain adı veya bir veritabanının bağlantı dizesi gibi. Bu çıktılar sonraki boru hatları tarafından tüketilebilir veya parametreler olarak kullanılmak üzere şablonlar ile bağlanabilir.
Nasıl bir ARM Şablonu
ARM şablonlarının işleştirilmesi birkaç arayüz üzerinden yapılabilir, her biri farklı iş akışlarına uygundur. Aşağıda her biri için en iyi uyumlu adımlarla birlikte en yaygın yöntemler vardır.
Azure Portalını kullanarak
Hızlı, tek çıkış veya öğrenme amaçları için, Azure Portal, bir “Özel bir şablon” bıçağı sunar. JSON'u doğrudan veya bir dosyadan çıkarabilirsiniz. portal daha sonra dağıtım yapmadan önce geçerli bir özetletir.Bu yöntem erişilebilir olsa da, otomasyon eksikliği nedeniyle üretim hatları tavsiye edilmez.
Azure CLI kullanarak
Azure Komutanlığı-Line Interface (CLI) kaynak grubu kapsamılandırılmış dağıtımlar için komut sunar. Tipik bir komut şöyle görünecektir:
az deployment group create \
--resource-group myResourceGroup \
--template-file azuredeploy.json \
--parameters @parameters.json
Kuantum sözcülüğü ve parametreleri dağıtıma başlamadan önce doğrulamaktadır ve terminale doğru ilerler. Azure CLI CI/CD senaryolarında yaygın olarak kullanılmaktadır, çünkü Linux, Mac ve Windows ajanları üzerinde çalıştırılabilir.
Azure PowerShell kullanarak
PowerShell kullanıcıları, Azure Automation Run kitaplarıyla entegre etme yeteneğine sahip olan USBT:8. cmdlet.The experience is benzer to the CLI, with the added benefits and the ability to integrate with Azure Automation runbooks.
REST API'si kullanarak
Maksimum kontrol veya özel araç için, her dağıtım işlemi Azure Resource Manager REST API aracılığıyla kullanılabilir. Bu, portal, K, ve PowerShell kullanımının temel mekanizmasıdır, ancak geliştiricilerin Microsoft boru hatlarına girmesine izin verir.
İşbirlikleri
Aracın ne olursa olsun, dağıtım süreci tutarlı bir model takip eder:
- [FONT:0]Define veya ARM şablonu[Dönetici: 1 ) satın almak - ya mevcut bir kaynak grubundan gelen ihracat veya Azure kütüphanesinden hızlı bir başlangıç şablonu kullanmak ([Dönem:2).Azure Quickstart Şablonları).
- [FONT=0)Öyle parametreleri[[[Dönemli parametreler[Dönler:0)[[Dönemli parametreler[Dönemli parametreler[Dönler) – komut satırında parametre değerleri kazanır veya geçer. Sert kodlama sırlarından kaçının; Azure Key Vault referanslarını kullanın.
- [FONT=0]Zeminler, gerçek dağıtımdan önce hata ve eksik bağımlılıkları yakalamak için (CLI) veya [[Göneticileri yakalamak için.
- [FONT=0) Dağıtımı ([Dönetici) yerine getirir (Dönetici) veya [[Döneticileri) veya [[Göneticileri, (örneğin,) veya [[Göneticileri, s.
- [FONT=0]Monitor ve doğru – portaldaki dağıtım durumunu kontrol edin, Azure CLI veya boru logları. Tüm kaynakların amaçlanan konfigürasyon ve bu bağlantı ile yaratıldığını doğrulama.
ARM Şablonlar için En İyi Uygulamalar
Etkili ARM şablonları yazmak sadece sözcülerin bilgisinden fazlasını gerektirir. Aşağıdaki uygulamalar üretim ortamlarında kanıtlanmıştır ve Azure mühendisliği ekipleri tarafından önerilir.
Linked Şablonlarla modülerize
Büyük, monolithic şablonları, altyapınızı mantıksal bileşenlere ayırıp yeniden kullanabilmek için zor hale gelir - ağlayarak, depolama, uygulama - ve onlarla bağlantılı şablonları kullanarak referanslar. Bu yaklaşım, modülleri bağımsız olarak kendi ve sürümlerini sürümlerini bağımsız olarak kullanmaya olanak sağlar.Kulaklık ↑ mülk şablonunun URL'sine işaret etmek için.
Her zaman Temsil Değerleri Sağlayın
Güvenli bir şekilde geri dönebilen parametreler, makul bir varsayılana geri dönmeli, aETHFLT:14 dahil edilmelidir. Bu, her bir SKU veya konum bilmeyen geliştiriciler için dağıtımı basitleştirir. Ancak, şifre gibi hassas değerler için varsayılanlardan kaçınır - yerine Key Vault referanslarını kullanır.
Expressions ve Fonksiyonlar
ARM şablonları zengin bir şablon işlevleri seti ile gelir - örneğin, ESRAT:16 gibi, depolama hesaplarını veya eşsizliği gerektiren diğer kaynakları kullanmak için kullanılabilir. - Bu, dinamik isimler, özellikler ve koşullara izin verir. Örneğin,TELFLT:20, küresel olarak eşsiz, deterministic hash.
Şablonda Rol Tabanlı Erişim Kontrolü (RBAC)
İzin vermek için dağıtımdan sonra beklemeyin. RBAC atamaları doğrudan ARM şablonınızda bulunan HES:21'i kullanarak bekleyin.Bu, her ortamın mevcut olan doğru izinleri almasını sağlar, güvenlik ve iş sonrası yapılandırmanın penceresini azaltır.
Ne ile Geçerlilik
Mevcut kaynakları değiştirebilecek bir dağıtım yapmadan önce, “if” işlemini kullanın ([DÜŞÜNCÜŞÜNCÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜN) Bu, şablonların önbelleklemesini sağlar - eklenmeleri, değişiklikler ve dele- onları uygulamadan.
Etiketler Consistally
Standart bir etiket (örneğin, [[Dönetici:) ve kullanım için şablonunuzdan elde edilebilir.Fort=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=
Kaynak Kontrollü Dükkan Şablonları
ARM şablonları uygulama kodu olarak uygulayın. Onları bir Git havuzunda, aynı şube ile birlikte kullanın, kod incelemesi ve yazılım için kullanılan modeller. Host the şablonları halka açık bir yerde (örneğin bir GitHub repo veya Azure Storage blob) bağlantılı şablonları kullanmayı planlıyorsanız, Azure Resource Manager dağıtım sırasında referanslı dosyaları indirmeli.
Gelişmiş Senaryolar
Temel dağıtımlarla rahat olduğunuzda, bu gelişmiş kalıpların otomasyon ve esnekliği daha da artıracağını düşünün.
Azure Politikasını ARM Şablonları ile Kullanımı
Azure Politikası abonelikleri arasındaki uyum kuralları uygulanabilir. ARM şablonları ile dağıtıldığında, politikalar belirli kaynak yapılandırmalarını inkar edebilir veya denetim edebilir.Sineformasyonlarınızı politika farkındalığına sahip olunması için tasarlayın - örneğin, kaynak SKU'ları politika ihlallerinden dolayı başarısız dağıtımları engeller ve her dağıtımın kurumsal yönetim gereksinimleriyle karşı karşıya kalmasını sağlar.
Azure DevOps Boru hatlarıyla bütünleşme
altyapı için tam bir CI/CD boru hattı Azure Boruları kullanılarak inşa edilebilir. Boru hattı aşaması tipik olarak şunları içerir:
- En son şablonları kaynak kontrolünden çıkarın
- Koşu ve doğrulama testleri
- Bir gelişim ortamına alışmak, iş yerine gelir.
- Sigara testleri veya entegrasyon testleri, dağıtılan kaynaklara karşı idam etmek
- Aynı şablonu onay aldıktan ve üretime teşvik etmek için teşvik etmek ve
Dükkan ortamına özel parametre dosyaları ayrı şubelerde veya değişken gruplar halinde şablonun kendisini çevre-agnostic tutmak için kullanılabilir. Azure Key Vault, boru hattı sırasında güvenle sırları almak için entegre edilebilir.
Aklıtlı Özel Senaryo Hazırlanır
ARM şablonları kaynak düzenlemesini yaparken, genellikle oluşturulan bir VM içinde yapılandırma senaryolarını uygulamanız gerekir.TheurFLT:30) Kaynak, özellikle Özel script Dahiliye Geçer, PowerShell veya Bash senaryolarını URL'ler aracılığıyla gömmek veya referanslamanız gerekir. Bu model, platformlara katılmak veya tek bir güvenlik duvarı kuralı ayarlamak için kullanılır - tüm bir parçası, idempotent dağıtım.
Blueprints ile Entire Çevreleri İşliyor
Azure Blueprints, standart bir yönetim üssü ile yeni bir abonelik oluşturmak gibi - Blueprints, yeni projeler veya iş birimlerinde özellikle kullanışlı bir bileşen olarak içeren daha yüksek seviyeli bir soyutlama sağlar.
Ortak Pitfalls ve Them'dan Nasıl Kaçırmak
Deneyimli mühendisler bile ARM şablonları ile ilgili sorunlarla çalışır. Bu ortak ağrı noktalarının farkında olmak, sorun giderme saatlerini kurtarabilir.
- [FONT:0) Zor kodlanmış isimler[[Dönetici: 1) Mevcut kaynaklarla çatışmanın her zaman [[FONTFLT:31) veya rastgeleleştirilmiş bir ekle bir sözleşme ile bir araya getirilmesi.
- [[DüzgÜ:0)Incorrect API versiyonları[[Dönemli API sürümleri[[Döntgen:0)[[Dönemli API sürümleri[[[Dönemli) dağıtım başarısızlıklarına veya eksik özelliklere neden olur. API sürümünü test ettiğiniz ve sadece serbest bırakma notlarını gözden geçirdikten sonra güncellemeniz gerekir.
- [FONT:0)Circular bağımlılıklar[Döneticiler arası], ARM şablonları yalnızca ileriye dönük bağımlılıklar destekler; B ve B'ye bağlı olarak, A. Rephanelerinizi döngüsü kırmaya yönlendiremezsiniz.
- [[Dönemli kaynak sınırları[[Döncükler veya bölge özelleştirilmiş SKU erişilebilirliği gibi) dağıtımdan önce kontenjanlar ve kullanımdan önce kullanım ve kullanımdan önce yararlanılan kaynaklarla ilgili ifadeler.
- [FONT:0)Mixing dağıtım modları[[Dönetici:0)) tarafından silinen bir kaynak grubu üzerinde kullanım modunda, bu kaynaklar yeşil alan grupları veya açık temizleme senaryoları için Rezerv tam modunda silinecektir.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Azure ARM şablonları, Microsoft Azure'da bulut altyapısını yöneten herkes için temel bir araçtır. tutarlı, otomatik ve denetim edilebilir bir dağıtımları tek bir sanal makineden küresel, çok katmanlı uygulama ağına ölçeklenebilir. Şablon yapısını, dağıtım yöntemlerini ve gelişmiş desenleri yönetmek için - bağlantılı şablonlar, CI/CD entegrasyonu ve özel uzantıları -teams, manuel düzenlemenin asla eşleşmeyebileceği bir operasyonel verimlilik seviyesine ulaşabilir.
Tam altyapı kodlanması yolculuğu bir gecede gerçekleşmez. Küçük başlayın: Mevcut bir kaynak grubu bir şablon olarak, değerlerini parametrelendirmek ve kaynak kontrolünü sağlamak için taahhüt eder. Gradually genişlet your library of reusable modülleri, bütünleme ve ne-if analysis into your pipeline, and implement declarative policies together your servers. with each iteration, your cloud deployments will become more reliable, and easier to management.
Daha fazla okuma için resmi [[Dönetici:0)ARM şablon belgeleri[Dönetici:2) ve [[Uygun Hızlı başlangıç Şablonları havuzu[Döneticileri ile birlikte), yüzlerce topluluk tarafından yapılan örneklerden yalnızca kaçınılmasıyla ilgili değildir. Otomasyon sadece manuel çalışmadan kaçınmakla ilgili değildir - modern yazılım teslimat talepleri ile hıza devam edebilecek bir yenilik temeli oluşturmakla ilgilidir.