Aplikasi Wingtip Tickets SaaS

Berlaku untuk:Azure SQL Database

Aplikasi Wingtip Tickets SaaS yang sama diimplementasikan di masing-masing dari tiga sampel. Aplikasi ini adalah daftar peristiwa sederhana dan aplikasi SaaS tiket yang menargetkan tempat-tempat kecil - bioskop, klub, dll. Setiap tempat adalah penyewa aplikasi, dan memiliki datanya sendiri: detail tempat, daftar peristiwa, pelanggan, pesanan tiket, dll. Aplikasi ini, bersama dengan skrip dan tutorial manajemen, menampilkan skenario SaaS menyeluruh. Ini termasuk proses provisi penyewa, pemantauan dan pengelolaan performa, manajemen skema, dan pelaporan lintas penyewa, dan analitik.

Tiga aplikasi SaaS dan pola penyewaan

Tersedia tiga versi aplikasi; masing-masing mengeksplorasi pola penyewaan database yang berbeda pada Azure SQL Database. Aplikasi pertama menggunakan aplikasi mandiri per penyewa dengan databasenya sendiri. Aplikasi kedua menggunakan aplikasi multi-penyewa dengan database per penyewa. Aplikasi ketiga menggunakan aplikasi multi-penyewa dengan database multi-penyewa yang di-shard.

Three tenancy patterns

Setiap sampel mencakup kode aplikasi, serta skrip manajemen dan tutorial yang menjelaskan berbagai desain dan pola manajemen. Setiap sampel disebarkan dalam waktu kurang dari lima menit. Ketiga aplikasi tersebut dapat disebarkan secara berdampingan sehingga Anda bisa membandingkan perbedaan desain dan manajemen.

Pola aplikasi mandiri per penyewa

Pola aplikasi mandiri per penyewa menggunakan aplikasi penyewa tunggal dengan database untuk setiap penyewa. Setiap aplikasi penyewa, termasuk databasenya, disebarkan ke dalam grup sumber daya Azure terpisah. Grup sumber daya dapat disebarkan dalam langganan penyedia layanan atau langganan penyewa dan dikelola oleh penyedia atas nama penyewa. Pola aplikasi mandiri per penyewa menyediakan isolasi penyewa terbesar, tetapi biasanya yang paling mahal karena tidak ada kesempatan untuk berbagi sumber daya antara beberapa penyewa. Pola ini sangat cocok untuk aplikasi yang mungkin lebih kompleks dan yang disebarkan untuk jumlah penyewa yang lebih kecil. Dengan penyebaran mandiri, aplikasi dapat disesuaikan untuk setiap penyewa dengan lebih mudah daripada dalam pola lain.

Periksa tutorial dan kode di GitHub .../Microsoft/WingtipTicketsSaaS-StandaloneApp.

Pola database per penyewa

Pola database per penyewa efektif untuk penyedia layanan yang memperhatikan isolasi penyewa dan ingin menjalankan layanan terpusat yang memungkinkan penggunaan sumber daya bersama yang hemat biaya. Database dibuat untuk setiap tempat atau penyewa, dan semua database dikelola secara terpusat. Database dapat dihosting dalam kumpulan elastis untuk menyediakan manajemen performa yang mudah dan hemat biaya, yang memanfaatkan pola beban kerja penyewa yang tidak dapat diprediksi. Database katalog menyimpan pemetaan antara penyewa dan database mereka. Pemetaan ini dikelola menggunakan fitur manajemen peta pecahan dari Pustaka Klien Database Elastis, yang menyediakan manajemen koneksi yang efisien untuk aplikasi.

Periksa tutorial dan kode di GitHub .../Microsoft/WingtipTicketsSaaS-DbPerTenant.

Pola database multi-penyewa yang di-shard

Database multi-penyewa efektif untuk penyedia layanan yang mencari biaya per penyewa yang lebih rendah dan tidak keberatan dengan berkurangnya isolasi penyewa. Pola ini memungkinkan pengelompokan sejumlah besar penyewa ke dalam database individual, mengurangi biaya per penyewa. Skala mendekati tak terbatas bisa dilakukan dengan memecah penyewa di beberapa database. Database katalog memetakan penyewa ke database.

Pola ini juga memungkinkan model hibrid di mana Anda dapat mengoptimalkan biaya dengan beberapa penyewa dalam database, atau mengoptimalkan isolasi dengan penyewa tunggal dalam database mereka sendiri. Pilihan tersebut dapat dibuat dengan basis penyewa per penyewa, baik ketika penyewa disediakan atau nanti, tanpa dampak pada aplikasi. Model ini dapat digunakan secara efektif ketika beberapa kelompok penyewa perlu diperlakukan secara berbeda. Misalnya, penyewa berbiaya rendah dapat ditetapkan ke database bersama, sedangkan penyewa premium dapat ditetapkan ke database mereka sendiri.

Periksa tutorial dan kode di GitHub .../Microsoft/WingtipTicketsSaaS-MultiTenantDb.

Langkah berikutnya

Deskripsi konseptual

Tutorial dan kode