Satu pangkalan kod, ratusan penyewa, sifar kebocoran data — asas kepada setiap perniagaan SaaS yang berskala.

Anda sedang membina platform yang melayani berbilang pelanggan dari satu penggunaan. Setiap pelanggan menjangkakan data yang terpencil, pengalaman berjenama, dan pengebilan bagi setiap penyewa — tetapi anda tidak mampu untuk menjalankan infrastruktur yang berasingan untuk setiap satu. Anda memerlukan kecekapan ekonomi infrastruktur kongsi dengan jaminan pengasingan sistem khusus. Ini adalah ketegangan asas seni bina SaaS, dan kesilapan dalam model pengasingan pada peringkat awal adalah salah satu kesilapan yang paling mahal dalam pembangunan platform.
Explore more design patterns and system architectures
Arkitek kami dapat membantu merancang dan membina sistem menggunakan pola ini untuk keperluan khusus anda.
Hubungi KamiSeni bina SaaS pelbagai penyewa menyediakan pengasingan logik atau fizikal antara penyewa sambil berkongsi sumber pengkomputeran, storan dan rangkaian yang mendasari. Corak ini merangkumi penyediaan penyewa, pengasingan data, pengurusan ciri, pemeteran pengebilan, dan penyesuaian label putih. Keputusan reka bentuk utama adalah model pengasingan: pangkalan data kongsi dengan keselamatan peringkat baris (RLS), skema-per-penyewa, atau pangkalan data-per-penyewa. Setiap model mengimbangi kekuatan pengasingan dengan kerumitan operasi dan kecekapan kos.
Sistem ini diatur menjadi tiga lapisan. Get laluan peka penyewa mengendalikan pengesahan, penyelesaian penyewa (melalui subdomain, tuntutan JWT, atau kunci API), dan penghalaan permintaan. Lapisan aplikasi beroperasi sepenuhnya dalam konteks penyewa — setiap pertanyaan, setiap kunci cache, setiap mesej baris gilir diselaraskan kepada penyewa yang diselesaikan. Lapisan data menguatkuasakan pengasingan pada peringkat storan melalui dasar keselamatan peringkat baris, pengumpulan sambungan setiap penyewa, dan pemisahan yang disulitkan semasa rehat.
tenant_id. Untuk skema-per-penyewa: penghalaan sambungan dinamik dengan pengurusan kumpulan sambungan. Untuk pangkalan data-per-penyewa: automasi penyediaan dengan Terraform/Pulumiacme.yourapp.com) lebih bersih untuk produk label putih dan membenarkan sijil TLS bagi setiap penyewa. Berasaskan laluan (yourapp.com/acme/) lebih mudah untuk dilaksanakan dan mengelakkan kerumitan DNS wildcard. MW mengesyorkan resolusi subdomain untuk B2B SaaS dengan keperluan label putih, berasaskan laluan untuk alat pelbagai penyewa dalaman.tenant_id. Ini kedengaran jelas, tetapi pertembungan kunci cache merentasi penyewa adalah salah satu pepijat pelbagai penyewa yang paling biasa. Kami menguatkuasakan ini melalui kilang kunci cache yang menambah awalan konteks penyewa secara automatik.| Lapisan | Teknologi |
|---|---|
| Pengkomputeran | Node.js (NestJS), Python (FastAPI), dikontena pada ECS Fargate atau Kubernetes |
| Data | PostgreSQL dengan RLS, Redis (lingkungan penyewa), S3 (baldi berpecah penyewa) |
| Identiti | Clerk, Auth0, atau Okta dengan organisasi lingkungan penyewa |
| Pengebilan | Stripe Connect (model pasaran), Stripe Billing (langganan bermeter) |
| Kebolehcerapan | Datadog dengan tag dimensi penyewa, pengelogkan berstruktur dengan tenant_id pada setiap entri |
| Guna Apabila | Elak Apabila |
|---|---|
| Membina platform B2B yang melayani 10+ pelanggan dari infrastruktur kongsi | Setiap pelanggan memerlukan infrastruktur yang khusus sepenuhnya (pematuhan/kontrak) |
| Anda memerlukan penjenamaan label putih, domain tersuai, dan kawalan ciri bagi setiap penyewa | Anda mempunyai kurang daripada 3 pelanggan — penggunaan yang lebih mudah bagi setiap pelanggan mungkin mencukupi |
| Penetapan harga berasaskan penggunaan atau bertingkat memerlukan pemeteran bagi setiap penyewa | Produk tersebut adalah aplikasi pengguna dengan akaun peringkat pengguna, bukan penyewa peringkat organisasi |
| Anda mahukan satu saluran penggunaan, satu timbunan pemantauan, satu giliran panggilan | Penyewa mempunyai skema atau logik perniagaan yang berbeza secara asas (bukan hanya konfigurasi) |
MW menganggap multi-tenancy sebagai perhatian merentas fungsi, bukan ciri. Kami melaksanakan penyebaran konteks penyewa pada peringkat middleware supaya kod aplikasi tidak pernah menapis secara manual mengikut penyewa — ia dikuatkuasakan oleh rangka kerja. Pelaksanaan RLS kami termasuk suite ujian automatik yang cuba capaian data merentas penyewa pada setiap larian CI. Kami telah membina platform pelbagai penyewa yang melayani 500+ penyewa pada infrastruktur kongsi dengan sifar insiden kebocoran data, dan kami telah memindahkan monolit penyewa tunggal ke seni bina pelbagai penyewa menggunakan corak 'strangler fig'.
Model tidak berfungsi dengan sendirinya. Saluran paip yang melatih, mengesahkan, menggunakan, dan memantau model anda adalah produk sebenar — model hanyalah satu artifak.
Pilihan optimum bergantung pada keperluan pengasingan penyewa dan skala anda. MicrocosmWorks biasanya mengesyorkan pendekatan pangkalan data kongsi, skema berasingan untuk kebanyakan produk SaaS B2B kerana ia mengimbangi kecekapan kos dengan pengasingan data, walaupun kami melaksanakan pangkalan data per-penyewa untuk pelanggan dalam industri terkawal seperti penjagaan kesihatan atau kewangan di mana pengasingan data yang ketat adalah mandatori. Arkitek kami menilai keperluan pematuhan anda, jumlah penyewa yang dijangka, dan corak pertanyaan sebelum mengesyorkan model penyewaan yang tepat.
MicrocosmWorks melaksanakan pengehadan kadar peka-penyewa, pengumpulan sambungan dengan kuota per-penyewa, dan pengasingan sumber pada lapisan pengkomputeran untuk mencegah masalah jiran bising. Kami menggunakan teknik seperti pengagihan giliran adil berwajaran dan lapisan cache khusus penyewa supaya lonjakan mendadak daripada seorang pelanggan tidak menyebabkan kependaman berantai kepada yang lain. Untuk penyewa peringkat perusahaan, kami boleh menyediakan partisi pengkomputan khusus sambil mengekalkan satah kawalan kongsi utuh.
MicrocosmWorks menawarkan perkhidmatan reka bentuk dan pelaksanaan seni bina pada kadar perundingan antara $15-$45/jam bergantung pada kerumitan dan kekananan pasukan yang diperlukan. Penglibatan seni bina SaaS multi-tenant yang biasa—merangkumi reka bentuk pangkalan data, pengasingan penyewa, pengesahan, dan saluran paip penempatan—berlangsung 8-16 minggu dengan pasukan pelbagai fungsi. Kami menskopkan setiap projek dengan fasa penemuan harga tetap supaya anda mempunyai keterlihatan kos penuh sebelum komited kepada pembinaan.
MicrocosmWorks membina saluran paip peruntukan penyewa automatik yang mengendalikan penciptaan skema, konfigurasi DNS, pengasasan bendera ciri, dan penempatan data permulaan dalam beberapa minit selepas pendaftaran baru. Kami menggunakan alatan infrastruktur-sebagai-kod seperti Terraform atau Pulumi digabungkan dengan aliran kerja dipacu acara supaya setiap penyewa baru mendapat persekitaran yang dikonfigurasi sepenuhnya tanpa campur tangan manual. Pendekatan ini membolehkan pelanggan kami menskalakan daripada 10 penyewa kepada 10,000 tanpa mengubah proses kemasukan.
MicrocosmWorks melaksanakan lapisan penyesuaian didorong konfigurasi menggunakan bendera ciri, metadata khusus penyewa, dan seni bina pemalam yang membolehkan tingkah laku per-penyewa tanpa percabangan kod. Kami mereka bentuk titik kebolehlanjutan pada tema UI, enjin aliran kerja, dan lapisan integrasi supaya penyewa boleh mempunyai penjenamaan unik, peraturan perniagaan, dan sambungan pihak ketiga, semuanya diuruskan melalui konfigurasi. Ini memastikan pasukan kejuruteraan anda mengekalkan satu pangkalan kod sambil menyokong pelbagai keperluan pelanggan.