Azure üzerinde Terraform: IaC için Pratik Bir Başlangıç Rehberi
Bu eğitim, altyapıyı otomatikleştirmek, tutarlılığı artırmak ve güvenli, ölçeklenebilir dağıtımlar için en iyi uygulamaları hayata geçirmek üzere Azure ile Terraform kullanmayı gösterir.
Azure portalında tıklaya tıklaya kaynakları elle oluşturup bir araya getirmeye çalıştıysanız, ben de oradaydım—ve bu iş çok hızlı şekilde yoruyor. İşte burada Terraform devreye giriyor. Altyapı-yazılım-olarak (IaC) aracı olan Terraform, bulut kurulumunuzu birkaç satır kodla tanımlayıp yönetmenizi sağlar.
Bu eğitimde odak noktamız Azure ile Terraform kullanımı olacak. Terraform'un ne olduğunu, Azure ekosisteminde nasıl çalıştığını ve pratik örneklerle nasıl başlayacağınızı adım adım anlatacağım. Ayrıca en baştan güvenli ve güvenilir dağıtımlar yapmanıza yardımcı olacak bazı en iyi uygulamaları da ele alacağız.
Azure ekosistemine yeniyseniz, bu Azure temelleri yolu, temel hizmetler ve ilkeler için yapılandırılmış bir giriş sunar.
Neden Azure üzerinde Terraform kullanmalı?
Terraform, HashiCorp tarafından geliştirilen, bildirime dayalı bir söz dizimiyle bulut altyapısını tanımlayıp yönetmenizi sağlayan açık kaynaklı bir IaC aracıdır. Microsoft Azure ile birlikte kullanıldığında, sanal ağlar, VM'ler ve veritabanları gibi kaynakları insan tarafından okunabilir yapılandırma dosyalarında betimlemenize olanak tanır.
Peki neden Azure ile Terraform? Cevap tutarlılık, ölçeklenebilirlik ve hız. İster tek bir VM başlatın ister karmaşık, çok katmanlı bir uygulamayı orkestre edin, Terraform süreci basitleştirir ve insan hatasını azaltır.
Terraform'a tamamen yenisiniz ise, bu Terraform başlangıç dostu rehberi, temel kavramları ve altyapıyı kodla yönetmek için nasıl kullanmaya başlayacağınızı açıklar.
Azure üzerinde Terraform'un Temel Kavramları
Terraform'un Azure ile entegrasyonu, altyapı yönetimini sezgisel ve güçlü kılan bir dizi özellik sunar. Temel bileşenlere ve mevcut Terraform kaynak türlerine yakından bakalım.
Bildirimsel altyapı yönetimi
Terraform'un bildirimsel yaklaşımı, HashiCorp Configuration Language (HCL) kullanarak .tf dosyalarında Azure altyapınızın nasıl görünmesi gerektiğini tanımlamanıza olanak tanır.
Örneğin bir Azure VM'ini boyutu, konumu ve ağ ayarlarıyla belirtebilir, Terraform ise onu oluşturmanın nasılını halleder. Hızlı bir bakış:
resource "azurerm_virtual_machine" "example" {
name = "my-vm"
location = "East US"
resource_group_name = "my-resource-group"
vm_size = "Standard_D2s_v3"
network_interface_ids = [azurerm_network_interface.example.id]# ... other necessary configurations like OS disk, admin details}Altyapı:
Yukarıdaki tanım, idempotentliği sağlar—aynı kodu tekrar tekrar çalıştırmak, yinelenme veya hata olmadan aynı sonucu verir.
Şimdi, bu bildirime dayalı yaklaşımın işlemesini sağlayan temel Terraform kavramlarını parçalara ayıralım.
Terraform durumu (.tfstate)
terraform.tfstate dosyası, Terraform'un bildirimsel modelinin kalbidir. Azure kaynaklarınızın mevcut durumunu—neyin dağıtıldığını, yapılandırmalarını ve ilişkilerini—kayda geçiren bir JSON dosyasıdır.
terraform apply çalıştırdığınızda, Terraform .tf dosyalarınızı (istenen durum) .tfstate dosyasıyla (gerçek durum) karşılaştırarak yapılacak değişiklikleri belirler. Örneğin kodunuzda bir VM'in boyutunu güncellerseniz, Terraform .tfstate dosyasını kontrol eder ve Azure'da yalnızca ilgili niteliği değiştirir.
Bu dosyayı yerelde saklayabilirsiniz; ancak ekipler için iş birliği ve çakışmaları önleyen durum kilitlemeyi etkinleştirmek adına Azure Blob Storage kullanın.
Terraform değişkenleri (.tfvars)
Değişkenler yapılandırmalarınızı esnek ve yeniden kullanılabilir kılar. variables.tf ve terraform.tfvars içinde tanımlanırlar; kaynak adları veya bölgeler gibi değerleri parametrikleştirmenize izin verirler.
Örneğin:
# variables.tf
variable "location" {
type = string
default = "East US"
description = "The Azure region where resources will be deployed."
}# terraform.tfvars (for a specific environment, e.g., production)
location = "West US"
# main.tf
resource "azurerm_resource_group" "example" {
name = "my-rg"
location = var.location
}Altyapı:
terraform.tfvars dosyası varsayılanları geçersiz kılar; böylece çekirdek .tf dosyalarını düzenlemeden aynı kodu farklı bölgelerde dağıtabilirsiniz. Bu yaklaşım, birden çok ortamı (örn. dev, prod) yönetmek için kullanılabilir.
Terraform yapılandırma dosyaları (.tf)
Bu dosyalar HCL ile yazılmış altyapı kodunuzu içerir. Kaynakları, sağlayıcıları, modülleri ve daha fazlasını tanımlarlar. Hepsini tek bir main.tf içinde tutabilir veya daha netlik ve düzen için birden fazla dosyaya (örn. variables.tf, outputs.tf, network.tf, compute.tf) bölebilirsiniz.
Terraform plan
Değişiklikleri uygulamadan önce terraform plan komutu, .tf dosyalarınız ile .tfstate arasındaki farka göre Terraform'un neler yapacağını—kaynak oluşturma, güncelleme veya silme—önizlemede gösterir. Olası sorunları erken yakalayan detaylı bir önyürütme gibidir.
Terraform apply
terraform apply komutu, terraform plan ile belirlenen değişiklikleri yürütür, Azure'u istenen durumla eşitler ve .tfstate dosyasını yeniler. Uygulamadan önce onay istenir; bu da bir güvenlik ağı sağlar.
Çalışma alanları (Workspaces)
Terraform çalışma alanları, tek bir .tf dosya setiyle birden çok ortamı (örn. dev, staging, prod) yönetmenize olanak tanır. Her çalışma alanının kendi .tfstate dosyası vardır; böylece benzer altyapıları farklı yapılandırmalarla (örn. dev ve prod için farklı VM boyutları) dağıtabilirsiniz.
Modüller, yeniden kullanılabilir Terraform kod paketleridir. Örneğin bir Azure sanal ağı için bir modül oluşturup projeler arasında yeniden kullanarak yinelemeyi azaltabilir ve standartlaşmayı artırabilirsiniz. Modülleri en iyi uygulamalar bölümünde daha ayrıntılı ele alacağız.
Bu kavramlar—.tfstate, .tfvars ve bildirimsel iş akışı—Azure altyapınızın öngörülebilir, yeniden üretilebilir ve kolay yönetilebilir olmasını sağlar.
Durum yönetimi ve iş birliği
terraform.tfstate dosyası, altyapınızın durumunu takip eder. Ekipler için bu dosyanın Azure Blob Storage üzerinde saklanması, paylaşılan erişim ve sürüm kontrolü sağlayan kritik bir en iyi uygulamadır. Bu uzak arka uç yapılandırması, tüm ekip üyelerinin altyapının tutarlı bir görünümüyle çalışmasını sağlar.
Azure Blob Storage gibi birçok uzak arka uç tarafından otomatik olarak sunulan durum kilitleme özelliği, birden çok ekip üyesi aynı anda Terraform komutları çalıştırmaya çalıştığında çakışmaları önleyerek veri bütünlüğünü sağlar.
Azure Blob Storage arka ucunu yapılandırmaya bir örnek:
terraform init komutunu bu yapılandırmayla çalıştırmadan önce, Azure depolama hesabını ve kapsayıcıyı manuel olarak veya ayrı bir Terraform yapılandırmasıyla oluşturmanız gerekir. Bu kurulum, Azure kaynaklarının güvenli ve iş birliğine dayalı yönetimini sağlar.
Sağlayıcı ekosistemi ve AzureRM
azurerm provider, Terraform'un Azure'a köprüsüdür; HCL'yi VM'ler, ağlar ve veritabanları gibi hizmetleri yönetmek için API çağrılarına çevirir.
Bilgi işlem (azurerm_linux_virtual_machine, azurerm_windows_virtual_machine)'den analitik (azurerm_synapse_workspace)'e kadar yüzlerce kaynak türünü destekler. Öne çıkan bazı özellikler:
Geniş kapsama: Sanal makineler, depolama hesapları, Azure Kubernetes Service (AKS), Azure SQL Database, MongoDB API ile Azure Cosmos DB, Azure Functions ve çok daha fazlası dahil olmak üzere çok çeşitli Azure hizmetlerini yönetin. azurerm sağlayıcısı, yeni Azure hizmetleri ve özellikleri kullanıma sunuldukça bunları desteklemek üzere aktif olarak geliştirilir.
Dinamik fonksiyonlar: Benzersiz adlar üretmek (örn. azurerm_resource_group.example.name) veya mevcut kaynaklar hakkında ayrıntı almak (örn. data.azurerm_virtual_network.existing.id) için sağlayıcı tanımlı fonksiyonları kullanın. Bu, daha dinamik ve akıllı yapılandırmalar sağlar.
Veri kaynakları:azurerm sağlayıcısı, mevcut Azure kaynakları hakkında bilgi almak için veri kaynaklarından yararlanır. Bu, mevcut Terraform yapılandırmanız tarafından sağlanmamış kaynaklara referans vermeniz gerektiğinde özellikle faydalıdır. Örneğin mevcut bir sanal ağın ayrıntılarını alarak yeni alt ağlar veya VM'ler dağıtabilir, VNet'i yeniden oluşturmadan ilerleyebilirsiniz.
Terraform'a dalmadan önce, Azure'u elle nasıl yapılandıracağınızı anlamak faydalıdır—bu başlangıç rehberi temel adımları anlatır.
Terraform-Azure Ortamı Kurulumu
Haydi pratiğe geçelim! Bu bölüm, Terraform'u Azure aboneliğinizle kullanmak için gereken ilk kurulum adımlarında sizi yönlendirir.
Kimlik doğrulama ve CLI araçları
Azure ile etkileşim kurmak için önce Azure Komut Satırı Arayüzü'nü (CLI) yükleyip yapılandırmanız gerekir. Azure CLI, kimlik doğrulama ve Azure kaynaklarınızı yönetmek için gereken araçları provdier. Kurulumdan sonra Azure hesabınıza giriş yapın:
Yukarıdaki komut, etkileşimli kimlik doğrulama için bir tarayıcı penceresi açar. Hızlı başvuru için, bu Azure CLI hızlı başvuru kağıdı komut satırı iş akışlarınızı kolaylaştırabilir.
Özellikle CI/CD boru hatlarında Terraform ile otomatik dağıtımlar için, Azure Active Directory (AAD) hizmet sorumluları (service principal) oluşturup kullanmanız şiddetle tavsiye edilir. Hizmet sorumluları, Terraform'un etkileşimli oturum açma gerektirmeden Azure aboneliğinizde güvenli ve programatik şekilde kimlik doğrulaması yapmasını sağlar.
Abonelik kapsamında "Contributor" rolüne sahip bir hizmet sorumlusu oluşturmak için şunu çalıştırın:
az ad sp create-for-rbac --name"http://myTerraformServicePrincipal"--role"Contributor"--scopes"/subscriptions/<your-subscription-id>"Altyapı:
Çıktı appId, password ve tenant (kiracı kimliği) değerlerini sağlayacaktır. Bunları Terraform için ortam değişkenleri olarak ayarlayabilirsiniz:
Tipik bir Terraform projesi, farklı kaynak türleri veya modüller için ayrı .tf dosyalarının bulunduğu yapılandırılmış bir dizin düzenini takip eder (örn. main.tf, variables.tf, outputs.tf, network.tf, compute.tf).
Herhangi bir Terraform projesine başlamak için proje dizininize gidip terraform init komutunu çalıştırın. Bu komut çalışma dizinini başlatır, gerekli sağlayıcı eklentilerini (ör. azurerm) indirir ve yapılandırmanızda tanımlandığı şekilde durum yönetimi için arka ucu kurar.
mkdir my-azure-terraform-project
cd my-azure-terraform-project
# Create your .tf files here
terraform initAltyapı:
Bu komut, tüm gerekli eklentilerin hazır olduğundan emin olarak dizininizi Terraform işlemlerine hazırlar.
Azure Kaynaklarını Sağlama
Bu bölümde, Terraform kullanarak yaygın Azure kaynaklarını sağlama konusunda pratik örnekler yer alıyor; kaynakların nasıl tanımlanıp programatik olarak dağıtılacağını gösteriyoruz.
Sanal ağlar ve alt ağlar
Terraform, Azure'da ağ altyapısını tanımlama ve dağıtma konusunda çok başarılıdır. Sanal ağları (VNet) kolayca tanımlayıp alt ağlara bölebilir, IP adres alanlarını ve ağ yalıtımını kontrol edebilirsiniz.
Terraform'un yerleşik bağımlılık yönetimi, kaynakların doğru sırayla oluşturulmasını sağlar; örneğin alt ağlar, üst VNet başarıyla oluşturulduktan sonra sağlanır. Bir örnek:
Terraform ile sanal makine (VM) sağlamak oldukça basittir. Dağıtım sonrası yapılandırma ve ilk kurulumları otomatikleştirmek için cloud-init betiklerinden yararlanabilirsiniz.
cloud-init, VM'nin ilk açılışında çalışan betikleri enjekte etmenize olanak tanır; böylece yazılım kurma, kullanıcı yapılandırma veya hizmet kurulumları gibi görevleri doğrudan Terraform yapılandırmanızdan yapabilirsiniz.
İşte Nginx kurmak için basit bir cloud-init betiğiyle bir Linux VM sağlama örneği:
Azure altyapınız büyüdükçe Terraform yapılandırmalarınızı modülerleştirmek; yeniden kullanım, bakım ve ölçeklenebilirlik için kritik hale gelir.
Modüller, birbiriyle ilişkili kaynakları ve yapılandırmalarını yeniden kullanılabilir birimlere kapsüller. Bu bölüm, Terraform kodunuzu modüller halinde nasıl yapılandıracağınız konusunda rehberlik sağlayacak ve bu modülleri ana yapılandırmalarınız içinde nasıl çağıracağınızı göstererek daha temiz ve düzenli bir kod tabanı oluşturmanıza yardımcı olacak.
Bu yapı, web uygulaması dağıtım mantığınızı farklı ortam veya projelerde yeniden kullanmayı kolaylaştırır.
Gelişmiş Terraform İş Akışları
Bu bölüm, temel kaynak sağlamanın ötesine geçerek altyapı dağıtımlarınızın esnekliğini ve gücünü artıran daha gelişmiş Terraform özelliklerini inceler.
Veri kaynakları ve dinamik yapılandırmalar
Terraform'daki veri kaynakları, hem Terraform tarafından yönetilen hem de yönetilmeyen mevcut kaynaklar hakkında bilgi almanıza olanak tanır. Bu, mevcut altyapıyla entegre olmak veya dinamik aramalar için son derece kullanışlıdır.
Dinamik yapılandırmalarla (for_each ve count gibi) birleştirildiğinde veri kaynakları, çeşitli koşullara ve kaynak erişilebilirliğine tepki verebilen son derece esnek ve uyarlanabilir Terraform betikleri oluşturmanıza imkân tanır.
Örnek: Mevcut bir VNet'i bulmak ve yeni bir alt ağ eklemek için Veri Kaynağı kullanma:
# Data source to fetch an existing Virtual Network
data "azurerm_virtual_network" "existing_vnet" {
name = "production-vnet"
resource_group_name = "production-network-rg"
}# Create a new subnet within the existing VNet
resource "azurerm_subnet" "new_app_subnet" {
name = "new-app-subnet"
resource_group_name = data.azurerm_virtual_network.existing_vnet.resource_group_name
virtual_network_name = data.azurerm_virtual_network.existing_vnet.name
address_prefixes = ["10.0.3.0/24"]}Altyapı:
Örnek: for_each ve bir harita değişkeni kullanarak birden fazla VM'in dinamik oluşturulması:
Sıkı uyumluluk ve yönetişim gerektiren kurumlar için HashiCorp Sentinel, Terraform Enterprise ile entegre olan (veya Terraform Cloud ile özelleştirilerek uyarlanabilen) bir kod olarak politika çerçevesi sunar.
Sentinel, altyapı sağlanmadan önce güvenlik, maliyet ve operasyonel en iyi uygulamaları zorlayan ayrıntılı politikalar tanımlamanıza olanak tanır.
Örneğin bir politika, belirli bir boyuttan daha büyük VM'lerin oluşturulmasını engelleyebilir veya tüm kaynaklarda belirli etiketlerin bulunmasını zorunlu kılabilir. Hazır politikalar uyumluluk standartlarını uygular, uyumsuz dağıtımların Azure ortamınıza hiç ulaşmamasını sağlar.
Maliyet optimizasyon stratejileri
Terraform, Azure Policy ile birlikte kullanıldığında Azure ortamınızda maliyet kontrollerini uygulamak için güçlü bir araç olabilir.
Kaynak SKU'larını kısıtlayan, maliyet tahsisi için etiketlemeyi zorunlu kılan veya pahalı kaynakların dağıtımını engelleyen Azure Politikaları tanımlayarak, doğrudan IaC iş akışlarınızda etkili maliyet tasarrufu önlemleri uygulayabilirsiniz.
Terraform ayrıca Azure Politikalarını dağıtıp yönetebilir; böylece yönetişim kurallarınızın sürüm kontrolüne tabi ve tutarlı şekilde uygulanmasını sağlar.
Örnek: Terraform ile bir Azure Politika Tanımı dağıtma:
resource "azurerm_resource_group" "policy_rg" {
name = "azure-policy-rg"
location = "global" # Policies are global resources}
resource "azurerm_policy_definition" "deny_large_vms" {
name = "deny-large-vm-skus"
policy_type = "Custom"
mode = "All"
display_name = "Deny creation of large VM SKUs (E-series)"
description = "This policy denies the creation of Azure Virtual Machines with SKUs from the E-series for cost management."
policy_rule = <<POLICY_RULE
{"if":{"allOf":[{"field":"type","equals":"Microsoft.Compute/virtualMachines"},{"field":"Microsoft.Compute/virtualMachines/sku.name","like":"Standard_E*"}]},"then":{"effect":"deny"}}
POLICY_RULE
}
resource "azurerm_policy_assignment" "deny_large_vms_assignment" {
name = "deny-large-vm-skus-assignment"
scope = "/subscriptions/${data.azurerm_subscription.current.id}" # Assign to entire subscription
policy_definition_id = azurerm_policy_definition.deny_large_vms.id
display_name = "Deny large VM SKUs"
}
data "azurerm_subscription" "current" {}Altyapı:
Bu kombinasyon, kurumsal maliyet politikalarını otomatik olarak uygulamanıza, aşırı harcamayı önlemenize ve kaynak verimliliğini teşvik etmenize olanak tanır.
CI/CD Entegrasyonu
Bu bölüm, altyapı değişikliklerini yazılım geliştirme yaşam döngünüzün kesintisiz bir parçası haline getirerek Terraform'u Sürekli Entegrasyon/Sürekli Teslim (CI/CD) boru hatlarınıza entegre etmeye odaklanır.
Azure DevOps boru hatları
Azure DevOps, CI/CD boru hatları oluşturmak için sağlam bir platform sunar. Yaygın bir iş akışı şunları içerir:
Başlatma (Initialize): Sağlayıcıları indirmek ve arka ucu kurmak için terraform init.
Plan: Yürütme planı oluşturup kaydetmek için terraform plan -out.
Gözden geçirme (manuel onay): Uygulamadan önce oluşturulan planın bir kişi tarafından onaylandığı aşama.
Uygula: Değişiklikleri yürütmek için terraform apply tfplan.
Azure DevOps'un uçtan uca CI/CD iş akışlarını uygulama dağıtımı için nasıl desteklediğinibu uygulamalı eğitimde keşfedebilirsiniz.
GitHub Actions
GitHub Actions, Terraform iş akışlarınızı doğrudan GitHub depolarınız içinde otomatikleştirmenin esnek ve güçlü bir yolunu sunar. Push veya pull request gibi olaylara yanıt veren YAML dosyaları kullanır.
GitHub Actions kullanarak temel bir Terraform dağıtımı için adımlar şunlardır:
İş akışı tetikleyicisini tanımlayın: Genellikle belirli bir dala (main) on: push.
Bu bölüm, Azure üzerinde Terraform ile çalışırken güvenli veri yönetimi ve ağ erişimine vurgu yaparak güvenlik ve uyumlulukla ilgili hususları öne çıkarır.
Azure Key Vault entegrasyonu
API anahtarları, bağlantı dizeleri, veritabanı kimlik bilgileri ve sertifikalar gibi hassas verileri Terraform yapılandırmalarınız içinde yönetmek, doğru ele alınmadığında risklidir. Azure Key Vault, gizli dizileri, anahtarları ve sertifikaları saklayıp yönetmek için güvenli ve merkezi bir çözüm sunar.
Örnek: Key Vault'tan bir veritabanı parolasını alma:
# Data source to retrieve an existing Azure Key Vault
data "azurerm_key_vault" "my_key_vault" {
name = "my-secure-keyvault"
resource_group_name = "my-secrets-rg"
}# Data source to retrieve a specific secret from the Key Vault
data "azurerm_key_vault_secret" "db_password" {
name = "DbPassword"
key_vault_id = data.azurerm_key_vault.my_key_vault.id
}
resource "azurerm_sql_server" "example" {
administrator_login = "sqladmin"
administrator_login_password = data.azurerm_key_vault_secret.db_password.value # Securely retrieve password}Altyapı:
Bu yöntem, hassas verilerin Terraform kodunuzda veya durum dosyanızda doğrudan açığa çıkmamasını sağlayarak güvenlik en iyi uygulamalarına uygunluk sağlar.
Ağ Güvenlik Grupları (NSG)
Ağ Güvenlik Grupları (NSG), trafik kurallarını zorlamak ve Azure sanal ağlarınızı güvenceye almak için temel önemdedir. Tanımladığınız kurallara göre Azure kaynaklarınıza gelen ve giden ağ trafiğini izin vererek veya reddederek sanal bir güvenlik duvarı gibi davranırlar.
Örnek: Bir web uygulaması için NSG yapılandırması:
Bu bölüm, kurumsal ölçekte Terraform dağıtımı ve yönetimi için tasarım, bakım ve izlemeye odaklanan temel en iyi uygulamaları özetler.
Referans mimariler
Sağlam ve verimli Azure dağıtımları için Terraform yapılandırmalarınızıAzure Well-Architected Framework ile hizalayın. Bu çerçeve, yüksek kaliteli, güvenli ve maliyet etkin bulut çözümleri tasarlamak için kılavuzlar sunar; Terraform tasarımlarınıza güvenilirlik, güvenlik, maliyet optimizasyonu, operasyonel mükemmeliyet ve performans verimliliği açısından yön verir.
Durum dosyası hijyeni
Terraform durum dosyası, altyapınız için tek doğru kaynaktır. Bütünlüğünü ve güvenliğini şu şekilde sağlayın:
Uzak depolama: İş birliğine dayalı durum yönetimi için her zaman Azure Blob Storage gibi bir uzak arka uç kullanın.
Şifreleme ve erişim kontrolü: Uzak durumunuzun beklemede şifrelendiğini doğrulayın ve erişimi sınırlamak için sıkı Azure RBAC uygulayın.
Durum kilitleme ve sürümleme: Çakışmaları önlemek için yerleşik durum kilitlemeden yararlanın ve geçmiş takibi ile kurtarma için depolama kapsayıcınızda sürümlemeyi etkinleştirin.
İzleme ve sapma tespiti
"Yapılandırma sapması"nı—Terraform'da tanımladığınız durumdan yetkisiz sapmaları—aktif şekilde izleyerek altyapı tutarlılığını koruyun.
Proaktif tespit: Değişiklikleri belirlemek için CI/CD boru hatlarınızda düzenli terraform plan çalıştırmaları (örn. gecelik) uygulayın.
Azure izleme: Kaynak sağlığını ve olayları izlemek için Azure Monitor ve Log Analytics kullanın.
Otomatik düzeltme: Sapmış kaynakları IaC'nize tekrar uyumlu hale getirmek için terraform apply işlemini yeniden çalıştırmaya yönelik (manuel veya otomatik) süreçler geliştirin.
Altyapınızı daha da izlemek ve optimize etmek için Azure Monitor değerli içgörüler sunar—bu rehber başlangıcı gösterir.
Sonuç
Ve işte bu kadar! Artık Terraform'un Azure kaynaklarını yönetmeyi nasıl daha verimli ve öngörülebilir hale getirdiğini gördünüz. Azure DevOps ve GitHub Actions gibi CI/CD araçlarıyla iş akışınıza otomasyonu nasıl dahil edeceğinizi ve Azure Key Vault ile Ağ Güvenlik Grupları gibi özellikleri kullanarak işleri nasıl güvenli tutacağınızı ele aldık.
Ayrıca referans mimarilerin kullanımı, durum dosyalarınızı dikkatli yönetme ve izleme ile sapma tespiti yoluyla değişiklikleri takip etme gibi önemli en iyi uygulamalara da değindik.
Bu araç ve ipuçlarıyla, Azure üzerinde daha güvenilir ve ölçeklenebilir altyapılar kurma yolunda iyi bir başlangıç yapmış olacaksınız.
Yeteneklerinizi doğrulamak mı istiyorsunuz? Bu Terraform mülakat soruları iş fırsatlarına veya sertifikasyonlara hazırlanmanıza yardımcı olabilir!
SSS
Terraform'u Azure ile kullanmanın başlıca faydaları nelerdir?⌄
Terraform'u Azure ile kullanmak, altyapı dağıtımında tutarlılık, ölçeklenebilirlik ve hız sağlar. Bulut kaynaklarınızı kod olarak tanımlamanıza olanak tanır; böylece manuel hataları azaltır, tekrarlanabilir dağıtımlar yapar ve karmaşık ortamları yönetmeyi kolaylaştırır.
Terraform, Azure altyapımın durumunu nasıl yönetir?⌄
Terraform, dağıtılmış Azure kaynaklarınızı izlemek için bir durum dosyası (.tfstate) kullanır. Bu dosya, Terraform yapılandırmalarınızı gerçek altyapıyla eşler; Terraform'un mevcut durumu anlamasını ve sonraki dağıtımlarda gereken değişiklikleri belirlemesini sağlar.
Terraform'u hem yeni altyapı dağıtımları hem de mevcut Azure kaynaklarını yönetmek için kullanabilir miyim?⌄
Evet, kesinlikle! Terraform, sıfırdan yeni altyapı sağlamak için mükemmeldir. Ayrıca mevcut Azure kaynaklarını durumuna içe aktarabilir ve bundan sonra bu kaynakları Terraform yapılandırmalarınızla yönetmenize olanak tanır.
Terraform, Azure dağıtımları için CI/CD boru hatlarına nasıl entegre olur?⌄
Terraform, Azure DevOps Pipelines ve GitHub Actions gibi popüler CI/CD platformlarıyla entegre olur. Tipik olarak bir Terraform CI/CD boru hattı, terraform init (başlatma), terraform plan (önerilen değişiklikleri gösterme) ve terraform apply (değişiklikleri Azure'a uygulama) aşamalarını içerir. Bu otomasyon, tutarlı ve güvenilir altyapı dağıtımları sağlar.
Azure üzerinde Terraform kullanırken bazı temel güvenlik hususları nelerdir?⌄
Temel hususlar arasında, (API anahtarları veya parolalar gibi) hassas verileri sabit kodlamak yerine Azure Key Vault ile güvenli şekilde yönetmek bulunur. Ayrıca, ağ trafiğini kontrol etmek ve Azure kaynaklarınıza asgari ayrıcalık erişimini uygulamak için Terraform aracılığıyla Network Security Group'ları (NSG) doğru yapılandırmak kritik önemdedir.
Karen, ölçeklenebilir veri platformları kurma tutkusu olan bir Veri Mühendisidir. Terraform ile altyapı otomasyonu konusunda deneyime sahiptir ve öğrendiklerini blog yazıları ve eğitimlerde paylaşmaktan heyecan duyar. Karen bir topluluk geliştiricisidir ve veri profesyonelleri arasında bağlantılar kurmaya tutkuyla bağlıdır.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Azure portalında tıklaya tıklaya kaynakları elle oluşturup bir araya getirmeye çalıştıysanız, ben de oradaydım—ve bu iş çok hızlı şekilde yoruyor. İşte burada Terraform devreye giriyor. Altyapı-yazılım-olarak (IaC) aracı olan Terraform, bulut kurulumunuzu birkaç satır kodla tanımlayıp yönetmenizi sağlar.
Bu eğitimde odak noktamız Azure ile Terraform kullanımı olacak. Terraform'un ne olduğunu, Azure ekosisteminde nasıl çalıştığını ve pratik örneklerle nasıl başlayacağınızı adım adım anlatacağım. Ayrıca en baştan güvenli ve güvenilir dağıtımlar yapmanıza yardımcı olacak bazı en iyi uygulamaları da ele alacağız.
Azure ekosistemine yeniyseniz, bu Azure temelleri yolu, temel hizmetler ve ilkeler için yapılandırılmış bir giriş sunar.
Neden Azure üzerinde Terraform kullanmalı?
Terraform, HashiCorp tarafından geliştirilen, bildirime dayalı bir söz dizimiyle bulut altyapısını tanımlayıp yönetmenizi sağlayan açık kaynaklı bir IaC aracıdır. Microsoft Azure ile birlikte kullanıldığında, sanal ağlar, VM'ler ve veritabanları gibi kaynakları insan tarafından okunabilir yapılandırma dosyalarında betimlemenize olanak tanır.
Peki neden Azure ile Terraform? Cevap tutarlılık, ölçeklenebilirlik ve hız. İster tek bir VM başlatın ister karmaşık, çok katmanlı bir uygulamayı orkestre edin, Terraform süreci basitleştirir ve insan hatasını azaltır.
Terraform'a tamamen yenisiniz ise, bu Terraform başlangıç dostu rehberi, temel kavramları ve altyapıyı kodla yönetmek için nasıl kullanmaya başlayacağınızı açıklar.
Azure üzerinde Terraform'un Temel Kavramları
Terraform'un Azure ile entegrasyonu, altyapı yönetimini sezgisel ve güçlü kılan bir dizi özellik sunar. Temel bileşenlere ve mevcut Terraform kaynak türlerine yakından bakalım.
Bildirimsel altyapı yönetimi
Terraform'un bildirimsel yaklaşımı, HashiCorp Configuration Language (HCL) kullanarak
.tfdosyalarında Azure altyapınızın nasıl görünmesi gerektiğini tanımlamanıza olanak tanır.Örneğin bir Azure VM'ini boyutu, konumu ve ağ ayarlarıyla belirtebilir, Terraform ise onu oluşturmanın nasılını halleder. Hızlı bir bakış:
Yukarıdaki tanım, idempotentliği sağlar—aynı kodu tekrar tekrar çalıştırmak, yinelenme veya hata olmadan aynı sonucu verir.
Şimdi, bu bildirime dayalı yaklaşımın işlemesini sağlayan temel Terraform kavramlarını parçalara ayıralım.
Terraform durumu (.tfstate)
terraform.tfstatedosyası, Terraform'un bildirimsel modelinin kalbidir. Azure kaynaklarınızın mevcut durumunu—neyin dağıtıldığını, yapılandırmalarını ve ilişkilerini—kayda geçiren bir JSON dosyasıdır.terraform applyçalıştırdığınızda, Terraform.tfdosyalarınızı (istenen durum).tfstatedosyasıyla (gerçek durum) karşılaştırarak yapılacak değişiklikleri belirler. Örneğin kodunuzda bir VM'in boyutunu güncellerseniz, Terraform.tfstatedosyasını kontrol eder ve Azure'da yalnızca ilgili niteliği değiştirir.Bu dosyayı yerelde saklayabilirsiniz; ancak ekipler için iş birliği ve çakışmaları önleyen durum kilitlemeyi etkinleştirmek adına Azure Blob Storage kullanın.
Terraform değişkenleri (.tfvars)
Değişkenler yapılandırmalarınızı esnek ve yeniden kullanılabilir kılar.
variables.tfveterraform.tfvarsiçinde tanımlanırlar; kaynak adları veya bölgeler gibi değerleri parametrikleştirmenize izin verirler.Örneğin:
terraform.tfvarsdosyası varsayılanları geçersiz kılar; böylece çekirdek.tfdosyalarını düzenlemeden aynı kodu farklı bölgelerde dağıtabilirsiniz. Bu yaklaşım, birden çok ortamı (örn. dev, prod) yönetmek için kullanılabilir.Terraform yapılandırma dosyaları (.tf)
Bu dosyalar HCL ile yazılmış altyapı kodunuzu içerir. Kaynakları, sağlayıcıları, modülleri ve daha fazlasını tanımlarlar. Hepsini tek bir
main.tfiçinde tutabilir veya daha netlik ve düzen için birden fazla dosyaya (örn.variables.tf,outputs.tf,network.tf,compute.tf) bölebilirsiniz.Terraform plan
Değişiklikleri uygulamadan önce
terraform plankomutu,.tfdosyalarınız ile.tfstatearasındaki farka göre Terraform'un neler yapacağını—kaynak oluşturma, güncelleme veya silme—önizlemede gösterir. Olası sorunları erken yakalayan detaylı bir önyürütme gibidir.Terraform apply
terraform applykomutu,terraform planile belirlenen değişiklikleri yürütür, Azure'u istenen durumla eşitler ve.tfstatedosyasını yeniler. Uygulamadan önce onay istenir; bu da bir güvenlik ağı sağlar.Çalışma alanları (Workspaces)
Terraform çalışma alanları, tek bir
.tfdosya setiyle birden çok ortamı (örn. dev, staging, prod) yönetmenize olanak tanır. Her çalışma alanının kendi.tfstatedosyası vardır; böylece benzer altyapıları farklı yapılandırmalarla (örn. dev ve prod için farklı VM boyutları) dağıtabilirsiniz.Yeni bir çalışma alanı oluşturmak için:
Ardından o çalışma alanına geçiş yapabilirsiniz:
Modüller
Modüller, yeniden kullanılabilir Terraform kod paketleridir. Örneğin bir Azure sanal ağı için bir modül oluşturup projeler arasında yeniden kullanarak yinelemeyi azaltabilir ve standartlaşmayı artırabilirsiniz. Modülleri en iyi uygulamalar bölümünde daha ayrıntılı ele alacağız.
Bu kavramlar—
.tfstate,.tfvarsve bildirimsel iş akışı—Azure altyapınızın öngörülebilir, yeniden üretilebilir ve kolay yönetilebilir olmasını sağlar.Durum yönetimi ve iş birliği
terraform.tfstatedosyası, altyapınızın durumunu takip eder. Ekipler için bu dosyanın Azure Blob Storage üzerinde saklanması, paylaşılan erişim ve sürüm kontrolü sağlayan kritik bir en iyi uygulamadır. Bu uzak arka uç yapılandırması, tüm ekip üyelerinin altyapının tutarlı bir görünümüyle çalışmasını sağlar.Azure Blob Storage gibi birçok uzak arka uç tarafından otomatik olarak sunulan durum kilitleme özelliği, birden çok ekip üyesi aynı anda Terraform komutları çalıştırmaya çalıştığında çakışmaları önleyerek veri bütünlüğünü sağlar.
Azure Blob Storage arka ucunu yapılandırmaya bir örnek:
terraform initkomutunu bu yapılandırmayla çalıştırmadan önce, Azure depolama hesabını ve kapsayıcıyı manuel olarak veya ayrı bir Terraform yapılandırmasıyla oluşturmanız gerekir. Bu kurulum, Azure kaynaklarının güvenli ve iş birliğine dayalı yönetimini sağlar.Sağlayıcı ekosistemi ve AzureRM
azurerm provider, Terraform'un Azure'a köprüsüdür; HCL'yi VM'ler, ağlar ve veritabanları gibi hizmetleri yönetmek için API çağrılarına çevirir.
Bilgi işlem (
azurerm_linux_virtual_machine,azurerm_windows_virtual_machine)'den analitik (azurerm_synapse_workspace)'e kadar yüzlerce kaynak türünü destekler. Öne çıkan bazı özellikler:azurermsağlayıcısı, yeni Azure hizmetleri ve özellikleri kullanıma sunuldukça bunları desteklemek üzere aktif olarak geliştirilir.azurerm_resource_group.example.name) veya mevcut kaynaklar hakkında ayrıntı almak (örn.data.azurerm_virtual_network.existing.id) için sağlayıcı tanımlı fonksiyonları kullanın. Bu, daha dinamik ve akıllı yapılandırmalar sağlar.azurermsağlayıcısı, mevcut Azure kaynakları hakkında bilgi almak için veri kaynaklarından yararlanır. Bu, mevcut Terraform yapılandırmanız tarafından sağlanmamış kaynaklara referans vermeniz gerektiğinde özellikle faydalıdır. Örneğin mevcut bir sanal ağın ayrıntılarını alarak yeni alt ağlar veya VM'ler dağıtabilir, VNet'i yeniden oluşturmadan ilerleyebilirsiniz.Terraform'a dalmadan önce, Azure'u elle nasıl yapılandıracağınızı anlamak faydalıdır—bu başlangıç rehberi temel adımları anlatır.
Terraform-Azure Ortamı Kurulumu
Haydi pratiğe geçelim! Bu bölüm, Terraform'u Azure aboneliğinizle kullanmak için gereken ilk kurulum adımlarında sizi yönlendirir.
Kimlik doğrulama ve CLI araçları
Azure ile etkileşim kurmak için önce Azure Komut Satırı Arayüzü'nü (CLI) yükleyip yapılandırmanız gerekir. Azure CLI, kimlik doğrulama ve Azure kaynaklarınızı yönetmek için gereken araçları provdier. Kurulumdan sonra Azure hesabınıza giriş yapın:
Yukarıdaki komut, etkileşimli kimlik doğrulama için bir tarayıcı penceresi açar. Hızlı başvuru için, bu Azure CLI hızlı başvuru kağıdı komut satırı iş akışlarınızı kolaylaştırabilir.
Özellikle CI/CD boru hatlarında Terraform ile otomatik dağıtımlar için, Azure Active Directory (AAD) hizmet sorumluları (service principal) oluşturup kullanmanız şiddetle tavsiye edilir. Hizmet sorumluları, Terraform'un etkileşimli oturum açma gerektirmeden Azure aboneliğinizde güvenli ve programatik şekilde kimlik doğrulaması yapmasını sağlar.
Abonelik kapsamında "Contributor" rolüne sahip bir hizmet sorumlusu oluşturmak için şunu çalıştırın:
Çıktı
appId,passwordvetenant(kiracı kimliği) değerlerini sağlayacaktır. Bunları Terraform için ortam değişkenleri olarak ayarlayabilirsiniz:Bir proje başlatma
Tipik bir Terraform projesi, farklı kaynak türleri veya modüller için ayrı
.tfdosyalarının bulunduğu yapılandırılmış bir dizin düzenini takip eder (örn.main.tf,variables.tf,outputs.tf,network.tf,compute.tf).Herhangi bir Terraform projesine başlamak için proje dizininize gidip
terraform initkomutunu çalıştırın. Bu komut çalışma dizinini başlatır, gerekli sağlayıcı eklentilerini (ör.azurerm) indirir ve yapılandırmanızda tanımlandığı şekilde durum yönetimi için arka ucu kurar.Bu komut, tüm gerekli eklentilerin hazır olduğundan emin olarak dizininizi Terraform işlemlerine hazırlar.
Azure Kaynaklarını Sağlama
Bu bölümde, Terraform kullanarak yaygın Azure kaynaklarını sağlama konusunda pratik örnekler yer alıyor; kaynakların nasıl tanımlanıp programatik olarak dağıtılacağını gösteriyoruz.
Sanal ağlar ve alt ağlar
Terraform, Azure'da ağ altyapısını tanımlama ve dağıtma konusunda çok başarılıdır. Sanal ağları (VNet) kolayca tanımlayıp alt ağlara bölebilir, IP adres alanlarını ve ağ yalıtımını kontrol edebilirsiniz.
Terraform'un yerleşik bağımlılık yönetimi, kaynakların doğru sırayla oluşturulmasını sağlar; örneğin alt ağlar, üst VNet başarıyla oluşturulduktan sonra sağlanır. Bir örnek:
cloud-init ile sanal makineler
Terraform ile sanal makine (VM) sağlamak oldukça basittir. Dağıtım sonrası yapılandırma ve ilk kurulumları otomatikleştirmek için
cloud-initbetiklerinden yararlanabilirsiniz.cloud-init, VM'nin ilk açılışında çalışan betikleri enjekte etmenize olanak tanır; böylece yazılım kurma, kullanıcı yapılandırma veya hizmet kurulumları gibi görevleri doğrudan Terraform yapılandırmanızdan yapabilirsiniz.İşte Nginx kurmak için basit bir
cloud-initbetiğiyle bir Linux VM sağlama örneği:Altyapıyı modülerleştirme
Azure altyapınız büyüdükçe Terraform yapılandırmalarınızı modülerleştirmek; yeniden kullanım, bakım ve ölçeklenebilirlik için kritik hale gelir.
Modüller, birbiriyle ilişkili kaynakları ve yapılandırmalarını yeniden kullanılabilir birimlere kapsüller. Bu bölüm, Terraform kodunuzu modüller halinde nasıl yapılandıracağınız konusunda rehberlik sağlayacak ve bu modülleri ana yapılandırmalarınız içinde nasıl çağıracağınızı göstererek daha temiz ve düzenli bir kod tabanı oluşturmanıza yardımcı olacak.
Örnek: Modül yapısı (
modules/web-app/main.tf):Örnek: Modülü çağırma (kök dizindeki
main.tf):Bu yapı, web uygulaması dağıtım mantığınızı farklı ortam veya projelerde yeniden kullanmayı kolaylaştırır.
Gelişmiş Terraform İş Akışları
Bu bölüm, temel kaynak sağlamanın ötesine geçerek altyapı dağıtımlarınızın esnekliğini ve gücünü artıran daha gelişmiş Terraform özelliklerini inceler.
Veri kaynakları ve dinamik yapılandırmalar
Terraform'daki veri kaynakları, hem Terraform tarafından yönetilen hem de yönetilmeyen mevcut kaynaklar hakkında bilgi almanıza olanak tanır. Bu, mevcut altyapıyla entegre olmak veya dinamik aramalar için son derece kullanışlıdır.
Dinamik yapılandırmalarla (
for_eachvecountgibi) birleştirildiğinde veri kaynakları, çeşitli koşullara ve kaynak erişilebilirliğine tepki verebilen son derece esnek ve uyarlanabilir Terraform betikleri oluşturmanıza imkân tanır.Örnek: Mevcut bir VNet'i bulmak ve yeni bir alt ağ eklemek için Veri Kaynağı kullanma:
Örnek:
for_eachve bir harita değişkeni kullanarak birden fazla VM'in dinamik oluşturulması:Sentinel ile kod olarak politika (Policy as code)
Sıkı uyumluluk ve yönetişim gerektiren kurumlar için HashiCorp Sentinel, Terraform Enterprise ile entegre olan (veya Terraform Cloud ile özelleştirilerek uyarlanabilen) bir kod olarak politika çerçevesi sunar.
Sentinel, altyapı sağlanmadan önce güvenlik, maliyet ve operasyonel en iyi uygulamaları zorlayan ayrıntılı politikalar tanımlamanıza olanak tanır.
Örneğin bir politika, belirli bir boyuttan daha büyük VM'lerin oluşturulmasını engelleyebilir veya tüm kaynaklarda belirli etiketlerin bulunmasını zorunlu kılabilir. Hazır politikalar uyumluluk standartlarını uygular, uyumsuz dağıtımların Azure ortamınıza hiç ulaşmamasını sağlar.
Maliyet optimizasyon stratejileri
Terraform, Azure Policy ile birlikte kullanıldığında Azure ortamınızda maliyet kontrollerini uygulamak için güçlü bir araç olabilir.
Kaynak SKU'larını kısıtlayan, maliyet tahsisi için etiketlemeyi zorunlu kılan veya pahalı kaynakların dağıtımını engelleyen Azure Politikaları tanımlayarak, doğrudan IaC iş akışlarınızda etkili maliyet tasarrufu önlemleri uygulayabilirsiniz.
Terraform ayrıca Azure Politikalarını dağıtıp yönetebilir; böylece yönetişim kurallarınızın sürüm kontrolüne tabi ve tutarlı şekilde uygulanmasını sağlar.
Örnek: Terraform ile bir Azure Politika Tanımı dağıtma:
Bu kombinasyon, kurumsal maliyet politikalarını otomatik olarak uygulamanıza, aşırı harcamayı önlemenize ve kaynak verimliliğini teşvik etmenize olanak tanır.
CI/CD Entegrasyonu
Bu bölüm, altyapı değişikliklerini yazılım geliştirme yaşam döngünüzün kesintisiz bir parçası haline getirerek Terraform'u Sürekli Entegrasyon/Sürekli Teslim (CI/CD) boru hatlarınıza entegre etmeye odaklanır.
Azure DevOps boru hatları
Azure DevOps, CI/CD boru hatları oluşturmak için sağlam bir platform sunar. Yaygın bir iş akışı şunları içerir:
terraform init.terraform plan -out.terraform apply tfplan.Azure DevOps'un uçtan uca CI/CD iş akışlarını uygulama dağıtımı için nasıl desteklediğini bu uygulamalı eğitimde keşfedebilirsiniz.
GitHub Actions
GitHub Actions, Terraform iş akışlarınızı doğrudan GitHub depolarınız içinde otomatikleştirmenin esnek ve güçlü bir yolunu sunar. Push veya pull request gibi olaylara yanıt veren YAML dosyaları kullanır.
GitHub Actions kullanarak temel bir Terraform dağıtımı için adımlar şunlardır:
main)on: push.actions/checkout@v3kullanın.AZURE_CLIENT_ID,AZURE_CLIENT_SECRET,AZURE_TENANT_ID,AZURE_SUBSCRIPTION_ID).hashicorp/setup-terraform@v2kullanın.Örnek: Bir GitHub Actions iş akışı için YAML (
.github/workflows/terraform-azure.yml):Güvenlik ve Uyumluluk
Bu bölüm, Azure üzerinde Terraform ile çalışırken güvenli veri yönetimi ve ağ erişimine vurgu yaparak güvenlik ve uyumlulukla ilgili hususları öne çıkarır.
Azure Key Vault entegrasyonu
API anahtarları, bağlantı dizeleri, veritabanı kimlik bilgileri ve sertifikalar gibi hassas verileri Terraform yapılandırmalarınız içinde yönetmek, doğru ele alınmadığında risklidir. Azure Key Vault, gizli dizileri, anahtarları ve sertifikaları saklayıp yönetmek için güvenli ve merkezi bir çözüm sunar.
Örnek: Key Vault'tan bir veritabanı parolasını alma:
Bu yöntem, hassas verilerin Terraform kodunuzda veya durum dosyanızda doğrudan açığa çıkmamasını sağlayarak güvenlik en iyi uygulamalarına uygunluk sağlar.
Ağ Güvenlik Grupları (NSG)
Ağ Güvenlik Grupları (NSG), trafik kurallarını zorlamak ve Azure sanal ağlarınızı güvenceye almak için temel önemdedir. Tanımladığınız kurallara göre Azure kaynaklarınıza gelen ve giden ağ trafiğini izin vererek veya reddederek sanal bir güvenlik duvarı gibi davranırlar.
Örnek: Bir web uygulaması için NSG yapılandırması:
Kurumsal Dağıtımlar için En İyi Uygulamalar
Bu bölüm, kurumsal ölçekte Terraform dağıtımı ve yönetimi için tasarım, bakım ve izlemeye odaklanan temel en iyi uygulamaları özetler.
Referans mimariler
Sağlam ve verimli Azure dağıtımları için Terraform yapılandırmalarınızı Azure Well-Architected Framework ile hizalayın. Bu çerçeve, yüksek kaliteli, güvenli ve maliyet etkin bulut çözümleri tasarlamak için kılavuzlar sunar; Terraform tasarımlarınıza güvenilirlik, güvenlik, maliyet optimizasyonu, operasyonel mükemmeliyet ve performans verimliliği açısından yön verir.
Durum dosyası hijyeni
Terraform durum dosyası, altyapınız için tek doğru kaynaktır. Bütünlüğünü ve güvenliğini şu şekilde sağlayın:
İzleme ve sapma tespiti
"Yapılandırma sapması"nı—Terraform'da tanımladığınız durumdan yetkisiz sapmaları—aktif şekilde izleyerek altyapı tutarlılığını koruyun.
terraform plançalıştırmaları (örn. gecelik) uygulayın.terraform applyişlemini yeniden çalıştırmaya yönelik (manuel veya otomatik) süreçler geliştirin.Altyapınızı daha da izlemek ve optimize etmek için Azure Monitor değerli içgörüler sunar—bu rehber başlangıcı gösterir.
Sonuç
Ve işte bu kadar! Artık Terraform'un Azure kaynaklarını yönetmeyi nasıl daha verimli ve öngörülebilir hale getirdiğini gördünüz. Azure DevOps ve GitHub Actions gibi CI/CD araçlarıyla iş akışınıza otomasyonu nasıl dahil edeceğinizi ve Azure Key Vault ile Ağ Güvenlik Grupları gibi özellikleri kullanarak işleri nasıl güvenli tutacağınızı ele aldık.
Ayrıca referans mimarilerin kullanımı, durum dosyalarınızı dikkatli yönetme ve izleme ile sapma tespiti yoluyla değişiklikleri takip etme gibi önemli en iyi uygulamalara da değindik.
Bu araç ve ipuçlarıyla, Azure üzerinde daha güvenilir ve ölçeklenebilir altyapılar kurma yolunda iyi bir başlangıç yapmış olacaksınız.
Yeteneklerinizi doğrulamak mı istiyorsunuz? Bu Terraform mülakat soruları iş fırsatlarına veya sertifikasyonlara hazırlanmanıza yardımcı olabilir!