ARM şablonları nelerdir?

Buluta geçiş sayesinde, birçok ekip çevik geliştirme yöntemlerini benimsemiştir. Bu ekipler, süreçleri hızla yinelemektedir. Ekiplerin çözümlerini tekrar tekrar buluta dağıtmaları ve altyapılarının güvenilir bir durumda olduğundan emin olmaları şarttır. Altyapı yinelemeli işlemin bir parçası haline geldiği için, işlemler ve geliştirme arasındaki bölme kayboldu. Teams, birleşik bir işlem aracılığıyla altyapıyı ve uygulama kodunu yönetmeniz gerekir.

Bu zorlukların üstesinden gelmek için dağıtımları otomatikleştirebilir ve kod olarak altyapı yöntemini kullanabilirsiniz. Kodda, dağıtılması gereken altyapıyı tanımlarsınız. Altyapı kodu projenizin bir parçası haline gelir. Uygulama kodu gibi, altyapı kodunu bir kaynak deposunda depolar ve sürümü. Takımınızda herhangi biri kodu çalıştırabilir ve benzer ortamları dağıtabilir.

Altyapıyı Azure çözümleriniz için kod olarak uygulamak üzere Azure Resource Manager şablonları (ARM şablonları) kullanın. Şablon, projeniz için altyapıyı ve yapılandırmayı tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Şablon, dağıtmak istediğiniz öğeyi oluşturmaya yönelik programlama komutları dizisini yazmak zorunda kalmadan bu öğeyi belirtmenize imkan tanıyan bildirim temelli söz dizimini kullanır. Şablonda, dağıtılacak kaynakları ve bu kaynakların özelliklerini belirtirsiniz.

Bıcep adlı, bir JSON şablonu geliştirmek için kullanılan yeni bir dil sunuyoruz. Bıcep dosyaları ve JSON şablonları aynı yetenekleri sunar. Şablonları iki dil arasında dönüştürebilirsiniz. Bıcep, şablon oluşturmak için kullanımı kolay olan bir sözdizimi sağlar. Daha fazla bilgi için bkz. bicep nedir?.

ARM şablonlarına nasıl başlabileceğinizi öğrenmek için aşağıdaki videoya bakın.

ARM şablonlarını neden seçmelisiniz?

ARM şablonlarını kullanma ve kod hizmetleri olarak diğer altyapılardan biri arasında seçim yapmaya çalışıyorsanız, şablonları kullanmanın aşağıdaki avantajlarını göz önünde bulundurun:

  • Bildirime dayalı sözdizimi: ARM şablonları, tüm Azure altyapısını bildirimli olarak oluşturmanıza ve dağıtmanıza olanak tanır. Örneğin, yalnızca sanal makineler, aynı zamanda ağ altyapısı, depolama sistemleri ve ihtiyacınız olabilecek diğer kaynaklar için de dağıtım yapabilirsiniz.

  • Tekrarlanabilir sonuçlar: altyapınızı geliştirme yaşam döngüsü boyunca sürekli olarak dağıtın ve kaynaklarınızın tutarlı bir şekilde dağıtılmasını sağlayabilirsiniz. Şablonlar, aynı şablonu birçok kez dağıtabileceğiniz ve aynı durumda aynı kaynak türlerini alabileceği anlamına gelen ıdempotent. Güncelleştirmeleri temsil etmek için çok sayıda ayrı şablon geliştirmek yerine istenen durumu temsil eden bir şablon geliştirebilirsiniz.

  • Orchestration: sıralama işlemlerinin karmaşıklıkları hakkında endişelenmeniz gerekmez. Kaynak Yöneticisi, birbirine bağlı kaynakların dağıtımını doğru sırada oluşturulacak şekilde düzenler. Mümkün olduğunda, dağıtımlarınızın seri dağıtımlardan daha hızlı tamamlanabilmesi için Kaynak Yöneticisi Kaynakları paralel olarak dağıtır. Şablonu, birden çok zorunlu komut yerine bir komut aracılığıyla dağıtırsınız.

    Şablon dağıtımı karşılaştırma

  • Modüler dosyalar: şablonlarınızı daha küçük, yeniden kullanılabilir bileşenlere bölebilir ve dağıtım zamanında birbirine bağlayabilirsiniz. Ayrıca, bir şablonu başka bir şablon içinde iç içe geçirebilirsiniz.

  • Herhangi bir Azure kaynağı oluşturun: şablonlarda yeni Azure hizmetlerini ve özelliklerini hemen kullanabilirsiniz. Kaynak sağlayıcısı yeni kaynakları kullanıma sunarak, bu kaynakları şablonlar aracılığıyla dağıtabilirsiniz. Yeni hizmetleri kullanmadan önce araçların veya modüllerin güncelleştirilmesini beklemeniz gerekmez.

  • Genişletilebilirlik: dağıtım betikleriile şablonlarınıza PowerShell veya bash betikleri ekleyebilirsiniz. Dağıtım betikleri, dağıtım sırasında kaynakları ayarlama yeteneğinizi genişletmenizi sağlar. Bir betik, şablona dahil edilebilir veya bir dış kaynakta depolanabilir ve şablonda başvurulur. Dağıtım betikleri, uçtan uca ortam kurulumunuzu tek bir ARM şablonunda tamamlamanıza olanak sağlar.

  • Test etme: Bu şablonu ARM şablon aracı seti (ARM-TTK) ile test ederek, şablonunuzun önerilen kurallara uyduğundan emin olabilirsiniz. Bu test seti, GitHub'ten indirebileceğiniz bir PowerShell betiğdir. Araç seti, şablon dilini kullanarak uzmanlık geliştirmenizi kolaylaştırır.

  • Değişiklikleri Önizle: şablonu dağıtmadan önce değişikliklerin önizlemesini almak için ne yapılır işlemini kullanabilirsiniz. Bununla birlikte, hangi kaynakların oluşturulacağını, güncelleştirileceğini veya silineceğini ve değiştirilecek kaynak özelliklerini görürsünüz. Durum işlemi ortamınızın geçerli durumunu denetler ve durumu yönetme ihtiyacını ortadan kaldırır.

  • Yerleşik doğrulama: şablonunuz yalnızca doğrulama işlemi yapıldıktan sonra dağıtılır. Kaynak Yöneticisi dağıtımın başarılı olduğundan emin olmak için dağıtımı başlatmadan önce şablonu denetler. Dağıtımınız, yarı tamamlanmış bir durumda durmak daha az olabilir.

  • İzlenen dağıtımlar: Azure Portal dağıtım geçmişini gözden geçirebilir ve şablon dağıtımı hakkında bilgi alabilirsiniz. Dağıtılan şablonu, geçirilen parametre değerlerini ve tüm çıktı değerlerini görebilirsiniz. Kod hizmetleri olarak diğer altyapı Portal üzerinden izlenmez.

    Dağıtım geçmişi

  • Kod olarak ilke: Azure ilkesi , idare otomatikleştiren kod çerçevesi olarak bir ilkedir. Azure ilkeleri kullanıyorsanız, ilke düzeltme, şablonlar aracılığıyla dağıtıldığında uyumlu olmayan kaynaklar üzerinde yapılır.

  • Dağıtım planları: Microsoft tarafından, mevzuat ve uyumluluk standartlarını karşılamak için sunulan planların avantajlarından yararlanabilirsiniz. Bu planlar, çeşitli mimarilere yönelik önceden oluşturulmuş şablonlar içerir.

  • CI/CD tümleştirmesi: şablonları, sürekli tümleştirme ve sürekli DAĞıTıM (CI/CD) araçlarınızla tümleştirebilir. Bu, hızlı ve güvenilir uygulama ve altyapı güncelleştirmelerine yönelik yayın işlem hatlarınızı otomatikleştirebilirler. Azure DevOps ve Kaynak Yöneticisi şablon görevi kullanarak, ARM şablon projelerini sürekli olarak derlemek ve dağıtmak için Azure Pipelines kullanabilirsiniz. Daha fazla bilgi edinmek için bkz. işlem hatları ve öğretici Ile vs projesi : Azure Pipelines Azure Resource Manager şablonlarının sürekli tümleştirilmesi.

  • Dışarı aktarılabilir kod: kaynak grubunun geçerli durumunu dışarı aktararak veya belirli bir dağıtım için kullanılan şablonu görüntüleyerek mevcut kaynak grubu için bir şablon alabilirsiniz. Dışarı aktarılan şablonu görüntülemek şablon söz dizimi hakkında bilgi edinmek için yararlı bir yoldur.

  • yazma araçları: şablonları Visual Studio Code ve şablon aracı uzantısıyla yazabilirsiniz. IntelliSense, sözdizimi vurgulama, çevrimiçi Yardım ve diğer birçok dil işlevini edinirsiniz. Visual Studio Code ek olarak, Visual Studiode kullanabilirsiniz.

Şablon dosyası

Şablonunuzda, JSON özelliklerini genişleten şablon ifadeleri yazabilirsiniz. Bu ifadeler Kaynak Yöneticisi tarafından sunulan işlevleri kullanır.

Şablon aşağıdaki bölümlere sahiptir:

  • Parametreler -dağıtım sırasında, aynı şablonun farklı ortamlarla kullanılmasına izin veren değerler sağlar.

  • Değişkenler -şablonlarınız için yeniden kullanılan değerleri tanımlayın. Parametre değerlerinden oluşturulabilirler.

  • Kullanıcı tanımlı işlevler -şablonunuzu basitleştiren özelleştirilmiş işlevler oluşturun.

  • Kaynaklar -dağıtılacak kaynakları belirtin.

  • Çıktılar -dağıtılan kaynaklardan değer döndürür.

Şablon dağıtımı işlemi

Bir şablonu dağıtırken Kaynak Yöneticisi şablonu REST API işlemlerine dönüştürür. Örneğin, Resource Manager aşağıdaki kaynak tanımına sahip bir şablonu aldığında:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2019-04-01",
    "name": "mystorageaccount",
    "location": "westus",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "StorageV2",
    "properties": {}
  }
]

Tanımı aşağıdaki REST API işlemine dönüştürerek Microsoft.Storage kaynak sağlayıcısına gönderir:

PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2019-04-01
REQUEST BODY
{
  "location": "westus",
  "sku": {
    "name": "Standard_LRS"
  },
  "kind": "StorageV2",
  "properties": {}
}

Kaynak için şablonda ayarladığınız Apiversion 'ın Rest IŞLEMI için API sürümü olarak kullanıldığını unutmayın. Şablonu tekrar tekrar dağıtabilir ve güvenle çalışmaya devam edecektir. Aynı API sürümünü kullanarak, sonraki sürümlerde kullanıma sunulmuş olabilecek son değişiklikler hakkında endişelenmeniz gerekmez.

Bir şablonu dağıtmak için, aşağıdaki seçeneklerden birini kullanın:

Şablon tasarımı

Şablonları ve kaynak gruplarını tanımlama şekli tamamen size ve çözümünüzü yönetme biçiminize bağlıdır. Örneğin, üç katmanlı uygulamanızı tek bir şablondan tek bir kaynak grubuna dağıtabilirsiniz.

üç katmanlı şablon

Ancak, bütün altyapınızı tek bir şablonda tanımlamak zorunda değilsiniz. Genellikle, en uygun seçenek dağıtım gereksinimlerinizi hedeflenen, amaca yönelik bir dizi şablona bölüştürmektir. Bu şablonları farklı çözümler için kolayca yeniden kullanabilirsiniz. Belirli bir çözümü dağıtmak için, tüm gerekli şablonların bağlantılarını içeren bir ana şablon oluşturursanız. Aşağıdaki görüntüde üç katmanlı çözümün iç içe üç şablon içeren ana şablon aracılığıyla nasıl dağıtıldığı gösterilmektedir.

iç içe geçmiş şablon

Katmanlarınızın farklı yaşam döngülerine sahip olacağını düşünüyorsanız, üç katmanı farklı kaynak gruplarına dağıtabilirsiniz. Kaynaklar diğer kaynak gruplarındaki kaynaklara bağlanmaya devam edebilir.

katman şablonu

İç içe geçmiş şablonlar hakkında daha fazla bilgi için bkz. Azure Resource Manager ile bağlı şablonları kullanma.

Şablonları paylaşma

Şablonlarınızı oluşturdukta, bunu kuruluşta diğer kullanıcılarla paylaşmak da iyi olabilir. Şablon özellikleri, bir şablonu kaynak türü olarak depolamaya olanak sağlar. Şablon özelliklerine erişimi yönetmek için rol tabanlı erişim denetimi kullanırsınız. Şablon özelliklerine okuma erişimi olan kullanıcılar bunu dağıtabilirsiniz ancak şablonu değiştiremez.

Bu yaklaşım, şablonlarınızı, kuruluş standartlarınızı uygun şekilde güvenle paylaşabilirsiniz.

Sonraki adımlar