Untuk kumpulan dan beberapa jenama
Beberapa syarikat, satu pemasangan, tiada pelanggan berkongsi
Kumpulan biasanya menyelesaikan masalah ini dua kali dengan buruk: sama ada lima pemasangan berasingan dan lima segala-galanya yang berasingan, atau satu pemasangan dengan janji khusus bahawa aplikasi sentiasa menapis dengan betul. Yang pertama mahal. Yang kedua hanyalah janji, dan janji bukan model keselamatan.
Jika anda mengendalikan lebih daripada satu syarikat — sebuah syarikat induk dengan anak syarikat, sebuah franji, dua jenama yang menyasarkan pasaran berbeza, sebuah agensi dan entiti yang dipisahkan daripada agensi itu — anda sudah tahu bentuk masalahnya. Jenama-jenama itu berkongsi orang, peralatan dan jabatan kewangan. Mereka tidak berkongsi pelanggan, dan tidak boleh nampak seperti berkongsi.
iKonekt menjalankan semuanya daripada satu pemasangan, dan pemisahan antara mereka dikekalkan oleh pangkalan data dan bukannya oleh kod. Perbezaan ini kedengaran akademik sehingga hari ia tidak lagi begitu.
Mengapa lapisan ini penting
Penapis pada peringkat aplikasi ialah satu ayat dalam satu pertanyaan. Ia berfungsi selagi setiap pertanyaan yang akan ditulis mengandunginya — termasuk yang ditulis dengan tergesa-gesa, yang ditulis oleh pembangun baharu, dan yang ditulis untuk laporan yang hanya akan digunakan sekali.
Dorongkan sempadan itu ke dalam pangkalan data dan aritmetiknya berubah. Dasar itu berjalan pada setiap bacaan dan setiap penulisan, di bawah segala-galanya. Pertanyaan yang terlupa syarikat tidak mengembalikan baris yang salah; ia tidak mengembalikan apa-apa. Mod kegagalan menjadi skrin kosong dan pembangun yang keliru, dan itulah mod kegagalan yang betul.
Skrin kosong ialah satu ciri. Kami lebih rela menjelaskan skrin kosong kepada jurutera kami sendiri daripada menjelaskan senarai pelanggan kepada dua pelanggan yang tidak menjangka akan bertemu.
- 1Pelanggan & urutanTerhad. Penjual dalam jenama A tidak boleh mengakui milik jenama B, secara binaan dan bukannya secara konfigurasi.
- 2Tuntutan ke atas pelanggan"Kami sudah mempunyai akaun ini" ialah kunci yang dipegang setiap syarikat — jadi dua jenama boleh bekerja di pasaran yang sama tanpa bertembung.
- 3Gesaan & tetapanSetiap syarikat menyunting miliknya sendiri. Satu-satunya tempat ini pernah dikongsi ialah pepijat, dan ia adalah pepijat yang sistem ini paling bangga dapat menemui.
- 4Program rakan kongsiSatu modul bagi setiap syarikat, bukan satu modul global yang diwarisi oleh semua orang.
Sempadan yang dikuatkuasakan di bawah lapisan aplikasi
Apa yang sesuatu kumpulan sebenarnya boleh kongsi
Pemisahan bukanlah pengasingan untuk keseronokan semata-mata. Perkara yang patut dikongsi merentas kumpulan dikongsi secara sengaja, dan kebanyakannya perkara yang membosankan — dan itu memang tepat, kerana kos penduaan tersembunyi pada perkara yang membosankan:
- Satu pemasangan untuk dijalankan dan dikemas kini. Satu penempatan, satu set kelayakan untuk dijaga, satu perkara untuk sentiasa ditampal.
- Satu pasukan orang, memakai topi yang berbeza. Seseorang boleh bekerja dalam lebih daripada satu syarikat; yang tidak boleh dilakukannya ialah melihat kedua-duanya serentak melalui pertanyaan yang lupa untuk bertanya.
- Satu set tabiat. Cara petunjuk diberikan, cara nota ditulis, cara kerja sampai kepada invois — dipelajari sekali, digunakan di mana-mana, dan itu memendekkan orientasi kepada kira-kira satu pagi sahaja.
- Satu hubungan dengan seluruh keluarga. castomAPI di sebaliknya, akaun yang sama, penyambung yang sama — dikonfigurasi mengikut syarikat di tempat yang penting.
Soalan yang sentiasa ditanya oleh kumpulan pada tempat kedua
"Bolehkah kami menjana laporan merentas semuanya?" Boleh — dari titik pandang kumpulan itu sendiri, secara sengaja dan jelas, bukannya sebagai kesan sampingan sempadan yang bocor. Perbezaan inilah keseluruhan reka bentuk: melintasi garisan itu mesti menjadi tindakan yang dilakukan oleh seseorang dengan sengaja, dengan kuasa untuk melakukannya. Ia tidak boleh sesuatu yang dicapai secara tidak sengaja oleh satu pengecam yang sesat.
Dan soalan yang mereka tanya pada tempat ketiga: "apa yang berlaku jika kami menjual salah satu jenama?" Sempadan yang dijaga oleh pangkalan data juga merupakan sempadan yang membolehkan anda mengangkat keluar satu salinan yang bersih. Itu bukan kebetulan — pemisahan dan kebolehpindahan ialah sifat yang sama dilihat daripada dua mesyuarat yang berbeza.
Di bawah lantai
Apa yang sebenarnya menjaga garisan itu
Bukan dakwaan, senarai. Jika pembekal tidak dapat menghasilkan senarai ini tentang produk mereka sendiri, itu patut diberi perhatian.
26
Jadual yang membawa syarikatnya, dengan semakan dipaksa aktif dan bukan sekadar tersedia.
72
Polisi-polisi, ditulis satu demi satu supaya setiap satu telah dibaca oleh seorang manusia, bukan dijana secara berkitar.
942
Ujian, dijalankan terhadap pangkalan data yang dibina semula dari sifar setiap kali ada perubahan.
0
Syarikat lalai. Permintaan tanpa skop akan gagal sebelum sampai ke data — tiada lalai sandaran untuk terlupa dilumpuhkan.

"Lima syarikat, lima pemasangan, lima invois daripada anda."
Satu pemasangan. Lima sempadan yang dijaga oleh pangkalan data.
Orang yang dikongsi, tabiat yang dikongsi, platform yang dikongsi — dan bukan satu pun pelanggan yang dikongsi. Melintasi garisan itu mesti sesuatu yang dilakukan oleh seseorang dengan sengaja, bukan sesuatu yang berjaya dilakukan oleh pengecam secara tidak sengaja.
Bagaimana pemisahan dibina →