Topik temu duga representatif

Temu duga reka bentuk sistem: Bagaimanakah anda mereka bentuk perkhidmatan dasar kadar penggunaan (burn-rate) SLO dan bajet ralat?

Reka bentuk sistemSukar
Pasukan Editorial Offer.ccDiterbitkan Dikemas kini

Soalan

Reka bentuk perkhidmatan yang mengira SLO, bajet ralat dan kadar penggunaan (burn rate) untuk banyak perkhidmatan serta mencetuskan get kebolehpercayaan dan amaran. Bagaimanakah anda mengendalikan data lewat, tetingkap, pembisuan (silence), isian semula (backfill) dan pengecualian?

Gesaan dan konteks

Reka bentuk perkhidmatan yang mengira SLO, bajet ralat dan kadar penggunaan (burn rate) untuk banyak perkhidmatan serta mencetuskan get kebolehpercayaan dan amaran. Bagaimanakah anda mengendalikan data lewat, tetingkap, pembisuan (silence), isian semula (backfill) dan pengecualian?

Ini sesuai untuk peranan SRE, platform, bahagian belakang (backend) dan reka bentuk sistem. Buku kerja SRE Google menerangkan bajet ralat sebagai cara untuk mengimbangi kebolehpercayaan dengan kelajuan penyampaian, manakala amaran kadar penggunaan memberi tumpuan kepada seberapa cepat bajet tersebut dihabiskan. Reka bentuk ini mesti menghubungkan definisi, pengiraan, amaran, keputusan dan kebolehsahtentuan (auditability).

Perkara yang diuji oleh penemu duga

  • Membezakan peristiwa SLI, sasaran SLO, tempoh pematuhan, bajet ralat dan kadar penggunaan (burn rate).
  • Menerangkan sebab tetingkap pantas dan perlahan saling melengkapi dan cara hingar (noise) dikawal.
  • Mereka bentuk penyahduplikasian, data lewat, sampel pendua, isian semula (backfill) dan pengiraan semula berversi.
  • Mengasingkan amaran daripada get pelaksanaan (deployment gates), respons bersedia (on-call), pembisuan (silence) dan pengecualian manusia.
  • Menetapkan sempadan untuk pengasingan penyewa (tenant), kos pertanyaan, kebolehkesanan sejarah dan kebenaran.
  • Mengesahkan dasar dengan metrik kualiti data dan main semula (replay) berbanding hanya melukis papan pemuka.

Kerangka jawapan 30 saat

"Saya akan membahagikan perkhidmatan ini kepada spesifikasi SLO, penyerapan peristiwa, pengagregatan tetingkap, pengiraan bajet, penilaian dasar dan audit pemberitahuan. Setiap SLO menetapkan peristiwa berjaya dan jumlah peristiwa, sasaran, tempoh pematuhan serta versi; kadar penggunaan ialah kadar ralat yang diperhatikan dibahagikan dengan kadar ralat yang dibenarkan. Tetingkap pantas mengesan lonjakan dan tetingkap perlahan mengesahkan ketahanan, dengan semakan kesegaran dan saiz sampel. Data lewat atau yang diisi semula mencipta pengiraan semula berversi dan bukannya menulis semula keputusan yang telah diaudit secara senyap."

Analisis mendalam langkah demi langkah

Langkah 1: Tentukan SLI dan kontrak peristiwa

Spesifikasi SLO menamakan perkhidmatan, jenis metrik, peristiwa berjaya, jumlah peristiwa, sasaran, tempoh pematuhan, dimensi pengagregatan dan zon masa. Pembilang memerlukan kunci penyahduplikasian yang stabil dan masa peristiwa. Pembatalan klien, kegagalan kebergantungan dan kerosakan platform tidak boleh dicampuradukkan tanpa dasar yang jelas. Setelah diterbitkan, spesifikasi tersebut diberi versi supaya pengiraan sejarah menggunakan versi yang aktif pada masa itu.

Langkah 2: Kira bajet dan kadar penggunaan

Bagi sasaran 99.9%, nisbah ralat yang dibenarkan sepanjang tempoh pematuhan ialah 0.1%. Bahagikan kadar ralat tetingkap semasa dengan kadar yang dibenarkan itu untuk mendapatkan kadar penggunaan: 1 menggunakan bajet pada kadar yang dirancang, manakala nilai melebihi 1 menggunakannya dengan lebih cepat. Simpan kiraan mentah dan agregat bersama pengangka, penyebut dan sempadan masa supaya hasil boleh dikira semula dan bukannya hanya mengekalkan peratusan.

Langkah 3: Gabungkan tetingkap pantas dan perlahan

Tetingkap pantas mengesan lonjakan keluaran dengan cepat; tetingkap perlahan mengesahkan bahawa impak tersebut berterusan. Sesuatu dasar merekodkan kedua-dua panjang tetingkap, ambang kadar penggunaan, volum peristiwa minimum dan penilaian yang diperlukan. Cetuskan hanya apabila kesegaran dan saiz penyebut mencukupi. Perkhidmatan boleh menggunakan dasar yang berbeza, tetapi templat harus menyatakan tujuan daripada memaksa setiap amaran ke dalam satu ambang.

Langkah 4: Kendalikan data lewat, pendua dan isian semula (backfill)

Jadikan penyerapan idempoten mengikut ID peristiwa atau baldi masa (time bucket), dan kekalkan tanda aras air (watermark) pengagregatan serta versi pembetulan. Peristiwa lewat dalam kelewatan yang dibenarkan mencetuskan pengiraan semula; peristiwa di luar tempoh tersebut menandakan data sebagai tidak lengkap. Isian semula tidak boleh mengubah pemberitahuan atau get lama secara senyap. Rekodkan nilai lama, nilai baharu, pengendali, sebab dan ID keputusan yang terjejas.

Langkah 5: Hubungkan amaran, get dan pengecualian

Perkhidmatan amaran memberitahu dan meningkatkan (escalate), pengawal pelaksanaan menjeda atau meminta kelulusan, dan perkhidmatan dasar mengeluarkan keadaan yang disokong bukti. Pengecualian mempunyai skop, tempoh tamat, pelulus dan sebab. Pembisuan (silence) menyekat pemberitahuan sahaja; ia tidak menghentikan pengiraan bajet. Setiap get merangkumi versi SLO, tetingkap, kiraan, kesegaran dan peraturan supaya keputusan boleh diaudit.

Langkah 6: Skalakan dan pantau perkhidmatan

Shard pengagregatan mengikut perkhidmatan, rantau dan penyewa, hadkan dimensi kekardinalan tinggi dan simpan pertanyaan berulang dalam cache. Pantau lag penyerapan, kehilangan, pertindihan, kelewatan pengagregatan, masa penilaian, kejayaan pemberitahuan dan ralat dasar. Mainkan semula insiden sejarah untuk mengesahkan tetingkap dan suntik kegagalan untuk mengukur kependaman hujung ke hujung daripada peristiwa ke amaran dan peristiwa ke get. Data yang tidak lengkap harus ditunjukkan sebagai tidak diketahui dan ditingkatkan, bukannya dilaporkan sebagai sihat.

Pertukaran (trade-offs), sempadan dan perolehan maklumat

Perkhidmatan bajet ralat mengubah sasaran kebolehpercayaan kepada keputusan kejuruteraan yang boleh diaudit. Ambang kadar penggunaan yang lebih sensitif meningkatkan hingar dan beban amaran; tetingkap yang lebih panjang bertindak balas dengan lebih perlahan. Asingkan fakta yang dikira, tindakan pemberitahuan dan keputusan pelaksanaan. Benarkan pengiraan semula yang dibetulkan sambil mengekalkan versi sejarah. Perkhidmatan ini membekalkan bukti yang dikongsi; ia tidak memilih keutamaan pasukan.

Model jawapan berkualiti tinggi

"Saya akan bermula dengan spesifikasi SLO berversi yang merangkumi peristiwa berjaya dan jumlah peristiwa, sasaran, tempoh pematuhan, dimensi dan penyahduplikasian. Penyerapan idempoten menyimpan pengangka, penyebut, sempadan masa dan tanda aras air mengikut perkhidmatan dan tetingkap. Pengagregatan mengira kadar ralat, kadar ralat yang dibenarkan dan kadar penggunaan. Penilaian dasar menggunakan tetingkap pantas untuk lonjakan dan tetingkap perlahan untuk ketahanan, memeriksa volum minimum dan kesegaran.

Pemberitahuan, get pelaksanaan dan pengecualian manusia adalah pengguna yang berasingan. Pembisuan (silence) menyekat pemberitahuan tetapi membiarkan pengiraan terus berjalan; get mengeluarkan bukti dengan versi SLO, tetingkap, kiraan, peraturan dan data; pengecualian diluluskan, terikat masa dan boleh diaudit. Data lewat mencipta pengiraan semula berversi daripada mengubah keputusan terdahulu secara senyap.

Pada skala besar, saya melakukan pembahagian (sharding) mengikut perkhidmatan, rantau dan penyewa, mengehadkan label berkardinaliti tinggi serta memantau lag penyerapan, pendua, kehilangan, kelewatan pengagregatan dan kejayaan pemberitahuan. Main semula dan suntikan kerosakan mengesahkan dasar tersebut. Data yang tidak lengkap ditandakan sebagai tidak diketahui dan ditingkatkan dan bukannya dikira sebagai sifar ralat."

Kesilapan lazim

  • Hanya menyimpan peratusan SLO → saiz sampel dan sempadan hilang → kekalkan pengangka, penyebut, tetingkap dan tanda aras air.
  • Satu ambang untuk setiap perkhidmatan → risiko dan trafik berbeza → versikan dasar mengikut sasaran, volum dan tetingkap.
  • Menganggap pembisuan sebagai menghentikan pengiraan → fakta bajet hilang → sekat pemberitahuan sahaja dan teruskan pengauditan.
  • Menulis ganti sejarah dengan data lewat → keputusan keluaran tidak dapat dibina semula → versikan pengiraan semula dan kekalkan nilai lama serta baharu.
  • Menganggap data yang hilang sebagai sihat → kegagalan pengumpulan disembunyikan → tunjukkan tidak diketahui dan beri amaran tentang kualiti data.
  • Menjadikan get bergantung pada keadaan pemberitahuan → percubaan semula pemberitahuan mengubah hasil keluaran → get membaca bukti penilaian yang tidak boleh diubah (immutable).

Soalan susulan dan jawapan

Mengapa menggunakan kedua-dua tetingkap pantas dan perlahan?

Tetingkap pantas mengurangkan masa pengesanan untuk lonjakan; tetingkap perlahan menapis hingar sementara dan mengesahkan penggunaan bajet yang berterusan. Bersama-sama ia mengimbangi kelajuan tindak balas dan positif palsu, tetapi ambang mesti disahkan terhadap volum peristiwa.

Apakah yang berlaku kepada amaran lama selepas isian semula (backfill) mengubah kadar penggunaan?

Kekalkan rekod penilaian dan pemberitahuan lama, cipta pengiraan semula yang ditag dengan versi data baharu dan nyatakan sama ada get semasa berubah. Jangan padamkan sejarah; responden memerlukan fakta yang tersedia pada masa itu.

Bagaimanakah anda menghalang dimensi berkardinaliti tinggi daripada membebankan sistem?

Hadkan label yang dibenarkan, sampelkan hirisan penyewa atau laluan mengikut peringkat (tier), zahirkan hanya paparan yang bernilai dan kuat kuasakan bajet serta had masa tamat (timeout) pertanyaan. SLO peringkat perkhidmatan tidak sepatutnya memerlukan dimensi tanpa had.

Bagaimanakah pengecualian mengelak daripada memintas get secara kekal?

Ikatkan setiap pengecualian pada perkhidmatan, perubahan atau julat masa, perlukan pelulus serta sebab, dan kuat kuasakan tamat tempoh automatik. Pulihkan dasar lalai selepas itu dan ukur liputan pengecualian sebagai metrik audit.

Sumber awam

Soalan berkaitan

Alat temu duga berkaitan

Gunakan Jawab untuk jawapan reka bentuk sistem

Jelaskan keperluan terlebih dahulu, kemudian teruskan dengan skala, seni bina, pilihan komponen dan pertukaran (trade-off).

Lihat alat