🛠️ शाळेच्या पद्धतीने Site Reliability Engineering शिका

production विश्वासार्ह ठेवणे हे एक engineering काम आहे, आणि ते शाळेच्या देखभाल पथकाच्या रूपात शिकवले आहे: कतरिना, दीपिका आणि ऐश्वर्या जास्त बादल्या वाहून नव्हे, तर tools लिहून इमारती चालू ठेवतात. प्रत्येक धडा ही एक शाळेची गोष्ट आहे, सोबत काढलेली आकृती आणि एक lab — आणि हे पथक repo मध्येच आहे: शुद्ध Python मधील deterministic models (sre/crew.py, sre/design.py, एकही dependency नाही), ज्यांना तुम्ही overload करू शकता, page करू शकता आणि मोडू शकता.

🛠️ 50% ची मर्यादा📜 error budget policy🪣 toil नोंदवही📟 on-call भार🐤 canary परीक्षक🎚️ flags · rollout📈 N+1 · N+2🦺 incident command🔢 nines🚦 load shedding🧯 chaos · game days✅ readiness review

🪣 भाग 1 — काम (1–4)

  • पन्हाळ दुरुस्त करा 🛠️
  • सही केलेले दुरुस्ती budget 📜
  • बादल्या मोजा 🪣
  • ड्युटीचा फोन 📟

🎚️ भाग 2 — सुरक्षितपणे बदल करणे (5–8)

  • आधी एकच वर्ग 🐤
  • वर्गामागून वर्ग, एका switch सह 🎚️
  • पुढच्या सत्रासाठी खुर्च्या 📈
  • जबाबदारी कोणाची 🦺

🧯 भाग 3 — अपयशासाठी रचना (9–12)

  • एका रांगेतील दारे 🔢
  • आधी परीक्षेचे विद्यार्थी 🚦
  • ठरवून केलेली वीजकपात 🧯
  • checklist ✅
# the 60-second wow — one crew, twelve buildings:
git clone https://github.com/BaluRaut/learn-sre-school.git && cd learn-sre-school
python3 sre/demo.py               # 12 lessons: budgets, canaries, capacity, chaos
python3 sre/test_sre.py           # 12 checks across the lessons

तुम्हाला काय दिसायला हवे (छाटलेले — यश असे दिसते):

═══ job ═══
── the crew: Katrina, Dipika, Aishwarya · 3 × 40 h = 120 h a week · ops work (tickets, pages, manual fixes) per week:
   week 1:  48 h ops = 40.0%
   week 2:  54 h ops = 45.0%
   week 3:  63 h ops = 52.5%  ← over the 50% cap: extra tickets and pages go back to the dev team
   week 4:  71 h ops = 59.2%  ← over the 50% cap: extra tickets and pages go back to the dev team
   week 5:  58 h ops = 48.3%
   week 6:  45 h ops = 37.5%
   six-week average 47.1% · the rest of the week is ENGINEERING: tools that make next week's ops smaller
   ops team: carry more buckets as the school grows · SRE: fix the gutter, so the buckets are not needed
   DevOps is the culture (share ownership, automate, measure); SRE is one concrete way to practise it

═══ budget ═══
── timetable service · SLO 99.9% over a rolling 28 days · 1,000,000 requests a day → budget 28,000 failed requests
   example policy, signed in advance: < 75% used → normal · 75–100% → caution · ≥ 100% → freeze (P0 + security fixes only)
   day  1:   0.9% of the budget used → normal
   day 20:  83.9% of the budget used → caution
   day 24: 101.8% of the budget used → freeze
   day 34:  80.4% of the budget used → caution
   day 43:  57.1% of the budget used → normal
   day  6 incident burned 7,000 = 25.0% (> 20%) → its postmortem must carry a P0 action item
   day 15 incident burned 6,500 = 23.2% (> 20%) → its postmortem must carry a P0 action item
   the budget refills only as old failures leave the 28-day window — the freeze is lifted by time plus fixes, not by argument

═══ toil ═══
── the toil ledger: toil 24.2 h/week · overhead 3.0 h · engineering 8.0 h
   copy grades to the backup drive   5.00 h/week · build  6 h · upkeep 0.10 h/week → pays back in    1.2 weeks
   reset locked pupil accounts      10.00 h/week · build 16 h · upkeep 0.25 h/week → pays back in    1.6 weeks
   grow a full disk by hand          3.00 h/week · build  8 h · upkeep 0.10 h/week → pays back in    2.8 weeks
   restart the stuck print queue     6.00 h/week · build 20 h · upkeep 0.25 h/week → pays back in    3.5 weeks
   renew a TLS certificate by hand   0.19 h/week · build 12 h · upkeep 0.10 h/week → pays back in  137.1 weeks
   40 h of automation this quarter, best payback first: copy grades to the backup drive, reset locked pupil accounts, grow a full disk by hand (30 h)
   toil falls from 24.2 to 6.2 h/week, plus 0.45 h/week of upkeep for the new tools
   the print queue (20 h) waits for next quarter — better still, find out why it sticks and fix that
   the certificate never pays back by the ledger; renew it with ACME anyway, because an expired one is an outage

═══ oncall ═══
── 4 weeks of pages for the timetable service: 55 pages · 0.98 per 12-hour shift on average
   busiest shift 3 pages · shifts with more than 2 pages: 4 of 56
   one Pune crew, 24 h on call: 17 pages between 22:00 and 07:00
   follow-the-sun: Pune takes 07:00–19:00, a sister crew 12 h away takes the rest in its own daytime → night pages 0 + 0
   weekly rotation of 3: each person is on call 33.3% of weeks  ← over 25%: no time left for engineering
   weekly rotation of 5: each person is on call 20.0% of weeks
   weekly rotation of 8: each person is on call 12.5% of weeks
   the Google SRE book's numbers: at most 2 incidents per 12-hour shift, at most 25% of time on call, 8 people for one site

═══ canary ═══
── the baseline: the OLD version on a fresh copy, same size and traffic slice as the canary · 11 errors / 10,000 · p99 180 ms
   canary A: 13 errors / 10,000 · p99 185 ms → z   0.41 · p99 ×1.03 → PROMOTE
   canary B: 42 errors / 10,000 · p99 182 ms → z   4.26 · p99 ×1.01 → ROLLBACK
   canary C: 12 errors / 10,000 · p99 260 ms → z   0.21 · p99 ×1.44 → ROLLBACK
   canary D:  3 errors /    400 · p99 179 ms → z    n/a · p99 ×0.99 → EXTEND  (first minutes: baseline 1 / 400)
   rules: ROLLBACK if z > 3.0 (error rate clearly worse) or p99 > 1.2 × baseline · EXTEND under 1,000 requests each
   compare with a fresh baseline, not the whole old fleet: long-running machines differ (warm caches, leaks, old hosts)

═══ rollout ═══
── 1,000 requests/min · a bad change fails 30% of the requests it serves · noticed after 30 failures (at least 5 min)
   big bang, rollback = redeploy (15 min)     300 bad/min · noticed after  5 min → 6,000 failed requests
   big bang, flag off (1 min)                 300 bad/min · noticed after  5 min → 1,800 failed requests
   canary at 1%, rollback = redeploy            3 bad/min · noticed after 10 min →    75 failed requests
   canary at 1%, flag off                       3 bad/min · noticed after 10 min →    33 failed requests
   stages 1% → 5% → 25% → 100%, 30 min each: a full rollout takes 2 hours instead of 1 minute — that is the price
   exposure is the biggest lever, rollback speed the next; a flag only helps if the old path still works and the flag is removed later

═══ capacity ═══
── weekly peak requests/s, 12 weeks: [1206, 1226, 1276, 1373, 1365, 1448, 1474, 1533, 1600, 1613, 1684, 1707]
   straight-line fit: +47.8 req/s per week · forecast 26 weeks ahead: 2,963 req/s
   one server: 300 req/s at its load-test limit; plan at 70% = 210 → N = 15 servers for the forecast peak
   N+1 = 16 (one server can fail) · N+2 = 17 (one in maintenance AND one fails) · survive losing 1 of 3 zones: 24
   results day (2.5 × the normal peak = 7,408 req/s) needs 36 — plan it as an event, pre-scale, don't wait for autoscaling

═══ command ═══
── without roles: the timetable service is down at 23:00 · resolved after 110 min · 5 problem(s)
   ✗ 00:00 Katrina went off shift still holding ops — nobody holds it now
   ✗ no IC was ever named
   ✗ no comms was ever named
   ✗ no scribe was ever named
   ✗ 23:00 no status update for 110 min (rhythm: every 30)
── with incident command: the timetable service is down at 23:00 · resolved after 100 min · 0 problem(s)
   ✓ Dipika is IC (and scribe while it is small), Katrina fixes, Aishwarya talks; at 00:00 Dipika hands IC to crew-5 — acknowledged
   the detection clocks, the metrics and the postmortem are the Observability school's lessons 10–12

═══ nines ═══
── a request needs all three: gateway 99.99% × timetable app 99.95% × database 99.90% = 99.840%
   the chain is worse than its weakest part: 14.0 h a year of downtime allowed by the math
   two independent database copies: 1 − (1 − 0.999)² = 99.9999% → chain 99.940%
        99% →   87.60 h a year ·  403.2 min in 28 days
      99.9% →    8.76 h a year ·   40.3 min in 28 days
     99.95% →    4.38 h a year ·   20.2 min in 28 days
     99.99% →    0.88 h a year ·    4.0 min in 28 days
    99.999% →    0.09 h a year ·    0.4 min in 28 days
   each extra nine is 10 × less downtime: at 99.99% a 28-day window allows 4.0 min — about the time a paged person needs
   to wake up and log in, so at that level the fix must be automatic (failover, rollback), not a human

═══ overload ═══
── capacity 1,000 req/s · offered: critical 400 (log in, see timetable) + normal 500 + sheddable 600 (recommendations, prefetch)
   no priorities (everyone gets 1000/1500): {'critical': 267, 'normal': 333, 'sheddable': 400}
   shed by priority:                        {'critical': 400, 'normal': 500, 'sheddable': 100}
   + graceful degradation (normal and sheddable skip photo thumbnails: cost 0.7 each): {'critical': 400, 'normal': 500, 'sheddable': 357}
   3 retries per request           → 3,000 attempts/s arrive at a server that can do 1,000
   3 retries + a 10% retry budget  → 1,650 attempts/s arrive at a server that can do 1,000
   retries turn 1.5× overload into 3×; a retry budget caps the extra at 10% (bounded queues: Distributed Systems school, lesson 12)

═══ chaos ═══
── hypothesis: if zone B is lost, the cell's success rate stays ≥ 99.5% · abort if any minute < 99.0% · blast radius: 1 cell = 10% of users
   6 replicas in 3 zones: minutes 0–9 success 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%
      → hypothesis held · no abort · 0 failed
   4 replicas in 2 zones: minutes 0–9 success 100% 100% 100% 57% 100% 100% 100% 100% 100% 100%
      → hypothesis refuted · ABORTED at minute 3, fault undone · 18,000 requests failed in the cell
   the same fault on all 10 cells at once would have failed 10 × as many — start small, widen only after a pass

═══ prr ═══
── production readiness review: the timetable service asks the crew to carry its pager
   ✅ L02  SLO agreed + error-budget policy signed
   ✅ L01  ops work under the 50% cap, toil ledger kept
   ✅ L04  on-call: 8+ people or two sites, a runbook per page
   ✅ L05  automated canary analysis gates every release
   ❌ L06  rollback in 5 minutes or less; risky features behind flags  [blocker]
   ✅ L07  capacity: 2-quarter forecast, survives a zone loss
   ✅ L08  incident roles trained, handoff template ready
   ❌ L09  dependency chain meets the SLO  [blocker]
   ✅ L10  load shedding by priority + a client retry budget
   ❌ L11  a game day in the last 90 days, abort conditions written
   ✅ obs  dashboards + burn-rate alerts (Observability school)
   ✅ ops  a backup restored in a test in the last 90 days
   → NOT READY — 2 blocker(s), 1 other item(s) to fix
   after fixes (flag-off rollback 1 min, two database copies, a game day): → READY — the crew takes the pager
── the whole picture: cap ops work → agree the budget → kill toil → sane on-call → judge canaries → roll out in stages
   → plan capacity → command incidents → do the availability math → shed load → test with chaos → review before launch

✅ done — the crew fixed the gutter
🎒 धडा 01 आधी: तुम्हाला फक्त Python 3 हवे — बाकी काही नाही. हा lab म्हणजे deterministic शिकवणी models चा संच आहे; खरी tools अशी: Argo Rollouts, Spinnaker + Kayenta आणि Flagger (canaries), OpenFeature आणि LaunchDarkly (flags), PagerDuty आणि Grafana OnCall (paging), Chaos Mesh आणि AWS FIS (chaos). ही शाळा कुठे बसते: Observability शाळा signals, SLO चे गणित, burn-rate alerts आणि postmortems शिकवते; ही शाळा त्यांच्याभोवतीची SRE practice आहे; Scaling शाळा traffic सांभाळते.

🗺️ संपूर्ण चित्र — एक आकृती, पूर्ण कोर्स

संपूर्ण कोर्स एका कॅनव्हासवर. 4K आवृत्तीसाठी क्लिक करा.

The big picture: the job (the 50% cap, the error budget policy, toil, on-call), changing things safely (canary analysis, progressive delivery, capacity planning, incident command) and designing for failure (reliability math, overload, chaos engineering, production readiness)

🪣 भाग 1 — काम (धडे 1–4)

एक git branch = एक कल्पना; branch 04 मध्ये धडे 01–04 आहेत. sre/ प्रत्येक वेळी चालवल्यावर तेच निकाल येतात — randomness ला seed दिलेला आहे.

1

🛠️ SRE म्हणजे काय

पन्हाळ दुरुस्त करा, जास्त बादल्या वाहू नका — SRE, ops आणि DevOps यांतील फरक, आणि ops कामावरची 50% मर्यादा.lesson-01-what-is-sreधडा वाचा →आकृती पहा ↗
2

📜 error budget धोरण

दुरुस्तीचे बजेट, गळती होण्याआधीच सही केलेले — error budget चे 75% आणि 100% वापरले गेल्यावर काय होते.lesson-02-error-budget-policyधडा वाचा →आकृती पहा ↗
3

🪣 Toil

बादल्या मोजा — toil म्हणजे काय, toil ची नोंदवही, आणि payback नुसार क्रम लावलेले automation.lesson-03-toilधडा वाचा →आकृती पहा ↗
4

📟 On-call

ड्युटीचा फोन — प्रत्येक shift मधील pages, रात्रीचे pages, rotation चा आकार आणि follow-the-sun.lesson-04-on-callधडा वाचा →आकृती पहा ↗

🎚️ भाग 2 — सुरक्षितपणे बदल करणे (धडे 5–8)

बहुतेक outages एखाद्या बदलापासून सुरू होतात: तो छोट्या भागावर तपासा, तो कोणाला दिसतो ते मर्यादित ठेवा, capacity चे नियोजन करा, आणि काही बिघडले तर incident चे नेतृत्व करा.

5

🐤 Canary विश्लेषण

नवा boiler आधी एकाच वर्गात बसवला जातो — canary विरुद्ध ताजी baseline, आकड्यांवरून निर्णय.lesson-05-canary-analysisधडा वाचा →आकृती पहा ↗
6

🎚️ Progressive delivery आणि flags

एकेक खोली, हातात switch ठेवून — exposure, detection आणि rollback चा वेग; feature flags.lesson-06-progressive-deliveryधडा वाचा →आकृती पहा ↗
7

📈 Capacity नियोजन

पुढच्या सत्रासाठी खुर्च्या — forecast, headroom, N+1, N+2 आणि संपूर्ण zone गमावणे.lesson-07-capacity-planningधडा वाचा →आकृती पहा ↗
8

🦺 Incident command

एक commander, एक दुरुस्ती करणारी, एक आवाज आणि एक लेखनिक — भूमिका, update ची लय आणि handoff.lesson-08-incident-commandधडा वाचा →आकृती पहा ↗

🧯 भाग 3 — अपयश गृहीत धरून design (धडे 9–12)

वचन देण्याआधी हिशोब करा, overload मध्ये नीट अपयशी व्हा, chaos ने दाव्यांची तपासणी करा, आणि पथक pager हाती घेण्याआधी आढावा घ्या.

9

🔢 Reliability चे गणित

ओळीतील दारे गुणाकाराने कमी करतात, प्रती nines वाढवतात — आणि प्रत्येक nine ची किंमत किती.lesson-09-reliability-mathधडा वाचा →आकृती पहा ↗
10

🚦 Overload

परीक्षेच्या विद्यार्थिनींना आधी जेवण द्या — प्राधान्यानुसार load shedding, graceful degradation, retry budgets.lesson-10-overloadधडा वाचा →आकृती पहा ↗
11

🧯 Chaos engineering

नियोजित वीज खंडित — hypothesis, blast radius, abort च्या अटी आणि game days.lesson-11-chaos-engineeringधडा वाचा →आकृती पहा ↗
12

✅ Production readiness आणि संपूर्ण चित्र

पथक pager हाती घेण्याआधीची checklist — आणि SRE पद्धतीचा संपूर्ण नकाशा.lesson-12-production-readinessधडा वाचा →आकृती पहा ↗
🗣️ मोठ्याने समजावून सांगा — धडा 12 नंतर: (1) SRE ops कामाला 50% ची मर्यादा का घालते, आणि त्यापेक्षा जास्त झाले तर काय होते? (2) error budget संपल्यावर काय व्हायला हवे — आणि ते कोणी ठरवले? (3) कोणते toil आधी automate कराल? (4) 3 जणींचे on-call rotation खूप लहान का आहे? (5) canary ची तुलना ताज्या baseline शी का करायची? (6) वाईट बदलाचे नुकसान सर्वात जास्त कोणता उपाय कमी करतो: exposure की rollback चा वेग? (7) ओळीतील तीन चांगले भाग 99.9% SLO का चुकवू शकतात? (8) retries ना budget का लागते? (9) chaos प्रयोग खऱ्या अर्थाने प्रयोग कशामुळे ठरतो?
🎓 याच शाळेतून: Observability · Scaling · Distributed Systems · CI/CD · Argo CD — तेच उपमांचे विश्व, तीच branch-by-branch पद्धत.

📐 धड्यांच्या आकृत्या — क्रमांक अनुसरा

प्रत्येक धडा एका क्रमांकित बॉक्स-आणि-बाण आकृतीत — स्वतंत्र पानावरही.

1 🛠️ SRE म्हणजे काय

पन्हाळ दुरुस्त करा, जास्त बादल्या वाहू नका — SRE, ops आणि DevOps यांतील फरक, आणि ops कामावरची 50% मर्यादा.

🧒 सोप्या शब्दांत

पाऊस पडला की timetable इमारतीचे छप्पर गळते. साधे दुरुस्ती पथक प्रत्येक गळतीखाली बादली ठेवते, आणि पुढच्या आठवड्यात आणखी बादल्या वाहते. कतरिना, दीपिका आणि ऐश्वर्या आजची बादलीही वाहतात, पण मग त्या पन्हाळ दुरुस्त करतात. त्यांचा एक नियम आहे: आठवड्याचा जास्तीत जास्त अर्धा वेळ बादल्यांसाठी. आठवडा 4 मध्ये बादल्यांनी 120 पैकी 71 तास घेतले, म्हणून जास्तीचे काम इमारत बांधणाऱ्यांकडे परत गेले.

📖 नवे शब्दSRE — services विश्वासार्ह ठेवणे हे engineering काम: जास्त बादल्या वाहण्याऐवजी tools लिहिणेops work — गोष्टी चालू ठेवण्यासाठी हाताने केलेले tickets, pages आणि दुरुस्त्या50% cap — पथकाच्या आठवड्याचा जास्तीत जास्त अर्धा वेळ ops कामाला, जसे 120 पैकी 60 तासDevOps — सामायिक जबाबदारी, automation आणि मोजमाप यांची संस्कृती; SRE ती आचरणात आणण्याचा एक मार्ग
1🌧️ तेच गळणारे छत — काम करण्याच्या दोन पद्धतीops team: 3 गळती → 3 बादल्याजास्त विद्यार्थिनी, जास्त छते, जास्त बादल्या —आणि फक्त त्या वाहण्यासाठी जास्त माणसेपन्हाळ दुरुस्तआज: 1 बादलीSRE पथक: पन्हाळ दुरुस्त कराआज एक बादली, पुढच्या आठवड्यात एकही नाही —tool मुळे पुढच्या आठवड्याचे काम कमी होते2⏱️ आठवड्याचे ops तास (120 पैकी)0204080आ. 1आ. 2आ. 3आ. 4आ. 5आ. 66048 h40.0%54 h45.0%63 h52.5%71 h59.2%58 h48.3%45 h37.5%hमर्यादा 50% = 60 h · लाल: त्यापेक्षा जास्त → dev team कडे परतसहा आठवड्यांची सरासरी 47.1%3🧑‍🔧 पथकाचा आठवडा: 3 × 40 h = 120 h — ops ला मर्यादा, उरलेले engineeringKatrina40 hDipika40 hAishwarya40 hआठवडा 4ops 60 h+11 h↩ dev team कडे परतengineering 49 h — पुढचा आठवडा हलका करणारी toolsआठवडा 6ops 45 hengineering 75 h — पुढचा आठवडा हलका करणारी tools50% मर्यादाआठवडा 4: 59.2% opsआठवडा 6: 37.5% ops4☂️ DevOps ही संस्कृती आहे; SRE ती आचरणात आणण्याचा एक ठोस मार्ग आहेसाधी ops teamजास्त बादल्या वाहतेशाळा जसजशी वाढते तसतशीDevOps: ownership वाटून घ्या · automate करा · मोजाSRESRE = एक ठोस मार्ग:50% मर्यादा · error budgets ·toil नोंदवही · समंजस on-call
⏪ आधी

साधी ops team शाळा वाढेल तशा जास्त बादल्या वाहत असे, आणि फक्त त्या वाहण्यासाठी जास्त लोक भरती करत असे.

💡 काय

SRE म्हणजे देखभाल पथक: कतरिना, दीपिका आणि ऐश्वर्या tools लिहून शाळेच्या इमारती चालू ठेवतात.

⚙️ कसे

पथकाकडे आठवड्याला 3 × 40 h = 120 h असतात; आठवडा 4 मध्ये 71 h ops झाले, म्हणजे 59.2%, 60 h च्या 50% cap च्या वर.

🎯 का

Cap च्या वरचे ops काम dev team कडे परत जाते, म्हणून आठवड्याचा किमान अर्धा वेळ पुढचा आठवडा हलका करणाऱ्या engineering साठी राहतो.

🚀 पुढे

पुढचा धडा SLO ला सही केलेला करार बनवतो: 28,000-request error budget संपत आला की शाळा काय करते.

🧪 इथे करून पाहा — पथकाचा आठवडा — ops तास, पथक आणि मर्यादा बदला
34050

पूर्ण धडा 01 वाचा →

2 📜 error budget धोरण

दुरुस्तीचे बजेट, गळती होण्याआधीच सही केलेले — error budget चे 75% आणि 100% वापरले गेल्यावर काय होते.

🧒 सोप्या शब्दांत

सत्राच्या सुरुवातीला पथक आणि मुख्याध्यापक एका करारावर सही करतात. Timetable थोडे अयशस्वी होऊ शकते: 1,000 पैकी 1 request. 28 दिवसांत ते 28,000 failed requests, म्हणजे दुरुस्ती budget. Budget शिल्लक असेपर्यंत शिक्षक मोकळेपणाने बदल करतात. 75% वापरला की त्या सावकाश होतात आणि आधी दुरुस्ती करतात. दिवस 24 ला budget संपतो, म्हणून बदल थांबतात. कोणी वाद घालत नाही, कारण कागदावर आधीच तसे लिहिले आहे.

📖 नवे शब्दSLO — विश्वासार्हतेचे लक्ष्य, जसे 28 दिवसांत 99.9% requests चालणेerror budget — SLO ने दिलेली अपयशांची मुभा, जसे 28,000 failed requestspolicy — budget च्या प्रत्येक पातळीसाठी आधीच ठरवलेल्या कृतीfreeze — service पुन्हा SLO मध्ये येईपर्यंत फक्त तातडीच्या P0 आणि security दुरुस्त्या
1📉 timetable service चे 45 दिवस — rolling 28 दिवसांच्या window मध्ये 28,000 requests च्या budget पैकी वापरलेला हिस्साfreeze — फक्त P0 + security0%25%50%75%100%normal — मोकळेपणाने release कराcaution — आधी reliabilityदिवस 1दिवस 10दिवस 20दिवस 28दिवस 34दिवस 43दिवस 457,0006,5005,0004,000दिवस 1: 0.9% → normalदिवस 20: 83.9% → cautionदिवस 24: 101.8% → freezeदिवस 34: 80.4% → cautionदिवस 43: 57.1% → normalदिवस 34 ची window = दिवस 7–34: दिवस 6 चे incident त्यातून बाहेर गेले, म्हणून वेळेनुसार freeze उठतो2📜 धोरण — गळती होण्याआधीच सही केलेलेERROR BUDGET धोरण · timetable serviceSLO 99.9% · rolling 28 दिवस · दिवसाला 1,000,000 requestsbudget = 28 × 1,000,000 × 0.1% = 28,000 अयशस्वी requests75% पेक्षा कमी वापरnormal: हवे तितक्या वेगाने release करा75–100% वापरcaution: आधी reliability चे काम, +1 reviewer100% किंवा जास्तfreeze: फक्त P0 fixes आणि security patchesएक incident > 20%त्याच्या postmortem मध्ये एक P0 action item असतोproductdevelopersSRE · कतरिनासत्राच्या सुरुवातीलाच मान्य केले — म्हणून दिवस 24 ला कोणी वाद घालत नाही3🫙 दिवस 24 पर्यंत budget कशाने भरलेदररोज: 250 × 24 दिवस: 6,000budget च्या 21.4%दिवस 6 चे incident: 7,000budget च्या 25.0% > 20% → P0 action itemदिवस 15 चे incident: 6,500budget च्या 23.2% > 20% → P0 action itemदिवस 20 चे incident: 5,000budget च्या 17.9%दिवस 24 चे incident: 4,000budget च्या 14.3%28,000= 100%28,500 = 101.8% → FREEZE
⏪ आधी

Reliability विरुद्ध नवीन features यावर प्रत्येक बैठकीत वाद होत, आणि बहुतेक वेळा सर्वात मोठ्या आवाजाचा माणूस जिंकत असे.

💡 काय

Error budget policy: 28 दिवसांत 99.9% SLO, दिवसाला 1,000,000 requests, म्हणून 28,000 failed requests ची मुभा.

⚙️ कसे

75% पेक्षा कमी वापर: normal. 75–100%: caution. 100% किंवा जास्त: freeze. दिवस 20 ला 83.9%, दिवस 24 ला 101.8%.

🎯 का

गळती सुरू होण्याआधीच त्यावर सही झाली होती, म्हणून दिवस 24 ला कोणी वाद घालत नाही: कागदावर आधीच freeze लिहिले आहे.

🚀 पुढे

पुढचा धडा बादल्या मोजतो: toil ची नोंदवही, जी प्रत्येक हाताने केलेले काम automation किती लवकर वसूल होते त्यानुसार लावते.

🧪 इथे करून पाहा — error budget धोरण — SLO, traffic आणि incidents बदला
100025075

पूर्ण धडा 02 वाचा →

3 🪣 Toil

बादल्या मोजा — toil म्हणजे काय, toil ची नोंदवही, आणि payback नुसार क्रम लावलेले automation.

🧒 सोप्या शब्दांत

दीपिका हाताने केलेल्या प्रत्येक कंटाळवाण्या कामाची वही ठेवते. Locked accounts reset करणे आठवड्याला 60 वेळा होते, प्रत्येकी 10 मिनिटे: 10 तास. कतरिना सांगते की reset button बनवायला 16 तास लागतील, म्हणून ते दोन आठवड्यांपेक्षा कमी काळात वसूल होते. पथकाकडे या सत्रात 40 तास आहेत, आणि ते सर्वात लवकर फायदा देणारी कामे आधी बनवते. कंटाळवाणे काम आठवड्याला 24.2 वरून 6.2 तासांवर येते.

📖 नवे शब्दtoil — हाताने, पुन्हा पुन्हा केले जाणारे काम जे tool करू शकते आणि ज्यातून काहीच टिकाऊ उरत नाहीtoil ledger — कामांची यादी, किती वेळ आणि किती वेळा, जशी दीपिकाची वहीpayback — tool बनवायला लागलेल्या वेळेपेक्षा जास्त वेळ वाचवायला किती आठवडे लागतात, जसे 1.6 आठवडेupkeep — tool ला स्वतःला दर आठवड्याला लागणारा वेळ, जसे 0.25 तास
1📒 दीपिकाची toil नोंदवही — payback नुसार क्रमtoil कामh/आठवडाbuildदेखभालपरतफेडगुण backup drive वर copy करणे5.006 h0.101.2 wkकुलूपबंद झालेली विद्यार्थिनींची accounts reset करणे10.0016 h0.251.6 wkभरलेली disk हाताने वाढवणे3.008 h0.102.8 wkअडकलेली print रांग restart करणे6.0020 h0.253.5 wk⏳TLS certificate हाताने renew करणे0.1912 h0.10137.1 wk∞toil 24.2 h/आठवडाoverhead 3.0 h (पथकाची बैठक)engineering 8.0 h (self-service portal) — हे toil नाही: ते टिकतेpayback = बांधणीचे तास ÷ (आठवड्याला वाचलेले तास − आठवड्याची देखभाल)2📈 परत मिळवलेले तास, आठवड्यागणिक-20-100+10+200123456tool तयार झाल्यानंतरचे आठवडेगुण copy करणे 1.2 आठवडेaccounts reset करणे 1.6 आठवडेdisk वाढवणे 2.8 आठवडेprint रांग 3.5 आठवडेcertificate 137.1 आठवडे0 च्या खाली: अजून build ची किंमत फेडणे चालू आहे○ = ज्या दिवशी खर्च वसूल होतो3🪣 या तिमाहीत 40 h automation, सर्वात चांगला परतावा आधी → toil आठवड्याला 24.2 → 6.2 hbuild चे बजेट: 40 h6 hगुण copy करणे16 haccounts reset करणे8 hdisk वाढवणे10 h उरलेprint रांग 20 h — बसत नाही40 hनिवडले: 40 h पैकी 30 h — गुण backup drive वर copy करणे, कुलूपबंद विद्यार्थिनींची accounts reset करणे, भरलेली disk हाताने वाढवणेprint रांग पुढच्या तिमाहीपर्यंत थांबते — त्याहूनही चांगले, ती का अडकते ते शोधा आणि तेच दुरुस्त करानोंदवहीनुसार certificate चा खर्च कधीच वसूल होत नाही: तरीही ACME ने ते renew करा — expire झालेले certificate म्हणजे outageआधी: आठवड्याला 24.2 hनंतर: 6.2 h + 0.45 h देखभालएक बादली = आठवड्याला 1 तास toilengineering साठी आठवड्याला 18.0 h परत मिळाले
⏪ आधी

पथक हाताने accounts reset करत, queues restart करत आणि disks वाढवत असे, पण त्याला किती वेळ लागतो हे कधीच नोंदवले नाही.

💡 काय

Toil म्हणजे हाताने, पुन्हा पुन्हा केले जाणारे, automate करता येणारे आणि टिकाऊ मूल्य नसलेले काम: दीपिकाच्या नोंदवहीत आठवड्याला 24.2 h.

⚙️ कसे

Payback = build ÷ (वाचलेले तास − upkeep). Account reset: 16 h ÷ आठवड्याला 9.75 h = 1.6 आठवडे. सर्वात चांगले आधी.

🎯 का

40 h च्या automation मधून 30 h मध्ये तीन tools बनतात, आणि toil आठवड्याला 24.2 वरून 6.2 h वर येते, अधिक 0.45 h upkeep.

🚀 पुढे

पुढचा धडा duty phone सोपवतो: एका shift मध्ये किती pages जास्त आहेत, आणि rotation किती मोठे हवे.

🧪 इथे करून पाहा — दीपिकाची toil नोंदवही — build चे बजेट आणि कामे बदला
40266020

पूर्ण धडा 03 वाचा →

4 📟 On-call

ड्युटीचा फोन — प्रत्येक shift मधील pages, रात्रीचे pages, rotation चा आकार आणि follow-the-sun.

🧒 सोप्या शब्दांत

पथकाकडे एक duty phone आहे, जो इमारत बिघडली की वाजतो. चार आठवड्यांत तो 55 वेळा वाजला, आणि त्यापैकी 17 वेळा रात्री. फक्त तिघी असल्याने प्रत्येकीकडे तीनपैकी एक आठवडा phone असतो, हे फारच वारंवार आहे. म्हणून आणखी लोक सामील होतात, आणि आठ जणांत प्रत्येकाकडे आठपैकी एक आठवडा. जगाच्या दुसऱ्या बाजूचे sister crew रात्र सांभाळते. आता कोणाचाही phone रात्री वाजत नाही.

📖 नवे शब्दon-call — duty phone सांभाळणे आणि service बिघडली की दिवसा किंवा रात्री उत्तर देणेpage — on-call व्यक्तीला उठवणारा alert, जसे चार आठवड्यांतील 55rotation — phone आळीपाळीने घेणारे लोक; 8 जणांत प्रत्येकाला 8 पैकी एक आठवडाfollow-the-sun — दूरच्या time zones मधील दोन पथके, प्रत्येक फक्त आपल्या दिवसा on call
1📟 वेळापत्रक service चे 4 आठवड्यांचे pages: 55 pages, प्रत्येकी एक ठिपकाआठवडा 1आठवडा 2आठवडा 3आठवडा 400:0003:0006:0009:0012:0015:0018:0021:0024:00रात्र 22:00–07:00पुण्याचा दिवस17रात्रीचे pagesएका पुणेपथकासाठी 24 h38दिवसpages2📊 प्रत्येक 12-तासांच्या shift मधील pages19 shifts0 pages23 shifts1 pages10 shifts2 pages4 shifts3 pagesपुस्तक सांगते: जास्तीत जास्तप्रत्येक shift ला 256 shifts · सरासरी प्रत्येक shift ला 0.98 pagesसर्वात व्यस्त 3 · 2 पेक्षा जास्त: 56 पैकी 43🌍 follow-the-sun: प्रत्येक पथक आपल्या स्वतःच्या दिवसा उत्तर देते0003060912151821पुणे पथक07:00–19:0034 pagesभगिनी पथक12 h दूर21 pagesपुण्याचे घड्याळरात्रीचे pages: एका पथकासाठी 17 → दोन पथकांसह 0 + 0भगिनी पथक आपल्या time zone मध्ये 07:00–19:00 काम करते4🗓️ साप्ताहिक rotation: फोन कोणाकडे3 जणीप्रत्येकजण 33.3% आठवडे on callआ. 1आठवडा 1625% पेक्षा जास्त: engineering साठी वेळच उरत नाही5 जणीप्रत्येकजण 20.0% आठवडे on callआ. 1आठवडा 16पुस्तक सांगते: जास्तीत जास्त 25% वेळ on call8 जणीप्रत्येकजण 12.5% आठवडे on callआ. 1आठवडा 16पुस्तक सांगते: जास्तीत जास्त 25% वेळ on callभरीव आठवडा = कतरिनाकडे फोन असलेला आठवडा · एका site साठी 8 जणी
⏪ आधी

एकच व्यक्ती सतत pager सांभाळत असे, रात्रीचा प्रत्येक call उचलत असे, आणि थकून शेवटी ती सोडून गेली.

💡 काय

On-call: 4 आठवड्यांत 55 pages आले, 12 तासांच्या shift ला 0.98; 56 पैकी 4 shifts मध्ये पुस्तकातील 2 च्या मर्यादेपेक्षा जास्त.

⚙️ कसे

Follow-the-sun: पुणे 07:00–19:00 घेते आणि 12 h दूरचे sister crew उरलेले घेते, म्हणून 17 रात्रीचे pages 0 होतात.

🎯 का

3 जणांच्या rotation मध्ये प्रत्येकजण 33.3% आठवडे on call असते, 25% च्या वर; 8 जणांत ते 12.5%, म्हणून बांधायला वेळ उरतो.

🚀 पुढे

पुढचा धडा बदल सुरक्षितपणे करतो: एका वर्गाला आधी नवा boiler मिळतो, आणि judge आकड्यांनी त्याची तुलना करतो.

🧪 इथे करून पाहा — duty फोन — page चा दर, rotation आणि sites बदला
7113

पूर्ण धडा 04 वाचा →

5 🐤 Canary विश्लेषण

नवा boiler आधी एकाच वर्गात बसवला जातो — canary विरुद्ध ताजी baseline, आकड्यांवरून निर्णय.

🧒 सोप्या शब्दांत

पथकाला प्रत्येक वर्गात नवा boiler बसवायचा आहे, पण तो वाईट निघाला तर? त्या आधी एकाच वर्गात तो बसवतात. शेजारच्या वर्गात त्या एक ताजा जुना boiler बसवतात, तेवढाच मोठा वर्ग आणि तेवढेच विद्यार्थी. एका दिवसानंतर ऐश्वर्या तक्रारी मोजते: जुना 11, नवा 42. हा वाईट boiler आहे, म्हणून तो काढला जातो. दुसऱ्या वेळी 11 विरुद्ध 13 येते, हा सामान्य चढउतार, म्हणून नवा boiler सगळीकडे जातो.

📖 नवे शब्दcanary — traffic च्या छोट्या भागावरची नवी version, सगळ्यांना देण्याआधी तपासलेलीbaseline — जुन्या version ची ताजी copy, canary इतकीच मोठी आणि तेवढ्याच traffic चीz-score — canary चे errors खरोखर जास्त आहेत याची खात्री किती; 3.0 च्या वर म्हणजे rollbackp99 — ज्या वेळेत 100 पैकी 99 requests पूर्ण होतात, जसे 180 ms
1🔥 फक्त boiler मध्ये फरक असलेल्या दोन वर्गखोल्यांची तुलना करासंपूर्ण जुना fleet — दीर्घकाळ चाललेला: गरम caches, leaks, जुने hostsतोच आकार, traffic चा तोच हिस्साbaseline: ताजा जुना boilercanary: नवा boilerविरुद्धfleet शी तुलना न्याय्य नाही — जुन्या version ची ताजी प्रत न्याय्य आहे2⚖️ परीक्षक: error z-score × p99 गुणोत्तर012345×0.9×1.0×1.1×1.2×1.3×1.4×1.5z: canary चा error rate किती वाईट आहे (मर्यादा 3.0)p99 मर्यादा ×1.2z मर्यादा 3.0PROMOTE क्षेत्रROLLBACK क्षेत्रAz 0.41 · ×1.03Bz 4.26 · ×1.01Cz 0.21 · ×1.443🐤 चार canaries, आकड्यांनी तपासलेले — प्रत्येक request मागे errors आणि p99 latencycanary A11base13canaryप्रत्येक 10,000 मागे errorsbase p99 (ms)180canary p99 (ms)185p99 ×1.03z = 0.41 ≤ 3.0थोडीशी डगमग, latency ठीकPROMOTEcanary B11base42canaryप्रत्येक 10,000 मागे errorsbase p99 (ms)180canary p99 (ms)182p99 ×1.01z = 4.26 > 3.0error rate स्पष्टपणे वाईटROLLBACKcanary C11base12canaryप्रत्येक 10,000 मागे errorsbase p99 (ms)180canary p99 (ms)260p99 ×1.44z = 0.21 ≤ 3.0p99 ×1.44 > ×1.2ROLLBACKcanary D1base3canaryप्रत्येक 400 मागे errorsbase p99 (ms)180canary p99 (ms)179p99 ×0.99z n/a — 1,000 पेक्षा कमी requestsअजून खूप कमी requestsEXTEND
⏪ आधी

नवी version एकदम सगळ्या servers वर जात असे, आणि लोक graph कडे बघून ठीक दिसते असे म्हणून निर्णय घेत.

💡 काय

Canary analysis: नवी version एका छोट्या भागावर, आणि त्याच आकाराच्या जुन्या version च्या ताज्या copy शी तुलना.

⚙️ कसे

Baseline ला 10,000 मध्ये 11 errors. Canary B ला 42: z 4.26 > 3.0, ROLLBACK. Canary C चा p99 ×1.44 > ×1.2: ROLLBACK.

🎯 का

Canary A चे 11 विरुद्ध 13 हे सामान्य चढउतार आहे (z 0.41), म्हणून ती promote होते; D कडे फक्त 400 requests, म्हणून judge थांबतो.

🚀 पुढे

पुढचा धडा वाईट बदल निसटला तर होणारे नुकसान मर्यादित करतो: टप्प्याटप्प्याने rollout, आणि परत जाण्यासाठी एक switch.

🧪 इथे करून पाहा — ताज्या baseline विरुद्ध canary तपासा
1110000180131000018531.2

पूर्ण धडा 05 वाचा →

6 🎚️ Progressive delivery आणि flags

एकेक खोली, हातात switch ठेवून — exposure, detection आणि rollback चा वेग; feature flags.

🧒 सोप्या शब्दांत

पथक दिवे बदलते, आणि नव्या दिव्यांत दोष आहे: 10 पैकी 3 bulbs बंद पडतात. सगळ्या खोल्या एकदम बदलल्या आणि परत आणायला 15 मिनिटे लागली तर 6,000 requests अयशस्वी होतात. जुन्या दिव्याकडे परत नेणारा switch असेल तर 1,800. आधी शंभरातील फक्त एक खोली बदलली तर 75. शंभरातील एक खोली आणि switch: फक्त 33. काळजीपूर्वक पद्धतीला प्रत्येक खोलीपर्यंत पोहोचायला 2 तास लागतात.

📖 नवे शब्दprogressive delivery — बदल टप्प्याटप्प्याने users पर्यंत पोहोचतो, 1% → 5% → 25% → 100%exposure — एका वेळी किती users ना बदल दिसतो; नुकसानावरचा सर्वात मोठा leverfeature flag — code मधील switch जो नवा build न करता सुमारे 1 मिनिटात feature बंद करतोrollback — जुन्या version कडे परत जाणे; redeploy ला 15 मिनिटे लागतात
1💡 एक वाईट बदल तो देत असलेल्यापैकी 30% अपयशी करतो · मिनिटाला 1,000 requests — तो ship करण्याच्या चार पद्धती0 min5 min10 min15 min20 min25 minbig bang, redeploy (15 min)100% खोल्या · 300 वाईट / minलक्षात येणे 5 minrollback 15 min6,000big bang, flag off (1 min)100% खोल्या · 300 वाईट / minलक्षात येणे 5 minflag off 1 min1,800canary 1%, redeploy (15 min)1% खोल्या · 3 वाईट / minलक्षात येणे 10 minrollback 15 min75canary 1%, flag off (1 min)1% खोल्या · 3 वाईट / minलक्षात येणे 10 minflag off 1 min33अपयशी requests (log scale)1% canary उशिरा लक्षात येते (30 failures ला 10 min लागतात) — पण 100 × कमी users ना त्रास होतो2🪜 टप्पे 1% → 5% → 25% → 100%, प्रत्येकी 30 min1% खोल्यामिनिटे 0–305% खोल्यामिनिटे 30–6025% खोल्यामिनिटे 60–90100% खोल्यामिनिटे 90–120पुढच्या टप्प्याआधी एक परीक्षक (धडा 05) प्रत्येक टप्पा तपासतोprogressive: सर्वांपर्यंत पोहोचायला 2 तासbig bang: सर्वांपर्यंत पोहोचायला 1 मिनिट — आणि सर्वांना त्रास द्यायलाहीतो हळू rollout म्हणजे लहान blast radius ची किंमतexposure हा सर्वात मोठा लिव्हर, त्यानंतर rollback चा वेग3🎚️ feature flag: जुन्या दिव्यांकडे परत नेणारे बटणएक requestनवा मार्ग: 10 पैकी 3 अंधारातजुना मार्ग: अजूनही चालतोflag OFF1 मिनिटातredeploy ला 15 min लागतात: build, ship, restartflag बदलायला 1 min लागते: build अजिबात नाहीजुना मार्ग अजूनही चालत असेल तरच हे उपयोगी पडते —आणि प्रत्येक flag नंतर काढून टाकावाच लागतो
⏪ आधी

सगळ्यांना नवी version एकदम मिळत असे, आणि rollback म्हणजे नवा build आणि 15 मिनिटांचे redeploy.

💡 काय

Progressive delivery: बदल 1% → 5% → 25% → 100% पर्यंत पोहोचतो, प्रत्येकी 30 min; feature flag तो बंद करतो.

⚙️ कसे

मिनिटाला 1,000 requests पैकी 30% अयशस्वी करणारा बदल: big bang + redeploy मध्ये 6,000; 1% canary + flag मध्ये 33.

🎯 का

Exposure हा सर्वात मोठा lever आहे, त्यानंतर rollback चा वेग; किंमत अशी की पूर्ण rollout ला 1 मिनिटाऐवजी 2 तास लागतात.

🚀 पुढे

पुढचा धडा पुढच्या सत्राच्या खुर्च्यांचा आराखडा करतो: peak चा अंदाज, headroom, आणि संपूर्ण zone गेला तरी टिकणे.

🧪 इथे करून पाहा — exposure × detection × rollback चा वेग — एखादा वाईट बदल किती requests अयशस्वी करतो
1000301305151

पूर्ण धडा 06 वाचा →

7 📈 Capacity planning (क्षमतेचे नियोजन)

पुढच्या सत्रासाठी खुर्च्या — forecast, headroom, N+1, N+2 आणि संपूर्ण zone गमावणे.

🧒 सोप्या शब्दांत

दर आठवड्याला ऐश्वर्या सभागृहातील सर्वात गर्दीचा क्षण मोजते: आठवडा 1 मध्ये 1,206 आणि आठवडा 12 मध्ये 1,707. ती एक सरळ रेषा काढते आणि सहा महिने पुढे नेते: सुमारे 2,963. खुर्च्यांची एक रांग 300 जणांसाठी असते, पण कोणी दाटीवाटीत बसू नये म्हणून ती 210 चा आराखडा करते, म्हणून 15 रांगा. एक जास्तीची रांग म्हणजे 16, दोन म्हणजे 17. संपूर्ण wing बंद झाली तर तिला 24 लागतात. निकालाच्या दिवशी 36 लागतात, त्या आधीच उसन्या आणल्या जातात.

📖 नवे शब्दforecast — मागील आठवड्यांवरून पुढच्या load चा अंदाज, जसे 26 आठवड्यांनी 2,963 req/sheadroom — अचानक येणाऱ्या गोष्टींसाठी मोकळी ठेवलेली जागा, जसे 300 च्या 70% वर आराखडाN+1 — गरजेपेक्षा एक server जास्त, म्हणजे एक बंद पडू शकतो; N+2 maintenance सुद्धा झेलतोzone — स्वतःची वीज असलेली वेगळी इमारत; येथे 3 पैकी 1 गेला तर 24 servers लागतात
1📈 आठवड्याचे सर्वोच्च requests/s — एक सरळ रेषा, 26 आठवडे पुढे1,0001,4001,8002,2002,6003,0003,400आठवडा 1आठवडा 12आठवडा 24आठवडा 38पुढचे 26 आठवडे1,2061,707अंदाज 2,963दर आठवड्याला +47.8 req/s15 servers × 210 = 3,1502🖥️ एक server, 70% वर नियोजित300 req/s: load-test ची मर्यादा210 = 70%: नियोजनराखीव क्षमता (headroom)30%spikes, मंद GC, retry चीलाट headroom मध्ये मावते2,963 ÷ 210 → N = 15 serversN = 15N+1 = 16N+2 = 17N+1: एक बंद पडू शकतो · N+2: एकदेखभालीत आणि एक बंद पडतो3🏫 3 पैकी 1 zone गेला तरी टिकणे → 24 servers (प्रत्येक zone मध्ये 8)zone Azone Bगेला: वीज गेलीzone Czone B गेला → 16 servers उरले ≥ N = 15: शाळा चालू राहतेनियम: प्रत्येक zone मध्ये N ÷ (zones − 1) = ⌈15/2⌉ = 8 · 3 × 8 = 24N+2 = 17, 3 zones मध्ये (6 + 6 + 5): एक zone गेला → 11 उरले, 15 पेक्षा कमी4📅 निकालाचा दिवस: event चे नियोजन करानिकालाचा आठवडा12345678910111213142.5×scale2,963 × 2.5 = 7,408 req/s36 servers लागतातआदल्या दिवशीच pre-scale करा —autoscaling ची वाट पाहू नका
⏪ आधी

Site आधीच हळू झाल्यावर servers जोडले जात, आणि दरवर्षी निकालाचा दिवस शाळेला अचानक गाठत असे.

💡 काय

Capacity planning: 12 आठवड्यांचे peaks 1,206 ते 1,707 req/s, आठवड्याला +47.8 वाढतात, म्हणून 26 आठवड्यांनी 2,963.

⚙️ कसे

एक server 300 req/s हाताळतो; 70% = 210 नुसार आराखडा, म्हणून N = 15. N+1 = 16, N+2 = 17, 3 पैकी 1 zone गेला तर 24.

🎯 का

Headroom अचानक वाढ शोषून घेते; 2.5 × = 7,408 req/s च्या निकालाच्या दिवशी 36 servers लागतात, म्हणून आधीच वाढवा.

🚀 पुढे

पुढचा धडा तरीही बिघडल्याच्या रात्रीचा आहे: incident commander, fixer, बोलणारी व्यक्ती, scribe आणि स्वच्छ handoff.

🧪 इथे करून पाहा — पुढच्या सत्रासाठी खुर्च्या — वाढ, अंदाज, headroom आणि zones
45267030032.5

पूर्ण धडा 07 वाचा →

8 🦺 Incident command

एक commander, एक दुरुस्ती करणारी, एक आवाज आणि एक लेखनिक — भूमिका, update ची लय आणि handoff.

🧒 सोप्या शब्दांत

रात्री 23:00 ला timetable इमारत अंधारात जाते. पहिल्या रात्री कतरिना आणि दीपिका दोघीही दुरुस्ती सुरू करतात आणि एकमेकींचे काम उलटवतात. जवळजवळ दोन तास मुख्याध्यापकांना कोणीच काही सांगत नाही. दुसऱ्या रात्री दीपिका सांगते की ती incident commander आहे: ती नेतृत्व करते, दुरुस्ती करत नाही. कतरिना दुरुस्ती करते आणि ऐश्वर्या दर अर्ध्या तासाने काय चालले आहे ते सांगते. मध्यरात्री दीपिका काम सोपवते, आणि crew-5 म्हणते 'I have command.'

📖 नवे शब्दincident commander — incident चे नेतृत्व करून निर्णय घेणारी व्यक्ती, जी स्वतः दुरुस्ती करत नाहीcomms — दर 30 मिनिटांनी सगळ्यांना काय चालले आहे ते सांगणारी व्यक्तीscribe — काय आणि केव्हा घडले ते लिहून ठेवणारी व्यक्तीhandoff — भूमिका पुढच्या व्यक्तीकडे सोपवणे, जिने 'I have command' म्हणायलाच हवे
1🌑 वेळापत्रक service 23:00 वाजता बंद पडते — दोन रात्री, तोच दोष23:0023:1523:3023:4500:0000:1500:3000:45पहिली रात्र —भूमिका नाहीत110 min नंतर सुटले5 समस्यासोडवलेकतरिना · opsदीपिका · opsupdates110 min कोणतेही status update नाही (लय: दर 30)00:00 कतरिना ops हातात असतानाच shift संपवून जाते — आता ते कोणाकडेच नाहीदोघी दुरुस्ती करणाऱ्या, IC नाही, comms नाही, scribe नाहीदुसरी रात्र —incident command100 min नंतर सुटले0 समस्यासोडवलेदीपिका · ICcrew-5 · ICकतरिना · opsऐश्वर्या · commsदीपिका · scribecrew-5 · scribeupdates00:00 दीपिका IC आणि scribe crew-5 कडे सोपवते — पोच मिळाल्यावरच ती जाते2🦺 चार भूमिका — IC नेतृत्व करते, ती स्वतः दुरुस्ती करत नाहीIC · दीपिकानिर्णय घेते, संपूर्ण चित्र लक्षात ठेवतेops · कतरिनाप्रत्यक्ष दुरुस्ती करतेcomms · ऐश्वर्यादर 30 min लोकांना कळवतेIC$ fix+ scribeincident लहान असताना IC च log लिहिते (scribe)IC कधीच ops वरही नसते: कोणीतरी संपूर्ण incident वर लक्ष ठेवायलाच हवेलय: दर 30 मिनिटांनी status update, अगदी "काही नवीन नाही" असले तरीdetection clocks, metrics आणि postmortem: Observability शाळा, धडे 10–123🤝 00:00 वाजताचे handoff"वेळापत्रक 23:00 पासून बंद आहे.करून पाहिले: restart — फरक नाही.कतरिना ops वर आहे, ऐश्वर्या comms वर,पुढचे update 00:20 वाजता."Dipika"command आता माझ्याकडे आहे."crew-5"command माझ्याकडे आहे" ऐकल्यानंतरचदीपिका shift संपवून जातेपोच नाही = दोघींनाही वाटते की नेतृत्व आपल्याकडे आहे
⏪ आधी

सगळे एकदम दुरुस्तीला धावत: दोघी एकमेकींचे काम उलटवत, आणि मुख्याध्यापकांना कोणीच काही सांगत नसे.

💡 काय

Incident command: ठरलेल्या भूमिका. दीपिका IC आणि scribe आहे, कतरिना दुरुस्ती करते, ऐश्वर्या दर 30 मिनिटांनी comms करते.

⚙️ कसे

00:00 ला दीपिका IC crew-5 कडे सोपवते, आणि ती जाण्याआधी crew-5 'I have command' म्हणते; रात्र 100 मिनिटांत संपते.

🎯 का

भूमिका नसताना त्याच बिघाडाला 110 मिनिटे लागली आणि 5 अडचणी आल्या, त्यात 110 मिनिटे एकही status update नव्हता.

🚀 पुढे

पुढचा धडा आधी गणित करतो: रांगेतील दारे गुणाकाराने कमी होतात, आणि copies स्वतंत्र असतील तरच nines वाढवतात.

🧪 इथे करून पाहा — रात्र चालवा — भूमिका ठरवा, लय पाळा, नीट सोपवा
25100

पूर्ण धडा 08 वाचा →

9 🔢 Reliability चे गणित

ओळीतील दारे गुणाकाराने कमी करतात, प्रती nines वाढवतात — आणि प्रत्येक nine ची किंमत किती.

🧒 सोप्या शब्दांत

Timetable पर्यंत पोहोचायला एक विद्यार्थिनी रांगेतील तीन दारांतून जाते. फाटक 99.99% वेळा चालते, सभागृहाचे दार 99.95% आणि office चे दार 99.9%. कोणतेही दार अडकले तर ती आत जाऊ शकत नाही, म्हणून आकडे गुणले जातात: 99.84%. हे सर्वात वाईट दारापेक्षाही वाईट आहे. मग पथक पहिल्या दाराशेजारी office चे दुसरे दार बांधते, आणि संपूर्ण प्रवास 99.94% होतो.

📖 नवे शब्दavailability — एखादी गोष्ट चालू असण्याचा वेळेतील वाटा, जसे 99.9%serial — रांगेतील भाग जे सगळे चालायलाच हवेत; त्यांचे आकडे गुणाकाराने कमी होतातredundancy — जास्तीची copy म्हणजे कोणतीही एक पुरेशी, जशी database ची दोन दारेnines — प्रत्येक जास्तीचा 9 म्हणजे 10 × कमी downtime; 99.99% मध्ये 28 दिवसांत 4.0 मिनिटे
1🚪 एका request ला तिन्ही दरवाजे लागतात — साखळी गुणाकाराने खाली जातेएक विद्यार्थिनीgateway99.99%वर्षाला 0.9 h अडकते×वेळापत्रक app99.95%वर्षाला 4.4 h अडकते×database99.9%वर्षाला 8.8 h अडकते=99.840%सर्वात कमकुवत दरवाजापेक्षाही वाईटवर्षाला 14.0 h downtimeतुम्ही जोडलेला प्रत्येक दरवाजा प्रवास कमी reliable करतो — दरवाजे स्वतंत्रपणे बंद पडतात असे गृहीत धरून2🚪🚪 दोन database प्रती: कोणतीही एक पुरेशी आहेdatabase प्रत 1 · 99.9%database प्रत 2 · 99.9%अडकली? दुसरी वापरा1 − (1 − 0.999)² = 99.9999%साखळी99.840%↓99.940%वर्षाला 5.3 hफक्त प्रती स्वतंत्रपणे बंद पडल्या तरच — ज्या दोन प्रतींचाpower supply, region, config push किंवा bug एकच असतो, त्या एकत्रच बंद पडतात3⏱️ 28 दिवसांच्या window मध्ये प्रत्येक nine किती परवानगी देतो0.1 min1 min10 min100 min99%403.2 min · 87.60 h/yr99.9%40.3 min · 8.76 h/yr99.95%20.2 min · 4.38 h/yr99.99%4.0 min · 0.88 h/yr99.999%0.4 min · 0.09 h/yr≈ उठून log in करायला लागणारा वेळप्रत्येक जादा nine = 10 × कमी downtime99.99% (4.0 min) वर दुरुस्ती आपोआपच व्हायला हवी:failover, rollback — page केलेली व्यक्ती नव्हे
⏪ आधी

एका team ने 99.9% चे वचन दिले, पण request तीन भागांतून जात होती, आणि त्यांचे आकडे कधीच गुणले नाहीत.

💡 काय

Serial availability: gateway 99.99% × app 99.95% × database 99.9% = 99.840%, सर्वात कमकुवत भागापेक्षाही वाईट.

⚙️ कसे

दोन स्वतंत्र database copies मुळे 1 − (1 − 0.999)² = 99.9999% मिळते, आणि संपूर्ण chain 99.940% पर्यंत जाते.

🎯 का

99.840% chain वर्षाला 14.0 h बंद राहू देते; 99.99% वर 28 दिवसांत फक्त 4.0 min, म्हणून दुरुस्ती automatic हवी.

🚀 पुढे

पुढचा धडा overload मध्ये नीट अपयशी व्हायला शिकवतो: critical काम आधी, बाकीचे degrade, आणि प्रत्येक retry ला मर्यादा.

🧪 इथे करून पाहा — रांगेतील दरवाजे गुणाकाराने खाली नेतात, प्रती nines वाढवतात
1

पूर्ण धडा 09 वाचा →

10 🚦 Overload

परीक्षेच्या विद्यार्थिनींना आधी जेवण द्या — प्राधान्यानुसार load shedding, graceful degradation, retry budgets.

🧒 सोप्या शब्दांत

Canteen सेकंदाला 1,000 थाळ्या देऊ शकते, पण 1,500 लोक येतात. काहीच नियोजन नसेल तर सगळे सारखे थांबतात, आणि तीनपैकी फक्त दोघांनाच जेवण मिळते, दहा मिनिटांत परीक्षा असलेल्या विद्यार्थ्यांनासुद्धा. नियोजन असेल तर परीक्षेचे विद्यार्थी आधी, मग नेहमीचे जेवण, मग दुसरे dessert. सजावट टाळल्याने थाळ्या लवकर होतात, म्हणून 357 desserts दिले जातात. परत पाठवलेले सगळे तीन वेळा पुन्हा घुसू शकत नाहीत.

📖 नवे शब्दoverload — सेवा देता येईल त्यापेक्षा जास्त काम येणे, जसे 1,000 च्या capacity साठी 1,500load shedding — critical काम पूर्ण राहावे म्हणून सर्वात कमी महत्त्वाचे काम आधी परत पाठवणेgraceful degradation — स्वस्त आवृत्ती देणे, जसे photo thumbnails वगळणेretry budget — retries जास्तीत जास्त 10% load वाढवू शकतात, म्हणून 3,000 ऐवजी 1,650
1🍽️ canteen सेकंदाला 1,000 जणांना वाढते — 1,500 येतात: कोणाला मिळणार?400 critical500 normal600 sheddablecounter: सेकंदाला 1,000 ताटेआलेले: 400 + 500 + 600 = सेकंदाला 1,500critical = log in करून वेळापत्रक पाहणे · sheddable = recommendations, prefetchप्राधान्यक्रम नाहीप्रत्येक वर्गाला 3 पैकी 2267333400critical 267/400500 परत पाठवलेप्राधान्यक्रमानुसार shedआधी critical ला वाढा, खालून shed करा400500100critical 400/400500 परत पाठवले+ graceful degradation (खर्च 0.7)normal + sheddable ला photo thumbnails मिळत नाहीत400500357critical 400/400243 परत पाठवलेक्षमता 1,000degradation: 100 ऐवजी 357 sheddable requests पूर्ण झाल्या2🔁 परत पाठवलेले पुन्हा येतात: प्रत्येकी 3 retries, किंवा एक retry budgetआलेला भार1,500 attempts/sप्रत्येक request साठी 3 retries3,000 attempts/s3 retries + 10% retry budget1,650 attempts/sserver फक्त 1,000 हाताळू शकतोretries मुळे 1.5× overload चा 3× होतोretry budget अतिरिक्त भारावर मर्यादा घालतेretries आलेल्या भाराच्या 10% पर्यंतच:1,500 + 150 = 1,650मर्यादित रांगा: Distributed Systems शाळा, धडा 12
⏪ आधी

प्रत्येक request एकाच रांगेत थांबत असे, म्हणून overload मध्ये recommendations इतकेच logins सुद्धा अयशस्वी होत.

💡 काय

Capacity 1,000 req/s, आलेले 1,500: critical 400, normal 500, sheddable 600. Load shedding priority नुसार सेवा देते.

⚙️ कसे

Priority नसताना प्रत्येक वर्गाला 3 पैकी 2 (critical 267); priority नुसार 400, 500 आणि 100; degrade केल्यावर 357 sheddable.

🎯 का

प्रत्येक request वर 3 retries मुळे सेकंदाला 1,500 चे 3,000 प्रयत्न होतात; 10% retry budget ते 1,650 वर थांबवते.

🚀 पुढे

पुढचा धडा दावे मुद्दाम तपासतो: एका cell मध्ये ठरवून केलेली वीज कपात, hypothesis आणि abort line सह.

🧪 इथे करून पाहा — overload खालील कॅन्टीन — प्राधान्यक्रम, स्वस्त ताटे आणि retries
10004005006000.7310

पूर्ण धडा 10 वाचा →

11 🧯 Chaos engineering

नियोजित वीज खंडित — hypothesis, blast radius, abort च्या अटी आणि game days.

🧒 सोप्या शब्दांत

पथक म्हणते की पूर्वेकडील wing ची वीज गेली तरी बाकीच्या wings सगळे वर्ग चालवू शकतात. हे कोणीच कधी करून पाहिलेले नाही. म्हणून त्या वर्गांच्या एका block वर, म्हणजे एक दशांश विद्यार्थ्यांवर, test करतात, आणि कधी थांबायचे ते आधीच लिहून ठेवतात. पहिल्या block मध्ये तीन wings आहेत आणि प्रत्येक वर्ग चालू राहतो. दुसऱ्या block मध्ये फक्त दोन wings: जवळजवळ अर्धे वर्ग थांबतात, आणि कतरिना लगेच वीज परत सुरू करते.

📖 नवे शब्दchaos engineering — खरे outage होण्याआधी एखादा दावा तपासण्यासाठी काळजीपूर्वक, मुद्दाम गोष्टी बिघडवणेhypothesis — तुमची अपेक्षा, जसे 'success 99.5% किंवा त्याहून जास्त राहते'blast radius — test किती users ना स्पर्श करू शकते, जसे 1 cell = 10%abort condition — test लगेच थांबवणारी रेषा, जसे कोणताही minute 99.0% खाली
1📝 वीज जाण्याच्या आधीच लिहिलेलेhypothesis: zone B ची वीज गेली → success ≥ 99.5% राहतेsteady-state metric: success rate, दर मिनिटालाabort: कोणत्याही मिनिटाला 99.0% च्या खाली → fault लगेच मागे घ्याblast radius: 1 cell = 10% usersload: 700 requests/s · 1 replica 200/s हाताळतेfault: मिनिट 3 पासून 5 मिनिटे zone B बंद10 cells मधील शाळा — test फक्त एकाला स्पर्श करतेtest cellcell 2cell 3cell 4cell 5cell 6cell 7cell 8cell 9cell 102🧯 3 zones मध्ये 6 replicas असलेला cellzone Azone B — वीज गेलीzone Cवीज गेली असताना: 4 replicas × 200 = 800/s, गरज 700/s → 100%50%75%100%abort रेषा 99.0%नियोजित fault: मिनिटे 3–70123456789HYPOTHESIS टिकलीabort नाही · 0 अयशस्वी3🧯 2 zones मध्ये 4 replicas असलेला cellzone Azone B — वीज गेलीवीज गेली असताना: 2 replicas × 200 = 400/s, गरज 700/s → 57%50%75%100%abort रेषा 99.0%नियोजित fault: मिनिटे 3–7012357%456789मिनिट 3 ला ABORT केले: वीज परत सुरूHYPOTHESIS खोटी ठरली18,000 requests अयशस्वी — फक्त एकाच cell मध्येहाच fault सर्व 10 cells वर: 10 × जास्त अपयश
⏪ आधी

खरे outage तपासेपर्यंत designs वर विश्वास ठेवला जात असे, पहाटे 3 वाजता, सगळ्या विद्यार्थ्यांवर एकाच वेळी.

💡 काय

Chaos engineering: hypothesis 'zone B गेला तरी success ≥ 99.5%', 99.0% खाली abort, blast radius 1 cell = 10%.

⚙️ कसे

3 zones मधील 6 replicas 100% वर राहतात. 2 zones मधील 4 replicas 57% पर्यंत घसरतात, आणि test minute 3 ला abort होते.

🎯 का

अयशस्वी run मुळे एका cell मध्ये 18,000 requests गेल्या; सगळ्या 10 cells वर एकदम केले असते तर 10 × जास्त गेल्या असत्या.

🚀 पुढे

पुढचा धडा पथक pager घेण्याआधीची checklist तपासतो, आणि सगळे बारा धडे एका नकाशावर मांडतो.

🧪 इथे करून पाहा — एका cell मध्ये नियोजित वीज कपात — hypothesis टिकते का?
2320070099.5995

पूर्ण धडा 11 वाचा →

12 ✅ Production readiness आणि संपूर्ण चित्र

पथक pager हाती घेण्याआधीची checklist — आणि SRE पद्धतीचा संपूर्ण नकाशा.

🧒 सोप्या शब्दांत

नवे timetable office तयार आहे, आणि शिक्षकांना सोमवारी तिथे जायचे आहे. पथक त्याची देखभाल करायला तयार होण्याआधी कतरिना checklist घेऊन फिरते. बहुतेक चौकटी पूर्ण आहेत, पण दोन लाल आहेत: बदल परत घ्यायला 15 मिनिटे लागतात, आणि तीन दारे मिळून 99.84% होतात, वचन दिलेल्या 99.9% पेक्षा कमी. शिक्षक एक जलद switch, दुसरे दार आणि वीज कपातीचा सराव जोडतात. आता ते तयार आहे.

📖 नवे शब्दproduction readiness review — पथक एखाद्या service चा pager घेण्याआधी checklist नुसार केलेली तपासणीblocker — अयशस्वी check जो दुरुस्त होईपर्यंत launch थांबवतोgame day — लोक आणि runbooks तपासणारा ठरवून केलेला अपयशाचा सरावrunbook — एका प्रकारच्या page ला हाताळण्याच्या लिहून ठेवलेल्या पायऱ्या
1📋 कतरिनाची तपासणी: वेळापत्रक कार्यालय pager मागतेL02SLO ठरला + error-budget policy वर सहीL01ops काम 50% मर्यादेखाली, toil नोंदवही ठेवलीL04on-call: 8+ लोक किंवा दोन sites, प्रत्येक page साठी एक runbookL05automated canary analysis प्रत्येक release चे फाटक आहेL065 मिनिटांत किंवा कमी वेळात rollback; धोकादायक features flags मागेblockerL07capacity: 2 तिमाहींचा forecast, एक zone गेला तरी टिकतेL08incident roles चे प्रशिक्षण झाले, handoff template तयारL09dependency chain SLO पूर्ण करतेblockerL10प्राधान्यक्रमानुसार load shedding + client retry budgetL11गेल्या 90 दिवसांत एक game day, abort अटी लिहिलेल्याfixobsdashboards + burn-rate alerts (Observability शाळा)opsगेल्या 90 दिवसांत test मध्ये backup restore केलातयार नाही — 2 blockers, 1 इतर2🔧 तीन दुरुस्त्याL06 rollback15 min redeploy1 min flag offL09 chain99.840% < 99.9%99.940% ≥ 99.9%L11 game dayकधीच चालवला नाही12 दिवसांपूर्वी🧯तयार — देखभाल पथक pager घेते3🗺️ संपूर्ण चित्र: बारा धडे, एक रस्ता🛠️1ops 50% वर मर्यादित करा📜2budget ठरवा🪣3toil संपवा📟4समजूतदार on-call🐤5canaries तपासा🎚️6टप्प्याटप्प्याने rollout करा📈7capacity चे नियोजन करा🦺8incidents चे नेतृत्व करा🔢9nines चे गणित करा🚦10load कमी करा🧯11chaos ने test करा✅12आधी review करा
⏪ आधी

नवी service आधी launch होत असे, आणि पथकाची तिच्याशी पहिली भेट पहाटे 3 वाजता page आल्यावर होत असे.

💡 काय

Production readiness review: 12 checks, प्रत्येक धड्याचा एक, अधिक observability आणि backups, त्यापैकी 8 blockers.

⚙️ कसे

कतरिनाला 15 मिनिटांचा rollback आणि 99.9% SLO खालील 99.840% chain सापडते: NOT READY, 2 blockers आणि 1 आणखी fix.

🎯 का

1 मिनिटाचा flag rollback, दोन database copies (99.940%) आणि game day नंतर ती READY होते, आणि पथक pager घेते.

🚀 पुढे

पुढे: SLOs, burn-rate alerts आणि postmortems साठी Observability school, आणि traffic साठी Scaling school.

🧪 इथे करून पाहा — readiness review — तथ्ये बदला, निकाल पाहा
1584740

पूर्ण धडा 12 वाचा →

धडा 01 सुरू करा → 🗓️ अभ्यास योजना (4 आठवडे) 📐 सर्व 12 धड्यांच्या आकृत्या 🧪 प्रश्नमंजुषा (16 प्रश्न) ⏮️ आधी काय होते & फायदे-तोटे