Aracılığıyla paylaş


Azure Databricks'te CI/CD

Sürekli tümleştirme ve sürekli teslim (CI/CD), otomasyon işlem hatlarının kullanımı aracılığıyla kısa ve sık döngüler halinde yazılım geliştirme ve teslim etme sürecini ifade eder. CI/CD, yazılım geliştirmede ortaktır ve veri mühendisliği ve veri bilimi için giderek daha fazla gerekli hale gelmektedir. Geliştirme ekipleri, kodun derlemesini, testini ve dağıtımını otomatikleştirerek, el ile gerçekleştirilen işlemlere kıyasla daha güvenilir sürümler sunabilir.

CI/CD işlem hatlarını geliştirmek için ortak araçlar mevcuttur, ancak kuruluştan kuruluşa yapılan uygulamalar ve yaklaşımlar, her kuruluşun yazılım geliştirme yaşam döngüsünün benzersiz yönleri nedeniyle biraz farklılık gösterebilir. Bu sayfada Databricks'te CI/CD'ye yönelik aşağıdaki yaklaşımlar ve her yaklaşımın avantajları ve dezavantajları hakkında bilgi sağlanır:

Azure Databricks'te makine öğrenmesi projelerine yönelik CI/CD'ye genel bakış için bkz . Databricks makine öğrenmesi için CI/CD'yi nasıl destekler?.

Databricks Varlık Paketleri (Önerilen)

Databricks Varlık Paketleri, Databricks'te CI/CD için önerilen yaklaşımdır. Databricks Varlık Paketleri'ni kullanarak işler ve işlem hatları gibi Databricks kaynaklarını kaynak dosya olarak açıklayın ve dağıtılabilir bir projenin uçtan uca tanımını sağlamak için bunları diğer varlıklarla birlikte paketleyin. Bu dosya paketlerinde kaynak denetimi yapılabilir ve github actions gibi dış CI/CD otomasyonlarını kullanarak dağıtımları tetikleyebilirsiniz.

Avantajlar Dezavantajlar
  • Kuruluşunuz genelinde tutarlılık ve en iyi yöntemleri zorlamak için özel paket şablonları gibi birçok özellik içerir.
  • Birçok Databricks kaynağı için kod dosyalarını ve yapılandırmayı dağıtmaya yönelik kapsamlı destek.
  • Paket yazmak için paket yapılandırma söz dizimi hakkında bilgi sahibi olmak gerekir.
  • Paket dağıtım klasörünün bir uzak Git işlemesi ile eşleşir garantisi yoktur. Üretim paketi klasörü çalışma alanında yanlışlıkla düzenlenebilir.
  • Birleştirmede dağıtımı tetikleyebilmek için GitHub Actions gibi dış CI/CD işlem hatlarını gerektirir.

Üretim Git klasörü

Databricks Varlık Paketlerini benimsemeye henüz hazır değilseniz ancak kodunuzun kaynak denetiminde olmasını istiyorsanız, bir üretim Git klasörü ayarlayabilirsiniz. Ardından git klasörünü birleştirme sırasında çekmek için GitHub Actions gibi dış CI/CD araçlarını kullanın veya dış CI/CD işlem hatlarına erişiminiz olmadığında, çalışma alanında bir Git klasörüne çekmek için zamanlanmış bir iş oluşturun.

Avantajlar Dezavantajlar
  • Databricks Varlık Paketlerini benimsememiş ekipler için basit ve basit dağıtımı destekler.
  • Airflow gibi dış düzenleyicileri kullanan çalışma alanları için CI/CD'yi destekler.
  • Üretim Git klasörü yanlışlıkla düzenlenebilir.
  • Yalnızca not defterleri ve pano taslakları gibi kod dosyaları kaynak denetimindedir. Git klasöründe varlıkları çalıştıran işlerin yapılandırmaları ve panoları yayımlama yapılandırmaları kaynak denetiminde değildir.
  • Birleştirmede dağıtımları tetikleyebilmek için Github eylemleri gibi dış CI/CD işlem hatlarını gerektirir.

İşlerle birlikte Git

Yalnızca işler için CI/CD'ye ihtiyacınız varsa, işlerle Git bazı iş türlerini kaynak için uzak Git deposunu kullanacak şekilde yapılandırmanıza olanak tanır. Bir iş yürütmesi başladığında, Databricks uzak deponun anlık bir taahhüt kaydını alır ve tüm işin kodun aynı sürümüne karşı çalışmasını sağlar.

Avantajlar Dezavantajlar
  • Basit ve tamamen kullanıcı arabiriminde yazılabilir.
  • En son kodu yürütmek için GitHub Actions gibi dış CI/CD işlem hatları gerekmez.
  • Üretim işlerinin yerel düzenleme olmadan uzak kod yürütmesini sağlayarak üretim işinizde yanlışlıkla yapılan değişiklikleri önler.
  • Yalnızca sınırlı iş görevlerini destekler.
  • Yalnızca not defterleri ve diğer dosyalar gibi kod dosyaları kaynak denetimindedir. Görev dizileri, işlem ve zamanlamalar gibi iş yapılandırmaları kaynak denetiminde değildir, bu da bu yaklaşımı çok ortamlı, çalışma alanları arası dağıtımlar için daha az uygun hale getirir.
  • Çalışma zamanında Git bağlantısı gerektirir. Git bağlantısı kesintiye uğrasa bir iş başarısız olur.

Diğer CI/CD önerileri

Seçtiğiniz CI/CD yaklaşımından bağımsız olarak CI/CD kimlik doğrulaması için iş yükü kimlik federasyonu kullanın. İş yükü kimlik federasyonu Databricks gizli dizilerine olan ihtiyacı ortadan kaldırır ve bu da Databricks'te kimlik doğrulamasının en güvenli yolu olmasını sağlar. Bkz . OAuth belirteci federasyonu kullanarak Azure Databricks'e erişimin kimliğini doğrulama.

Databricks ayrıca Databricks çalışma alanlarınızı ve ilişkili bulut altyapınızı yönetmek için Databricks Terraform sağlayıcısını kullanmanızı önerir.

Diğer CI/CD önerileri için bkz. Databricks'te en iyi yöntemler ve önerilen CI/CD iş akışları.

Azure Databricks varlıklarının ve verilerinin yaşam döngüsünü yönetme hakkında daha fazla bilgi için CI/CD ve veri işlem hattı araçları hakkında aşağıdaki belgelere bakın.

Alan İstediğiniz zaman bu araçları kullanın...
Databricks Varlık Paketleri CI/CD en iyi yöntemlerini ve iş akışlarını kullanarak Lakeflow İşleri, Lakeflow Bildirimli İşlem Hatları ve MLOps Yığınlarını program aracılığıyla tanımlayın, dağıtın ve çalıştırın.
Databricks Terraform sağlayıcısı Terraform kullanarak Databricks çalışma alanlarını ve altyapısını sağlayın ve yönetin.
Git ve Databricks Git klasörleriyle CI/CD iş akışları Kaynak denetimi ve CI/CD iş akışları için GitHub ve Databricks Git klasörlerini kullanın.
Azure Databricks'te Azure DevOps ile kimlik doğrulaması Azure DevOps ile kimlik doğrulaması.
Azure Databricks Git klasörleriyle otomasyon için Microsoft Entra hizmet sorumlusu kullanma Databricks Git klasörlerine erişimi kimlik doğrulamak için bir MS Entra hizmet temsilcisi kullanın.
Azure Databricks'te Azure DevOps kullanarak sürekli entegrasyon ve teslimat Azure DevOps kullanan Azure Databricks için bir CI/CD işlem hattı geliştirin.
GitHub Actions CI/CD iş akışınıza Azure Databricks için geliştirilmiş bir GitHub Eylemi ekleyin.
Azure Databricks'te Jenkins ile CI/CD Azure Databricks için Jenkins kullanan bir CI/CD işlem hattı geliştirin.
Apache Airflow ile Lakeflow İşlerini Düzenleme Apache Airflow kullanan bir veri işlem hattını yönetin ve zamanlayın.
CI/CD için hizmet sorumluları CI/CD sistemleriyle kullanıcılar yerine hizmet sorumlularını kullanın.