Doğrudan dağıtım altyapısına geçiş

Önemli

Bu özellik Genel Önizleme aşamasındadır.

Bildirim temelli Otomasyon Paketleri başlangıçta dağıtımları yönetmek için Databricks Terraform sağlayıcısının üzerine kurulmuştur. Ancak Databricks CLI 0.279.0 ve üzeri sürümleri bu bağımlılıktan uzaklaşmak için iki farklı dağıtım altyapısını destekler: terraform ve direct. Doğrudan dağıtım altyapısı Terraform'a bağlı değildir. Terraform dağıtım altyapısı er ya da geç kullanımdan kaldırılacak ve doğrudan dağıtım altyapısı varsayılan olacak.

Doğrudan dağıtımın avantajları nelerdir?

Yeni doğrudan dağıtım altyapısı Databricks Go SDK'sını kullanır ve aşağıdaki avantajları sağlar:

  • Terraform ve terraform-provider-databricks dağıtımdan önce indirilmeye gerek yok.
  • Güvenlik duvarları, ara sunucular ve özel sağlayıcı kayıt defterleriyle ilgili sorunları önler
  • bundle plan -o json kullanarak yapılabilen değişikliklerin ayrıntılı farkları
  • Daha hızlı dağıtım
  • Yeni paket kaynaklarının yayınlanma süresi, Terraform sağlayıcı sürümü ile uyumlu hale getirilmesine gerek olmadığından azaldı.

Doğrudan dağıtımı kullanmaya nasıl başlayabilirim?

Yeni doğrudan dağıtım altyapısını kullanmaya başlamak için:

  • Mevcut paketleri databricks bundle deployment migrate kullanarak geçirin.
  • Yeni paketleri, ortam değişkeni DATABRICKS_BUNDLE_ENGINE olarak direct şekilde ayarlayıp dağıtın.

Mevcut bir paketi taşıma

Doğrudan dağıtım altyapısı kendi JSON durum dosyasını kullanır. Şema Terraform JSON durum dosyasından farklıdır. komutu, bundle deployment migrate Terrform durum dosyasını (terraform.tfstate) doğrudan dağıtım durumu dosyasına (resources.json ) dönüştürür. komutu, mevcut dağıtımdaki kimlikleri okur.

  1. Terraform ile tam dağıtım gerçekleştirin:

    databricks bundle deploy -t my_target
    
  2. Dağıtımı taşıyın.

    databricks bundle deployment migrate -t my_target
    
  3. Geçişin başarılı olduğunu doğrulayın. Komutun databricks bundle plan başarılı olması ve hiçbir değişiklik göstermemesi gerekir.

    databricks bundle plan -t my_target
    
    • Doğrulama başarısız olursa yeni durum dosyasını kaldırın:

      rm .databricks/bundle/my_target/resources.json
      
    • Doğrulama başarılı olursa, durum dosyasını çalışma alanına eşitlemek için paketi dağıtın:

      databricks bundle deploy -t my_target
      

Yeni bir paketi doğrudan dağıtma

Komut bundle migrate , hiçbir durum dosyası olmadığından hiç dağıtılmayan paketlerde çalışmaz. Bunun yerine aşağıdakilerden birini yapın:

  • "databricks.yml dosyanızda bundle.engine ayarlayın."

    bundle:
      engine: direct
    
  • Ortam değişkenini ayarlayın ve dağıtın DATABRICKS_BUNDLE_ENGINE :

    DATABRICKS_BUNDLE_ENGINE=direct databricks bundle deploy -t my_target
    

Hem yapılandırma hem de ortam değişkeni ayarlanırsa, yapılandırma önceliklidir.

Doğrudan dağıtım altyapısındaki değişiklikler nelerdir?

Yeni doğrudan dağıtım altyapısı çoğunlukla Terrform dağıtım altyapısıyla aynı şekilde davranır, ancak bazı farklılıklar vardır. Özellikle, doğrudan mekanizma kaynakların yerel ve uzak durumunu ayrı ayrı izler ve kaynak ikame işlemlerini iki aşamada çözer.

Kaynak durumu fark hesaplaması

Tek bir kaynak durumunu (yerel yapılandırma ve uzak durumun bir karışımı) koruyan Terraform'un aksine, yeni altyapı bu yapılandırmaları ayrı tutar ve yalnızca yerel yapılandırmayı kendi durum dosyasında kaydeder.

Kaynak durumu fark hesaplaması iki adımda yapılır:

  1. Yerel paket yapılandırması, en son dağıtım için kullanılan anlık görüntü yapılandırmasıyla karşılaştırılır. Uzak durum rol oynamaz.
  2. Uzak durum, en son dağıtım için kullanılan anlık görüntü yapılandırmasıyla karşılaştırılır.

Sonuç şudur:

  • databricks.yml kaynak değişiklikleri asla yoksayılmaz ve her zaman bir güncelleştirme tetikler.
  • Uygulama tarafından işlenmeyen kaynak alanları tutarsız bir sonuç hatası tetiklemez. Bu kaynaklar doğrudan motor tarafından başarıyla dağıtılır, ancak bu bir drift'e neden olabilir. Dağıtılan kaynaklar bir sonraki plan veya dağıtım sırasında güncelleştirilir.

Kaynak değiştirme araması

Kaynak değiştirmeleri, kaynak kimliklerini çözümlemek için kullanılabilir; örneğin, ${resources.jobs.my_job.id}. Bkz. Değiştirmeler. Doğrudan dağıtım altyapısındaki kaynak değiştirmelerinin çözümü iki adımda gerçekleştirilir:

  1. Yerel yapılandırmada bulunan alanlara işaret eden başvurular, yerel yapılandırmada sağlanan değere çözümlenir.
  2. Yerel yapılandırmada bulunmayan başvurular uzak durum verisinden çözümlenir. Bu, belirli bir kaynak için uygun GET istek kullanılarak getirilen durumdur.

Değiştirme işlemini çözümlemek ${resource.*} için kullanılan şema out.fields.txtdosyasındadır. ve ALL olarak STATE işaretlenen alanlar yerel çözümleme için kullanılabilir. ALL veya REMOTE olarak işaretlenen alanlar uzaktan çözünürlük için kullanılabilir.

Kaynak uyumluluğu

Aşağıdaki kaynaklar doğrudan dağıtım altyapısını gerektirir ve Terraform dağıtım altyapısıyla desteklenmez:

Buna ek olarak, lifecycle.started alanı yalnızca doğrudan dağıtım motorunda ve yalnızca apps, clusters ve sql_warehouses için kullanılabilir. true olarak ayarlandığında, kaynağı başlatılmış modda dağıtır. Bkz . yaşam döngüsü.