Bagikan melalui


Konsep utama di Databricks Apps

Artikel ini memperkenalkan konsep inti di balik Aplikasi Databricks, termasuk bagaimana aplikasi disusun, cara aplikasi mengelola dependensi dan status, cara kerja izin, dan cara aplikasi berinteraksi dengan sumber daya platform. Memahami konsep ini membantu saat mengembangkan, menyebarkan, dan mengelola aplikasi di ruang kerja Anda.

Aplikasi

Aplikasi Databricks adalah aplikasi web yang berjalan sebagai layanan kontainer di platform tanpa server Azure Databricks. Pengembang menggunakan kerangka kerja yang didukung seperti Streamlit, Dash, atau Gradio untuk membangun aplikasi yang memberikan data interaktif atau pengalaman AI dalam ruang kerja Azure Databricks.

Setiap aplikasi mencakup konfigurasi, identitas, dan lingkungan runtime terisolasinya sendiri. Karena aplikasi milik ruang kerja tertentu, aplikasi dapat mengakses sumber daya tingkat ruang kerja seperti gudang SQL dan sumber daya tingkat akun seperti Unity Catalog. Pengembang juga dapat memilih untuk berbagi aplikasi dengan pengguna di luar ruang kerja tetapi dalam akun Azure Databricks yang sama.

Meskipun kontainer aplikasi berjalan pada infrastruktur tanpa server Azure Databricks, aplikasi itu sendiri dapat terhubung ke sumber daya tanpa server dan non-serverless. Secara konseptual, aplikasi bertindak sebagai layanan sarana kontrol yang menghosting UI web dan mengakses layanan sarana data Azure Databricks yang tersedia. Untuk informasi selengkapnya, lihat gambaran umum arsitektur Databricks.

Untuk meluncurkan dan mengelola aplikasi, buka bagian Aplikasi di antarmuka pengguna ruang kerja.

Templat

Templat aplikasi adalah perancah bawaan yang membantu pengembang mulai membangun aplikasi dengan cepat menggunakan kerangka kerja yang didukung. Setiap templat menyertakan struktur file dasar, app.yaml manifes, requirements.txt file untuk aplikasi Python, dan kode sumber sampel.

File app.yaml menentukan perintah untuk menjalankan aplikasi (misalnya, streamlit run <app-name> untuk aplikasi Streamlit), menyiapkan variabel lingkungan lokal, dan mendeklarasikan sumber daya yang diperlukan.

  • Gunakan requirements.txt untuk mencantumkan paket Python tambahan untuk diinstal dengan pip.
  • Gunakan package.json untuk mencantumkan paket Node.js untuk menginstal dengan npm.

File-file ini melengkapi lingkungan sistem default dan paket yang telah diinstal sebelumnya. Untuk informasi selengkapnya, lihat Lingkungan sistem Databricks Apps.

Pengembang dapat menghasilkan aplikasi baru dari templat menggunakan UI atau CLI Azure Databricks.

Lingkungan dan paket sistem

Aplikasi Databricks berjalan di lingkungan sistem yang telah dikonfigurasi sebelumnya yang dikelola oleh Azure Databricks. Untuk detailnya, lihat Lingkungan sistem Databricks Apps.

Setiap aplikasi memiliki lingkungan terisolasi sendiri untuk mencegah konflik dependensi. Untuk memastikan konsistensi, tentukan paket yang diperlukan dan versinya dalam file yang sesuai untuk aplikasi Anda:

  • Untuk Python, gunakan requirements.txt.
  • Untuk Node.js, gunakan package.json.

Untuk penyebaran hibrid, Anda kemungkinan besar akan memiliki kedua file.

Selama penyebaran, Azure Databricks menginstal dependensi ini ke lingkungan runtime terisolasi aplikasi. Jika Anda menyertakan paket yang sudah diinstal sebelumnya, versi yang ditentukan akan mengambil alih default.

Lihat Mengelola dependensi untuk aplikasi Databricks untuk detail selengkapnya.

Sumber daya aplikasi

Sumber daya aplikasi adalah layanan asli Azure Databricks yang sangat diperlukan oleh aplikasi, seperti gudang data SQL, titik akhir penyajian model, pekerjaan, rahasia, atau volume. Anda menyatakan dependensi ini dalam manifes databricks.yml menggunakan kolom resources. Azure Databricks mendukung jenis sumber daya berikut:

  • Gudang SQL
  • Pekerjaan
  • Titik akhir pengoperasian model
  • Ruang jin
  • Rahasia
  • Kapasitas

Untuk mengakses layanan Azure Databricks yang belum memiliki jenis sumber daya yang didukung, gunakan rahasia yang dikelola Katalog Unity untuk menyuntikkan kredensial dengan aman. Lihat Manajemen Rahasia.

Ada dua tahap untuk mengonfigurasi sumber daya aplikasi:

  • Deklarasi (pengembangan) - Deklarasikan setiap sumber daya yang databricks.yml diperlukan dalam manifes. Ini menentukan sumber daya mana yang dibutuhkan aplikasi dan izin apa yang diperlukannya.
  • Konfigurasi (penyebaran) - Selama penyebaran, gunakan UI Databricks Apps untuk mengonfigurasi sumber daya yang dideklarasikan dengan instans khusus ruang kerja aktual (misalnya, memilih gudang SQL tertentu).

Pemisahan antara deklarasi dan konfigurasi ini memungkinkan aplikasi menjadi portabel di seluruh lingkungan. Misalnya, Anda dapat menyebarkan kode aplikasi yang sama di ruang kerja pengembangan dan menautkannya ke satu gudang SQL. Dalam produksi, Anda dapat menggunakan kembali kode dan mengonfigurasi gudang yang berbeda tanpa membuat perubahan kode. Untuk mendukung hal ini, hindari menetapkan secara permanen ID sumber daya aplikasi atau nilai yang spesifik terhadap lingkungan di aplikasi Anda.

Azure Databricks memberlakukan akses hak istimewa paling sedikit. Aplikasi harus menggunakan sumber daya yang ada dan tidak dapat membuat sumber daya baru. Selama penyebaran, admin ruang kerja meninjau dan menyetujui akses aplikasi yang diminta ke sumber daya. Perwakilan layanan aplikasi menerima izin yang diperlukan, dan pengembang aplikasi harus memiliki izin untuk memberinya.

Untuk mempelajari selengkapnya, lihat Menambahkan sumber daya ke aplikasi Databricks.

Status aplikasi

Aplikasi dapat memiliki salah satu status berikut: Berjalan, Dihentikan, Menyebarkan, atau Mengalami Crash.

  • Berjalan - Aplikasi sedang berjalan dan dapat diakses. Azure Databricks menagih untuk sumber daya komputasi yang digunakan saat aplikasi sedang berjalan.
  • Dihentikan - Aplikasi tidak dapat diakses dan tidak dikenakan biaya apa pun. Azure Databricks mempertahankan konfigurasi dan lingkungan aplikasi, sehingga Anda dapat memulai ulang tanpa mengonfigurasi ulang.
  • Menyebarkan - Aplikasi sedang dimulai. Ini belum dapat diakses dan tidak dikenakan biaya apa pun selama tahap ini.
  • Gangguan - Aplikasi gagal memulai atau berhenti secara tak terduga. Ini tidak dapat diakses dan tidak dikenakan biaya. Anda dapat melihat log untuk memecahkan masalah dan memulai ulang aplikasi setelah masalah diselesaikan.

Status aplikasi

Status aplikasi menyertakan data atau konteks apa pun yang perlu dipertahankan aplikasi di seluruh sesi atau interaksi pengguna. Aplikasi tidak mempertahankan status dalam memori setelah dimulai ulang. Setiap data yang disimpan dalam memori hilang saat aplikasi dimatikan.

Untuk mempertahankan status antara sesi atau memulai ulang, pengembang harus menyimpannya secara eksternal. Misalnya, aplikasi dapat mempertahankan status menggunakan Databricks SQL (seperti tabel Delta), file ruang kerja, atau volume Unity Catalog. Kasus penggunaan umum termasuk penembolokan hasil kueri, menyimpan preferensi pengguna, atau mencatat tindakan pengguna di seluruh sesi.

Autentikasi dan otorisasi aplikasi

Aplikasi Databricks menggunakan OAuth 2.0 untuk autentikasi dan kontrol akses. Setiap aplikasi memiliki dua identitas pelengkap yang menentukan caranya mengautentikasi dan mengotorisasi akses ke sumber daya Azure Databricks: otorisasi aplikasi dan otorisasi pengguna.

  • Otorisasi aplikasi - Azure Databricks secara otomatis membuat perwakilan layanan untuk setiap aplikasi. Perwakilan layanan ini bertindak sebagai identitas aplikasi dan diberikan izin oleh pengembang aplikasi. Semua pengguna aplikasi berbagi identitas ini dan memiliki akses ke sekumpulan izin yang sama. Model ini berguna untuk operasi yang tidak bergantung pada konteks masing-masing pengguna, seperti pengelogan atau tindakan tingkat sistem.

  • Otorisasi pengguna - Model ini menggunakan identitas pengguna aplikasi untuk mengautentikasi dan mengotorisasi akses. Pengguna harus termasuk dalam akun Azure Databricks tempat aplikasi disebarkan. Setelah masuk melalui akses menyeluruh (SSO), aplikasi dapat menggunakan kredensial pengguna untuk mengakses sumber daya yang diatur seperti gudang SQL. Hal ini memungkinkan aplikasi untuk menghormati izin yang sangat terperinci yang dikelola oleh Unity Catalog tanpa memberikan izin tersebut kepada prinsipal layanan aplikasi.

Aplikasi meminta cakupan OAuth tertentu dalam manifesnya untuk mengontrol API dan sumber daya mana yang dapat mereka akses. Model fleksibel ini mendukung keamanan tingkat perusahaan dan memungkinkan kontrol akses terperinci.

Untuk informasi selengkapnya, lihat Mengonfigurasi otorisasi di aplikasi Databricks.

Pengguna aplikasi

Setelah penyebaran, pengembang aplikasi dapat berbagi aplikasi dengan pengguna atau grup dengan memberikan CAN_USE izin atau CAN_MANAGE pada instans aplikasi. Pengguna tidak perlu termasuk dalam ruang kerja yang sama, tetapi mereka harus menjadi bagian dari akun Azure Databricks yang sama. Untuk berbagi dengan pengguna eksternal, pertama-tama sinkronkan mereka ke dalam akun menggunakan penyedia identitas Anda. Untuk informasi selengkapnya, lihat Menyinkronkan pengguna dan grup dari MICROSOFT Entra ID menggunakan SCIM.

Anda juga dapat mendistribusikan aplikasi yang sama di seluruh lingkungan pengembangan, penahapan, dan produksi menggunakan alur CI/CD dan infrastruktur sebagai kode. UI Aplikasi terpusat membantu pengguna menemukan dan meluncurkan aplikasi yang diizinkan untuk mereka gunakan.