Apa sebenarnya aplikasi multi-tenant?

15

Menurut definisi yang tersedia online adalah " Multi-tenancy adalah arsitektur di mana satu contoh aplikasi perangkat lunak melayani banyak pelanggan ". Itu berarti saya memiliki situs web Restoran atau Sekolah dan saya memberikan akses ke restoran atau sekolah yang berbeda untuk menggunakan aplikasi saya dengan data mereka sendiri dengan menggunakan kredensial mereka yang saya berikan setelah mereka membeli produk manajemen sekolah saya. Seperti situs web saya seperti schoolmanagement.com dan saya memberikan sub domain yang berbeda untuk klien sekolah yang berbeda seperti school1.schoolmanagement.com & school2.schoolmanagement.com tetapi kode ini sama di belakang kedua subdomain ini. Kedua sekolah memiliki fungsi atau tema yang berbeda tergantung pada basis datanya masing-masing. Jadi saya perlu menyediakanschoolmanagement.com untuk login dan sekali login klien saya berdasarkan kredensial login mereka, saya mengarahkan ulang ke url masing-masing misalnya school1.schoolmanagement.com .

Ini adalah pemahaman saya tentang aplikasi multi tenant. Apakah pemahaman saya benar? Apakah ada aplikasi multi-tenant online yang dapat saya lalui.

Nomi Ali
sumber
1
Apa yang Anda maksud dengan "Apakah ada aplikasi multi-tenant online yang dapat saya lalui." Apakah Anda ingin mendapatkan sumbernya, atau mencoba sebagai penyewa, atau menjalankan sebagai tuan rumah? Seperti yang Anda perhatikan, hosting domain adalah contoh multi-penyewa yang umum, dengan perusahaan host besar dan kecil. Google Apps for Business (atau apa pun branding saat ini) juga merupakan aplikasi multi-tenant yang tersebar luas.
Kristian H
1
Sejauh ini, Anda berada di jalan yang benar. Multikerja terkait dengan kepemilikan data. Data tersegmentasi oleh penyewa (pemilik). Penggunaan aplikasi harus sama karena alasan sederhana: skala ekonomis. Penyimpanan data bisa juga sama atau bisa berbeda untuk setiap tenan. Data tidak dapat diakses di antara penyewa (atau biasanya mereka tidak, sejauh ini saya tahu).
Laiv
@KristianH terima kasih untuk contoh hosting domain, saya mengerti.
Nomi Ali
@ Longv Jadi kita dapat memiliki basis data yang berbeda untuk setiap klien dengan konfigurasi terpisah mereka sendiri?
Nomi Ali
2
Iya. Itulah (IMO) cara yang lebih disukai. Tapi itu juga yang mahal. Ketika saya mengatakan database yang berbeda, mereka bisa: a) Skema yang berbeda atau contoh db dalam RDBMS yang sama atau b) RDBMS yang sama sekali berbeda.
Laiv

Jawaban:

9

Ya itu saja. Tetapi definisi wikipedia tidak cukup umum. Itu tidak membahas arsitektur multi-tier atau bentuk arsitektur yang lebih baru seperti SOA atau layanan microser.

Multi-tenancy adalah tentang sistem perangkat lunak dan isolasi data . Beberapa contoh:

  • sistem multi-tier dengan basis data unik bisa multi penyewa. Contoh: sistem SAP terdiri dari backend basis data dan beberapa server aplikasi web yang mengekspos layanan web yang dapat diskalakan. Ini multi-penyewa: Anda dapat menambah pelanggan baru tanpa mengubah instalasi perangkat lunak yang sedang berjalan, dan beberapa pelanggan dapat menggunakan sistem tanpa pernah saling mengenal. Data sepenuhnya terisolasi (teknologi berpemilik).
  • sistem Anda terdiri dari satu atau beberapa proses yang menjalankan layanan web yang terpapar ke pelanggan yang berbeda melalui nama domain yang berbeda (tetapi masih proses yang sama yang menjalankannya di server). Isolasi data dicapai dengan database terpisah. Ini benar-benar multi-tenant.
  • sebuah sistem layanan mikro dapat juga menjalankan beberapa set layanan web yang digabungkan secara longgar, masing-masing menggunakan basis data mikro sendiri. Jika diperlukan untuk meningkatkan, Anda dapat memulai klon baru dari layanan microser yang sama dan mereka akan melalui beberapa fitur mendaftar menemukan rekan-rekan mereka dan secara otomatis terhubung ke mereka, menawarkan kepada pengguna perilaku satu aplikasi. Lalu ada dua skenario yang mungkin:
    • jika, ketika Anda ingin melayani pelanggan baru, Anda harus memulai serangkaian layanan microser yang terpisah, dan mengatur bahwa layanan microser untuk satu pelanggan hanya terhubung ke layanan microser yang berkaitan dengan pelanggan yang sama, maka itu adalah penyewa tunggal.
    • tetapi jika Anda dapat melayani pelanggan baru menggunakan instance yang berjalan (dan layanan microser baru hanya diperlukan untuk kinerja), maka multi-tenant
Christophe
sumber
1

Saya akan mengatakan ya, pengertian Anda pada dasarnya benar. Aplikasi ini dibagikan oleh banyak pelanggan, dan juga setiap data pelanggan disertakan dalam basis data. Berbagi kode yang sama tanpa memiliki data pelanggan yang berbeda yang dimasukkan dalam database yang sama mungkin tidak akan dianggap sebagai multi-perusahaan.

Andy
sumber
2
@NomiAli Tidak, saya tidak akan mempertimbangkan multitenant itu. Itu menghilangkan lingkungan yang terpisah untuk setiap pelanggan. salah satu manfaat dari multitenant adalah bahwa database dan perangkat lunak ditingkatkan untuk semua pelanggan pada saat yang bersamaan. Satu penyebaran, dan semua orang ada di versi terbaru. Yang Anda bicarakan adalah setiap pelanggan memiliki instalasi terpisah mereka sendiri. Saya kira Anda bisa memiliki basis kode bersama tetapi database yang berbeda, tapi itu akan bodoh karena Anda harus sangat berhati-hati tentang perubahan DB Anda, membuatnya lebih mahal, yang mengalahkan tujuan multitenant.
Andy
1
@NomiAli Skema per pelanggan akan memiliki lebih banyak kelemahan daripada database per pelanggan, ini bahkan lebih sulit untuk dikelola karena Anda harus menjalankan skrip yang sama hanya dengan mengubah nama skema. Sekali lagi ini bukan tidak mungkin, tetapi tujuan dari aplikasi multitenant adalah untuk mengurangi biaya untuk vendor perangkat lunak; hal-hal yang Anda tanyakan tentang mendorong mereka kembali.
Andy
2
Jadi jika database saya yang kesepian, yang menahan semua penyewa macet atau terancam ... Kemana pengurangan biayanya? Dan apa yang terjadi ketika setiap tenan memiliki kebutuhan sumber daya dan kinerja yang berbeda? Bagaimana jika mereka ingin memiliki akses ke penyimpanan data? ... Iya. Menyimpan data yang berbeda per tenan dan skema yang berbeda adalah multitenacy. Di sini, strategi bisnis dan layanan yang ingin kami berikan kepada pelanggan lebih penting daripada rincian implementasi. Multi-tenancy adalah fitur, nilai diferensial. Semakin dekat dengan kebutuhan pelanggan, semakin baik.
Laiv
4
Anda melebih-lebihkan aspek multi-basis data sedikit. Banyak basis data hanyalah keputusan desain; Anda dapat memiliki banyak basis data yang berbagi skema yang sama dan menggunakan skrip untuk memperbarui semuanya secara bersamaan. Semua aplikasi multi-penyewa harus memisahkan data masing-masing pelanggan dari pelanggan lain; mekanisme dimana hal ini dilakukan adalah detail implementasi, dan tergantung pada faktor-faktor seperti tingkat isolasi yang diinginkan, dll.
Robert Harvey
0

Multi-tenancy adalah arsitektur di mana satu contoh aplikasi perangkat lunak melayani banyak pelanggan. Setiap pelanggan disebut penyewa. Penyewa dapat diberikan kemampuan untuk menyesuaikan beberapa bagian aplikasi, seperti warna antarmuka pengguna (UI) atau aturan bisnis, tetapi mereka tidak dapat menyesuaikan kode aplikasi.

Dalam arsitektur multi-penyewa, beberapa contoh aplikasi beroperasi di lingkungan bersama. Arsitektur ini dapat bekerja karena setiap penyewa terintegrasi secara fisik, tetapi secara logis terpisah; artinya satu instance perangkat lunak akan berjalan pada satu server dan kemudian melayani beberapa penyewa. Dengan cara ini, aplikasi perangkat lunak dalam arsitektur multi-penyewa dapat berbagi contoh khusus dari konfigurasi, data, manajemen pengguna dan properti lainnya.

Silakan merujuk ke https://whatis.techtarget.com/definition/multi-tenancy untuk info lebih lanjut ..

Seperti dalam kasus Anda, setiap anggota sekolah yang berlangganan situs Anda akan diotorisasi berdasarkan peran dan izin sewa dan akan diberikan akses ke database masing-masing melalui aplikasi yang sama. Aplikasi tunggal yang terhubung ke multi-database. Jika Anda membuat subdomain untuk setiap sekolah, maka itu membuatnya kembali ke model Single Tenancy yang sama.

Saya harap ini menjawab pertanyaan Anda.

Suraj Gauraje
sumber
1
Selamat Datang di Rekayasa Perangkat Lunak ! Harap edit jawaban Anda untuk menyertakan referensi ke sumbernya ; sekarang ini adalah kasus plagiarisme .
Glorfindel