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.
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
- Penjelasan lebih rinci tentang pola penyewaan aplikasi tersedia di Pola penyewaan database SaaS multi-penyewa
Tutorial dan kode
Aplikasi mandiri per penyewa:
Database per penyewa:
Multi-penyewa yang di-shard: