Apa saja tantangan khas yang muncul saat mengubah aplikasi penyewa tunggal menjadi aplikasi multitenant? Keamanan dan isolasi data menurut saya yang paling signifikan. Apa yang lainnya?
Saya salah satu arsitek untuk upaya otomatisasi yang cukup signifikan, dan secara historis hanya perusahaan kami yang menggunakannya. Kami ingin memungkinkan orang lain untuk menggunakannya juga. Setiap kali kita berbicara tentang "menjadikannya multitenant", percakapan berkisar seputar menjaga pengguna dengan satu penyewa dari data yang dimiliki penyewa lain, dan memastikan bahwa pengguna dengan satu penyewa tidak dapat (baik secara sengaja atau tidak sengaja) membuat dampak pada pengguna lain. lingkungan penyewa. Yang saya bertanya-tanya adalah apakah keamanan / isolasi data benar-benar satu-satunya masalah utama di sini, atau apakah ada beberapa masalah utama lain yang tidak kita pikirkan.
sumber
Jawaban:
Selain siloing data, Anda mungkin mengalami masalah dengan
Beberapa di antaranya berasumsi bahwa Anda menjalankan semua penyewa di ruang alamat yang sama (mesin atau cluster). Jika setiap penyewa menjalankan perangkat lunak Anda pada perangkat kerasnya, Anda dapat memperdebatkan beberapa hal di atas dan menambahkan:
sumber
Masalah terbesar dalam multi-tenancy menurut saya adalah kustomisasi. Ini terjadi secara rutin jika Anda menjual aplikasi bisnis ke perusahaan. Itu bisa bervariasi dari sesuatu yang sederhana seperti setiap pelanggan menginginkan kulit mereka sendiri hingga kemampuan untuk mengonfigurasi bidang, aturan, formulir, dan laporan tambahan. Tingkat penyesuaian yang Anda butuhkan untuk mendukung memainkan peran penting dalam arsitektur.
sumber
Jawaban Mike sangat baik, dan banyak poin di sana hampir meremehkan kompleksitas mereka karena betapa singkatnya mereka, jadi ingatlah itu.
Satu hal yang akan saya tambahkan adalah Anda harus memiliki alat manajemen yang baik untuk membuat (dan kemudian, mengelola) penyewa baru. Bergantung pada arsitektur fisik yang Anda gunakan, ini bisa jauh dari sepele, dan merupakan sesuatu yang sering diabaikan. Manfaat suatu perangkat lunak sebagai produk layanan baru benar-benar berperan ketika ada sejumlah besar penyewa, sehingga cukup banyak upaya harus dilakukan untuk memenuhi kebutuhan ini.
Untuk memperluas jawaban Sriram; kustomisasi per penyewa cukup banyak dilarang, segala sesuatu yang penyewa mungkin ingin ubah harus dapat dikonfigurasi . Misalnya, jika solusi Anda tidak memenuhi penambahan dinamis bidang data di setidaknya beberapa area utama, Anda kemungkinan akan dibanjiri dengan permintaan untuk penyesuaian. Ini salah satu dari beberapa kasus di mana sedikit tambahan kompleksitas dimuka tidak benar-benar membayar off (katakanlah itu bertentangan YAGNI, atau setidaknya, tingkat konfigurasi hampir merupakan persyaratan utama, sehingga Anda yang akan membutuhkan itu).
sumber