Penskalaan horizontal untuk aplikasi Databricks

Important

Fitur ini ada di Beta. Untuk meminta akses, hubungi perwakilan Azure Databricks Anda. Setelah fitur diaktifkan, admin ruang kerja dapat mengontrol akses ke fitur tersebut dari halaman Pratinjau . Lihat Kelola Pratinjau Azure Databricks.

Halaman ini menjelaskan cara menjalankan aplikasi Databricks di beberapa instans di belakang satu URL aplikasi untuk ketersediaan dan konkurensi yang lebih tinggi.

Penskalakan horizontal mendistribusikan permintaan di seluruh instans, sehingga kegagalan instans tunggal atau mulai ulang tidak membuat aplikasi offline. Biaya komputasi meningkat secara linier seiring dengan jumlah instans.

Manfaat tambahan meliputi:

  • Afinitas sesi: Setiap permintaan dari pengguna yang sama diarahkan ke instans yang sama sebisa mungkin, sehingga aplikasi dapat menyimpan data per pengguna yang berumur singkat (misalnya, cache dalam memori) pada instans tersebut. Juga dikenal sebagai sesi lengket. Lihat Afinitas sesi.
  • Deployment tanpa waktu henti: Azure Databricks meluncurkan deployment baru terlebih dahulu ke instans build, dan hanya memperbarui instans lainnya setelah instans build tersebut berhasil. Instans yang ada terus melayani lalu lintas di seluruh.
  • Stable build cache: Azure Databricks mempertahankan artefak penyebaran di seluruh pembaruan komputasi (misalnya, saat Anda mengubah ukuran atau jumlah instans), sehingga aplikasi tidak memerlukan pembangunan ulang penuh.

Requirements

Persyaratan berikut berlaku untuk semua aplikasi yang diskalakan secara horizontal:

  • Selama periode Beta, aplikasi Anda harus mendengarkan pada 0.0.0.0 (bukan 127.0.0.1 atau localhost).

Membuat aplikasi berskala horizontal

Untuk membuat aplikasi dengan penskalakan horizontal diaktifkan:

  1. Di ruang kerja Azure Databricks Anda, klik pengalih aplikasi App. dan pilih Databricks Apps.
  2. Klik + Buat aplikasi, lalu klik Buat aplikasi kustom.
  3. Masukkan nama dan konfigurasikan aplikasi seperti yang dijelaskan di Membuat aplikasi Databricks kustom.
  4. Di langkah Konfigurasikan , pilih Aktifkan penskalakan horizontal.
  5. Tentukan Jumlah instans (1–5). Azure Databricks merekomendasikan setidaknya 2 instans untuk ketersediaan.
  6. Klik Buat aplikasi.

Mengaktifkan penskalaan horizontal untuk satu aplikasi tidak memengaruhi aplikasi lain di ruang kerja.

Aplikasi berskala horizontal yang baru dibuat tidak menyertakan pustaka Python yang telah diinstal sebelumnya. Deklarasikan semua dependensi di requirements.txt atau pyproject.toml. Lihat Mengelola dependensi untuk aplikasi Databricks.

Mengonversi aplikasi standar untuk menggunakan penskalakan horizontal

Konversikan aplikasi standar yang ada ke aplikasi berskala horizontal dari tab Pengaturan . Konversi tidak memperkenalkan waktu henti. Aplikasi standar Anda saat ini tetap menangani lalu lintas hingga deployment baru yang diskalakan secara horizontal lulus pemeriksaan kesehatan, dan pada saat itu Azure Databricks mengalihkan lalu lintas ke deployment tersebut.

Konversi dapat dibalik. Anda dapat mengonversi aplikasi berskala horizontal kembali ke aplikasi standar dari tab Pengaturan yang sama.

Perilaku konversi

Perilaku berikut berlaku pada waktu konversi:

Menguji konversi

Konversi mengubah citra runtime aplikasi Anda dan model penskalaannya. Sebelum mengonversi aplikasi produksi, validasi perubahan pada duplikat:

  1. Buat duplikat aplikasi standar yang ingin Anda konversi.
  2. Konversi duplikat menggunakan langkah-langkah berikut.
  3. Verifikasi bahwa aplikasi berfungsi seperti yang diharapkan pada duplikat yang dikonversi. Periksa log, trafik, dan segala perilaku afinitas sesi.
  4. Konversi aplikasi produksi setelah validasi.

Mengonversi aplikasi standar

Untuk mengonversi aplikasi standar ke skala horizontal:

  1. Di ruang kerja Azure Databricks Anda, klik pengalih aplikasi App. dan pilih Databricks Apps.
  2. Klik nama aplikasi yang ingin Anda konversi.
  3. Klik tab Pengaturan.
  4. Di bawah Komputasi, pilih Aktifkan penskalaan horizontal. Azure Databricks mengatur jumlah instans ke 1, yang diperlukan pada waktu konversi.
  5. Kliklah Simpan.

Azure Databricks menyediakan sumber daya komputasi baru yang diskalakan secara horizontal, lalu menerapkan ulang aplikasi Anda di atasnya. Total waktu tergantung pada durasi build aplikasi Anda. Aplikasi yang ada tetap menangani trafik selama proses berlangsung.

Setelah konversi selesai, Anda dapat meningkatkan skala atau memilih untuk tidak menggunakan pustaka prainstal.

Mengelola jumlah instans

Untuk mengubah jumlah instans untuk aplikasi berskala horizontal:

  1. Pada halaman detail aplikasi, klik Edit.
  2. Pada langkah Konfigurasi , perbarui Jumlah instans.
  3. Kliklah Simpan.

Aplikasi terus melayani lalu lintas saat Azure Databricks menerapkan perubahan.

Afinitas sesi

Afinitas sesi mengarahkan setiap permintaan yang berasal dari pengguna yang sama ke instans yang sama jika memungkinkan. Aplikasi dapat menggunakan mekanisme perutean ini untuk menyimpan data per pengguna yang hanya bertahan sementara (misalnya, cache dalam memori atau file sementara pada sistem file lokal) di instans yang menangani sesi pengguna itu. Afinitas sesi juga dikenal sebagai sesi lengket.

Afinitas sesi adalah upaya terbaik. Jangan simpan apa pun di status lokal instans yang tidak dapat Anda rekonstruksi atau ambil dari penyimpanan persisten. Simpan data apa pun yang harus tetap ada setelah sesi berakhir dalam penyimpanan yang tahan lama seperti tabel Unity Catalog.

Anda juga dapat menyimpan data dengan Lakebase.

Aplikasi berbasis browser

Afinitas sesi berfungsi secara otomatis untuk aplikasi berbasis browser. Permintaan pertama dari browser diarahkan ke instans yang dipilih secara acak, yang menetapkan cookie __Host-databricks-app-router. Permintaan berikutnya yang menggunakan cookie tersebut akan diarahkan ke instans yang sama.

Klien API

Untuk mendapatkan afinitas sesi untuk klien API, sertakan __Host-databricks-app-router cookie dalam setiap permintaan dan atur ke UUID yang dihasilkan secara acak. Semua permintaan dengan rute nilai cookie yang sama ke instans yang sama.

curl -X GET https://<your-app>.aws.databricksapps.com/api/endpoint \
  -H "Authorization: Bearer YOUR_BEARER_TOKEN" \
  -b "__Host-databricks-app-router=f8822466-3b1e-423a-988b-54c9e639c250"

Penugasan ulang sesi

Sesi dapat berpindah ke instans yang berbeda dalam kasus berikut:

  • Instans menjadi tidak tersedia (misalnya, saat penerapan atau kegagalan sistem).
  • Anda mengubah jumlah instans.
  • Azure Databricks menyeimbangkan kembali sesi di seluruh instans.
  • Permintaan individu salah dialihkan (jarang terjadi).

Keterbatasan

Batasan berikut berlaku untuk aplikasi berskala horizontal:

  • Setiap ruang kerja dapat memiliki paling banyak 5 aplikasi berskala horizontal. Hubungi perwakilan Azure Databricks Anda untuk menaikkan batas ini.
  • Setiap aplikasi berskala horizontal dapat memiliki paling banyak 5 instans. Hubungi perwakilan Azure Databricks Anda untuk menaikkan batas ini.
  • Tab Log memperlihatkan log dari satu instans pada satu waktu. Untuk melihat log di semua instans, aktifkan telemetri aplikasi.