Gesaan dan kes penggunaan
Perkhidmatan global telah pun menetapkan penyewa kepada beberapa sel, namun satu pelepasan yang tidak elok, kegagalan kebergantungan kongsi atau peristiwa kapasiti masih menyebabkan gangguan yang meluas. Audit seni bina semasa, kenal pasti laluan yang menyebarkan impak merentas sel, dan reka bentuk pemeriksaan suntikan kegagalan serta pemulihan yang boleh diulang untuk membuktikan setiap sel adalah sempadan pengasingan yang sebenar.
Perkara yang diuji oleh penemu bual
- Sama ada anda mentakrifkan sel sebagai replika lengkap yang boleh dijalankan, diskalakan dan diundur semula (rollback) secara bebas.
- Sama ada anda boleh menaakul tentang radius letupan (blast radius), peta penghalaan dan penetapan pengguna baharu yang konsisten.
- Sama ada anda mengendalikan satah kawalan kongsi, data rentas sel, kecondongan kapasiti dan migrasi penyewa hangat (hot-tenant).
- Sama ada anda menukar pelancaran progresif, pintu metrik dan latih tubi pemulihan kepada operasi yang konkrit.
Soalan untuk dijelaskan sebelum menjawab
- Adakah kunci pengasingan merupakan pengguna, penyewa, rantau atau pemisahan perniagaan, dan adakah akses rentas rantau dibenarkan?
- Data manakah yang mesti konsisten secara global, dan data manakah yang boleh konsisten pada akhirnya (eventually consistent) dalam sesuatu sel?
- Adakah objektifnya untuk mengehadkan impak penggunaan, bertahan daripada bencana serantau, atau kedua-duanya?
- Adakah beban boleh diramal, bolehkah penyewa hangat berpindah, dan bagaimanakah keidempotenan dikekalkan semasa migrasi?
Rangka kerja jawapan 30 saat
Saya mula-mula akan memetakan kebergantungan pengiraan, cache, giliran, data dan satah kawalan bagi setiap sel serta menandakan setiap laluan kongsi. Kemudian saya akan mentakrifkan batas tak berubah (invariants) pengasingan untuk penghalaan, kapasiti, pelepasan dan kerja rentas sel. Saya akan menyuntik lebihan beban satu sel, pelepasan yang tidak elok, gangguan kebergantungan data dan kehilangan satah kawalan, serta mengesahkan bahawa kadar ralat dan kependaman sel sihat kekal dalam pintu metrik. Mana-mana kebergantungan yang menyebarkan impak mesti dipisahkan, dihadkan kuota atau disokong oleh sandaran snapshot tempatan. Masa pemulihan, peratusan penyewa yang terjejas dan bukti latih tubi menentukan sama ada pengasingan adalah nyata.
Penyelaman mendalam langkah demi langkah
1. Sempadan sel
Sel ialah unit sistem yang boleh digunakan, diskalakan dan dipulihkan secara bebas, biasanya mengandungi tika perkhidmatan, cache, giliran dan shard data khusus. Perkhidmatan DNS, identiti atau konfigurasi kongsi harus kekal berkeistimewaan rendah dan berganding longgar, dengan tingkah laku degradasi yang ditakrifkan.
2. Penghalaan dan pemetaan
Lapisan penghalaan mencari peta mengikut kunci pengguna atau penyewa dan memajukan permintaan ke sel sasaran. Peta memerlukan versi, checksum dan dasar tamat tempoh. Semasa migrasi, tulis peta baharu terlebih dahulu dan alirkan keluar permintaan lama supaya satu entiti tidak menulis ke dua sel sekaligus.
3. Pengasingan data
Setiap sel memiliki sempadan penulisan tempatan; pertanyaan rentas sel mengutamakan unjuran bacaan yang direplikasi secara tak segerak. Keunikan global diletakkan dalam penyelaras khusus, atau menjadi keunikan setempat pemisahan serta perdamaian akhirnya, dan bukannya menumpukan setiap penulisan pada satu titik kongsi.
4. Kapasiti dan titik panas
Tetapkan kuota permintaan, giliran, sambungan pangkalan data dan storan bagi setiap sel untuk mengehadkan radius letupan maksimum. Pantau pengedaran penyewa dan tanda aras sumber. Penyewa hangat boleh berpindah ke sel yang melahu, tetapi migrasi memerlukan dwi-bacaan, penulisan tunggal dan peristiwa yang boleh dimainkan semula.
5. Risiko satah kawalan kongsi
Satah kawalan menguruskan peta, versi dan orkestrasi; ia tidak sepatutnya membawa semua data perniagaan. Semasa gangguan satah kawalan, penghala boleh berkhidmat daripada snapshot tempatan dengan TTL. Selepas tamat tempoh, benarkan bacaan selamat sahaja atau kembalikan ralat yang boleh dicuba semula.
6. Pelancaran dan pengunduran semula
Jalankan versi baharu dalam satu sel dan bandingkannya dengan sel garis dasar dari segi kadar ralat, kependaman ekor (tail latency), ketepuan sumber dan metrik perniagaan. Kembangkan secara berkelompok selepas melepasi pintu metrik. Sebarang regresi akan menjeda pengembangan dan mengundur semula sel tersebut tanpa mendegradasi sel yang sihat.
7. Operasi rentas sel
Laporan rentas sel, tugas kelompok dan migrasi akaun dijalankan melalui orkestrator dengan kunci keidempotenan, pajakan (leases) dan pusat pemeriksaan kemajuan. Sekiranya berlaku kegagalan, cuba semula shard yang belum selesai sahaja dan dedahkan penyiapan separa secara jelas kepada pemanggil.
8. Pemulihan bencana dan latih tubi
Sandarkan data dan konfigurasi setiap sel, dengan objektif titik pemulihan (RPO) dan objektif masa pemulihan (RTO) yang ditetapkan. Jalankan latih tubi pengasingan sel tunggal, kehilangan satah kawalan, kegagalan serantau dan kerosakan pemetaan untuk mengesahkan pemindahan trafik, pemulihan data dan skrip pengunduran semula daripada bergantung pada lebihan teoretikal.
Contoh Jawapan Berkualiti Tinggi
“Saya tidak akan menganggap pengasingan wujud semata-mata kerana perkhidmatan digunakan ke dalam beberapa sel. Saya akan menjejak permintaan penyewa melalui pangkalan data, giliran, cache, identiti, konfigurasi, penghalaan dan saluran paip pelepasan untuk mengenal pasti domain kegagalan kongsi. Kemudian saya akan mentakrifkan tiga batas tak berubah: keletihan satu sel tidak boleh menggunakan sumber sel lain, binaan yang rosak hanya boleh memasuki satu kelompok pelancaran, dan satah data boleh diteruskan daripada snapshot penghalaan tempatan semasa gangguan satah kawalan yang singkat.
Dalam persekitaran pementasan atau latih tubi pengeluaran yang diasingkan dengan ketat, saya akan menyuntik lebihan beban satu sel, kehilangan pangkalan data, konfigurasi yang buruk dan kehilangan direktori penghalaan. Sel yang sihat mesti kekal dalam pintu kadar ralat, kependaman P99 dan ketepuan. Mana-mana kebergantungan kongsi yang menyebarkan kegagalan akan menerima pemisahan, kuota setiap sel atau sandaran snapshot tempatan yang berversi. Pemeriksaan pemulihan meliputi pengasingan trafik, integriti data dan pengunduran semula pemetaan. Saya akan menjadikan peratusan penyewa yang terjejas, masa pemulihan dan kesihatan rentas sel sebagai bukti pelepasan, supaya pasukan membuktikan pengasingan secara berulang dan bukannya bergantung pada rajah seni bina.”
Kesilapan Lazim
- Mereplikasi pengiraan tanpa keadaan (stateless) sementara terus berkongsi pangkalan data, giliran atau kolam sambungan.
- Menyemak sama ada sel yang gagal pulih tanpa memeriksa kadar ralat dan kependaman ekor sel yang sihat.
- Menggunakan penghalaan rawak dan bukannya pemetaan penyewa yang stabil, menyebabkan penulisan rentas sel.
- Menguji kehilangan infrastruktur tetapi mengabaikan pelepasan yang tidak elok, penyewa hangat dan kegagalan satah kawalan.
Soalan Susulan dan Maklum Balas
Bagaimanakah anda tahu sama ada satah kawalan kongsi merosakkan pengasingan?
Putuskan sambungannya semasa latih tubi dan sahkan bahawa penghala boleh berkhidmat daripada pemetaan tempatan berversi dengan TTL. Selepas snapshot tamat tempoh, sistem memerlukan keadaan degradasi selamat yang jelas.
Apakah yang perlu diukur oleh pintu penerimaan pengasingan?
Tetapkan had untuk kadar ralat sel yang sihat, kependaman P99, ketepuan dan peratusan penyewa yang terjejas, serta rekod masa pemulihan. Pemulihan sel yang gagal sahaja tidak membuktikan pengasingan.
Adakah sel yang lebih banyak sentiasa bermaksud pengasingan yang lebih baik?
Tidak. Sel yang lebih kecil mengurangkan radius letupan teoretikal tetapi meningkatkan pemecahan kapasiti, kelompok pelancaran dan kos operasi rentas sel. Dapatkan kiraan daripada sasaran peratusan penyewa yang terjejas, kapasiti sel dan kos operasi yang mampan.
Bolehkah pelaporan rentas sel mencipta semula kegagalan kongsi?
Ya. Pelaporan harus membaca unjuran tak segerak dengan kuota dan degradasi berasingan. Permintaan dalam talian tidak boleh disebarkan secara segerak ke setiap sel.