← कोर्सच्या मुख्य पानाकडे परत

📐 12 धडे आकृत्यांमध्ये

भाग 1: का आणि काय (cyan, 1–4) · भाग 2: self-service (brown, 5–8) · भाग 3: guardrails आणि मोजमाप (violet, 9–12). प्रत्येक आकृती खऱ्या, deterministic lab मधून काढली आहे — idp/demo.py जे आकडे छापते तेच — आणि प्रत्येक आकृतीखाली एक lab आहे जिथे तुम्ही स्वतः कार्यालयाचे नियम बदलता. वर्तुळातील आकडे क्रमाने पाहा 1 → 2 → 3.

1 🧭 platforms का हवेत

प्रत्येक शिक्षिका स्वतःचा वर्ग-संच बनवते — cognitive load, तिकिटांची रांग आणि 'you build it, you run it' चा थकवा.

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

कतरिना नवी science शिक्षिका आहे, आणि तिला एक वर्ग हवा आहे. बाकडी, कुलूप, socket आणि first-aid box तिला स्वतः शोधावे लागतात. इतर शिक्षिका दीपिकाच्या office ला अर्ज लिहितात. रोज 5 अर्ज येतात, आणि दीपिका फक्त 4 पूर्ण करू शकते. म्हणून ढीग रोज 1 ने वाढतो. मग office एका कपाटावर तयार kits ठेवते, आणि कतरिना एक kit घेते.

📖 नवे शब्दplatform team — इतर teams ना शून्यापासून सुरुवात करावी लागू नये म्हणून तयार kits बनवणारे मदतनीसcognitive load — एका व्यक्तीला एकाच वेळी डोक्यात ठेवाव्या लागणाऱ्या गोष्टी, जसे 14 कामेticket queue — कोणीतरी हाताने करायची वाट पाहणारी लेखी विनंत्यांची रांग
1😩 आधी — कतरिना सगळ्या 14 जबाबदाऱ्या स्वतःच सांभाळतेKatrinaनवीन scienceशिक्षकएक service =14 कामेapplication codetestsDockerfileCI pipelineKubernetes manifestsdatabase साठी TerraformIAM rolessecretsDNS + TLSlogs + dashboardsalertsbackupscost tagsservice साठी on-call2🛤️ नंतर — ती 4 ठेवते, कार्यालय 10 संच देतेKatrinaapplication codetestsalertsservice साठी on-callतिची: code, tests,alerts, on-callसुविधा कार्यालयाचे संचांचे कपाटDockerfileCI pipelineKubernetes manifestsयासाठी Terraform:databaseIAM rolessecretsDNS + TLSlogs + dashboardsbackupscost tagsकाचेची झाकणे: अजूनही दिसतात,अजूनही बदलता येतात3📥 कार्यालयातील तिकिटांचा ढीग — दिवसाला 5 मागण्या येतात, दीपिका दिवसाला 4 पूर्ण करते, 20 कामकाजाच्या दिवसांसाठीDipikaएकच कारकून📥 5 आत/दिवस📤 4 बाहेर/दिवसदिवसाअखेरीस अजूनही ढिगात असलेले अर्ज11223344556677889910101111121213131414151516161717181819192020दिवसयांची प्रतीक्षा:दिवसाचे शेवटचे ticket0d0d0d0d1d1d1d1d1d2d2d2d2d2d3d3d3d3d3d4dपूर्ण 80 · अजून वाट पाहत 20 · सरासरी प्रतीक्षा 2.0 दिवसदिवस 1: 0 दिवस वाट · दिवस 20: 4 दिवस वाट — रांग रोज 1 ने वाढतेरोज +1 फॉर्म, कधीच परत 0 वर नाही
⏪ आधी

प्रत्येक शिक्षिका आपला classroom kit स्वतः बनवत असे, किंवा facilities office च्या ढिगात विनंती लिहून वाट पाहत असे.

💡 काय

एक service चालू करायला team ला 14 कामे एकटीने करावी लागत; office मुळे ती 4 ठेवते आणि 10 तयार kits म्हणून घेते.

⚙️ कसे

रोज 5 विनंत्या येतात आणि दीपिका 4 पूर्ण करते: 20 दिवसांनी 80 पूर्ण, 20 अजून रांगेत, सरासरी वाट 2.0 दिवस.

🎯 का

ढीग रोज 1 ने वाढतो: पहिल्या दिवशी 0 दिवस वाट, 20 व्या दिवशी 4 दिवस. नुसत्या जास्त मेहनतीने रांग कधीच संपत नाही.

🚀 पुढे

पुढच्या धड्यात शिक्षिका ग्राहक बनतात: त्यांना विचारा, त्रास क्रमाने लावा, आणि सर्वात मोठा त्रास आधी सोडवा.

🧪 इथे करून पाहा — दीपिकाचा tickets चा ढीग — किती येतात, ती किती पूर्ण करते आणि कार्यालय किती kits देते ते बदला
542010

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

2 🤝 Platform म्हणजे एक product

शिक्षिका या कार्यालयाच्या ग्राहक आहेत — मुलाखती, त्रासानुसार क्रम लावलेला roadmap, सक्तीऐवजी स्वेच्छेने स्वीकार.

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

दीपिका या महिन्यात एक नवा kit बनवू शकते. ती चमकदार smart board बनवू शकली असती, कारण ते मजेदार आहे. त्याऐवजी ती प्रत्येक विभागाला विचारते की त्यांचा वेळ कशात वाया जातो. Database ची वाट पाहण्यात आठवड्याला 15 तास जातात. म्हणून तो kit आधी. ती कोणालाही तो वापरायची सक्ती करत नाही. Arts विभाग नको म्हणतो, तेव्हा ती का ते विचारते.

📖 नवे शब्दplatform as a product — platform वापरणाऱ्या teams ना जिंकायचे ग्राहक मानणेroadmap — पुढे काय बनवायचे त्याची यादी, सर्वात मोठा त्रास आधीadoption — किती teams नी ते वापरायचे ठरवले, जसे सहाव्या महिन्यापर्यंत 80%
1🗒️ दीपिका 5 विभागांच्या मुलाखती घेतेDipikaदर आठवड्याला, प्रत्येक त्रासामुळे वाया गेलेले तासsciencedatabase ची वाट — 6 hCI YAML लिहिणे — 3 hservice चा मालक शोधणे — 1 hmathsdatabase ची वाट — 4 hpreview environments — 3 hservice चा मालक शोधणे — 1 hlibraryCI YAML लिहिणे — 4 hsecrets बदलणे (rotate) — 2 hक्रीडाdatabase ची वाट — 5 hpreview environments — 2 hservice चा मालक शोधणे — 1 hकलाsecrets बदलणे (rotate) — 1 hservice चा मालक शोधणे — 2 h2📊 बेरीज करा, वाया गेलेल्या तासांनुसार क्रम लावा → हाच roadmap0 h5 h10 h15 h1. database ची वाट3 teams64515 h/आठवडा2. CI YAML लिहिणे2 teams347 h/आठवडा3. service चा मालक शोधणे4 teams11125 h/आठवडा4. preview environments2 teams325 h/आठवडा5. secrets बदलणे (rotate)2 teams213 h/आठवडाroadmap #1sciencemathslibraryक्रीडाकला🖥️ smart-board kitसर्वात मजेदार — पण पहिले नाही3📈 स्वीकार कमवावा लागतो, सक्ती करून मिळत नाही — बांधलेली वाट कोणी स्वतःहून निवडलीमहिना 120%sciencemathslibraryक्रीडाकला5 पैकी 1 विभागमहिना 360%sciencemathslibraryक्रीडाकला5 पैकी 3 विभागमहिना 680%sciencemathslibraryक्रीडाकला5 पैकी 4 विभागकला: "नको, धन्यवाद"कला विभागाने वाट सोडली → दीपिका का ते विचारते — ते उत्तर म्हणजेच तिची पुढची मुलाखत
⏪ आधी

मध्यवर्ती team ला आवडलेले tool ती निवडत असे, आणि मग ठरलेल्या तारखेपर्यंत प्रत्येक विभागाला ते वापरायला सांगत असे.

💡 काय

Platform as a product: दीपिका 5 विभागांशी बोलते आणि दर आठवड्याला वाया जाणाऱ्या तासांनुसार त्रास क्रमाने लावते.

⚙️ कसे

Database ची वाट 3 teams मध्ये 15 h/week खाते, CI YAML 7 h, owner शोधणे 5 h: म्हणून databases पहिल्यांदा.

🎯 का

Adoption मिळवावा लागतो: पहिल्या महिन्यात 20%, तिसऱ्यात 60%, सहाव्यात 80%. दूर राहणारी team म्हणजे feedback.

🚀 पुढे

पुढच्या धड्यात लोकांनी मागितलेला पहिला kit बनतो: मिनिटांत नवी service बनवणारा golden-path template.

🧪 इथे करून पाहा — दीपिकाची वही — विभागाचे वाया जाणारे तास आणि बांधलेली वाट कोणी निवडली ते बदला
6

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

3 🛤️ सोनेरी वाटा आणि templates

तयार वर्ग-संच — versioned template मधून service चा सांगाडा बनवणारा scaffolder.

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

कतरिना office कडे exam-results नावाचा नवा classroom kit मागते. दीपिका कपाटातून एक box काढते: python-service, version 3. आत एकमेकांना जुळणाऱ्या 8 गोष्टी आहेत. एका मैत्रिणीने आधी 'Exam Results!' हे नाव वापरून पाहिले. दीपिकाने फक्त नाही म्हटले नाही. ती म्हणाली: लहान अक्षरे आणि dash वापरा, जसे exam-results. Kit हा सोपा मार्ग आहे, एकमेव नाही.

📖 नवे शब्दgolden path — एखादी गोष्ट बनवण्याचा सोपा, आधार असलेला मार्ग, ज्यात चांगले निर्णय आधीच घेतलेले असतातtemplate — दरवेळी तशाच सुरुवातीच्या files बनवणारा तयार नमुनाscaffolder — template मध्ये तुमचे नाव आणि owner भरणारे, किंवा काय दुरुस्त करायचे ते सांगणारे tool
1🙅 तीन विनंत्या नाकारल्या — आणि प्रत्येक नकार ते कसे दुरुस्त करायचे ते सांगतोनवीन service मागाtemplate:python-servicename:Exam Results!owner:scienceनाकारले• नाव 'Exam Results!' — 3–31 lowercase अक्षरे, अंक किंवाdashes वापरा, सुरुवात अक्षराने, उदा. 'exam-results'नवीन service मागाtemplate:python-servicename:वेळापत्रकowner:scienseनाकारले• नाव 'timetable' आधीच घेतले आहे — दुसरे निवडा, किंवा त्याच्या मालकालाcatalog मध्ये विचारा• owner 'sciense' हा ओळखीचा group नाही — यापैकी एक निवडा:facilities-office, library, maths, scienceनवीन service मागाtemplate:java-servicename:exam-resultsowner:scienceनाकारले• 'java-service' नावाचे template नाही — यापैकी एक निवडा: python-service,static-siteफक्त कोरडे "नाही" नाही: काय चुकले, आणि ते बरोबर करण्याचा एक मार्ग2📦 कतरिना python-service v3 kit उघडते → 8 files, push साठी तयारKatrinapython-serviceversion 3name: exam-resultsowner: scienceREADME.md🪧 स्वागताचा फलकsrc/app.py🪑 बाके (code)tests/test_app.py🚨 धुराचा alarm (tests)Dockerfile🚪 कुलूप असलेले दारcatalog-info.yaml📇 नोंदवहीसाठी नावाचे कार्ड.github/workflows/ci.yml🗓️ वेळापत्रकातील तास (pipeline)बांधलेली pipeline @v2 वापरतेdeploy/values.yaml📐 खोलीचा आराखडाreplicas 2 · limits 500m / 256Midocs/index.md📌 सूचना फलकचांगले defaultsपहिल्या मिनिटापासून🚀 push → बांधलेलीpipeline चालते3📇 नावाचे कार्ड, आणि फाटाapiVersion: backstage.io/v1alpha1kind: Componentmetadata: name: exam-resultsspec: type: service lifecycle: experimental owner: sciencecatalog (धडा 04) ही file वाचतोसोनेरी वाटसोपा मार्गती सोडा →जे बदलालत्याची जबाबदारी तुमचीसोपा मार्ग, एकमेव मार्ग नाही:
⏪ आधी

प्रत्येक नवी service रिकाम्या repo मधून सुरू होत असे, किंवा जवळ असलेल्या जुन्या repo ची copy करून.

💡 काय

Golden path म्हणजे version असलेला template: python-service v3 src/app.py पासून catalog-info.yaml पर्यंत 8 files बनवतो.

⚙️ कसे

Scaffolder नावाचा नियम, मोकळे नाव, ओळखीचा owner आणि template तपासतो, आणि प्रत्येक नकारात दुरुस्ती सांगतो.

🎯 का

'Exam Results!' ला 'exam-results वापरा' आणि 'sciense' ला खरे 4 groups सांगितले जातात: शिकवणारा नकार, भिंत नाही.

🚀 पुढे

पुढचा धडा प्रत्येक service बरोबर येणारी catalog-info.yaml वाचून शाळेची services ची नोंदवही बनवतो.

🧪 इथे करून पाहा — कार्यालयाकडे नवीन service मागा — चुकीची नावे, अनोळखी मालक आणि नसलेले templates वापरून पाहा

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

4 📇 Service catalog

प्रत्येक वर्गखोलीची नोंदवही — मालक, dependencies, अनाथ services आणि blast radius.

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

Office प्रत्येक खोलीची नोंदवही ठेवते: ती कोणाची आहे आणि तिला काय लागते. एका सकाळी sign-in system, auth, बंद पडते. दीपिका बाण उलटे फिरून पाहते आणि तिला 5 खोल्या अडचणीत दिसतात. तिला कोणाच्याच मालकीच्या नसलेल्या खोल्याही सापडतात: canteen-orders आणि fees. त्या बंद पडल्या तर कोणालाच फोन जात नाही. म्हणून प्रत्येक खोलीला नाव असलेला owner हवा.

📖 नवे शब्दservice catalog — प्रत्येक service, तिचा owner आणि तिला काय लागते याची नोंदवहीorphan — अजून वापरात असलेली पण कोणतीच team न सांभाळणारी serviceblast radius — एक गोष्ट बंद पडली की बंद पडणारे सगळे, जसे auth बंद पडल्यावर 5 services
1🗺️ नोंदवहीतील बाण — 'auth बिघडते' तेव्हा ज्यांना त्याची गरज आहे ते सगळे उजळतातparent-portalmathsexam-resultsscienceवेळापत्रकmathsresults-dbscienceauthfacilities-officecanteen-ordersteam-2019-hackathon!feesमालक नाही!library-searchlibrary❓ payments-apiनोंदवहीत नाही❓ search-indexनोंदवहीत नाही💥 auth बिघडतेauth चा blast radius: 5 servicesबाण = "गरज आहे" · त्यांवरून उलट चाला2📇 नोंदवही — 8 नोंदीमालक → तो कशाची काळजी घेतोscience· exam-results· results-dbmaths· parent-portal· वेळापत्रकlibrary· library-searchfacilities-office· auth⚠️ अनाथ — call कोणालाच येत नाहीcanteen-ordersowner: team-2019-hackathon (group अस्तित्वात नाही)feesowner: none❓ तुटलेले संदर्भfees → payments-apilibrary-search → search-index3🔎 results-db बिघडले तर — बाणांवरून उलट जा, साखळ्यांमधून: 2 servicesresults-dbविज्ञान · बिघडतेexam-resultsविज्ञान · results-db लागतोstep 1parent-portalगणित · exam-results लागतोstep 2timetable, auth, fees … सुरक्षित आहेतcatalog-info.yaml प्रत्येकrepo मध्ये code शेजारीच ठेवा — जुनी झालेलीनोंदवही खोटं सांगते
⏪ आधी

Service बंद पडेपर्यंत तिचा owner कोण हे कोणालाच माहीत नसे; लोक chat मध्ये विचारत, आणि काही उत्तरे वर्षांपूर्वीची असत.

💡 काय

Service catalog म्हणजे नोंदवही: 8 नोंदी, प्रत्येकीला owner, lifecycle आणि ती कशावर अवलंबून आहे याची माहिती.

⚙️ कसे

बाण उलटे फिरा: auth बंद पडले तर 5 services अडतात; results-db बंद पडले तर exam-results आणि parent-portal.

🎯 का

ती 2 orphans (canteen-orders, fees) आणि 2 तुटलेले संदर्भ दाखवते: ते बंद पडले तर कोणालाच फोन जात नाही.

🚀 पुढे

पुढच्या धड्यात teams स्वतःची मदत करतात: menu मधून database मागवा, स्वतःच्या quota च्या आत.

🧪 इथे करून पाहा — नोंदवही — service बिघडवून तिचा blast radius पाहा, team विसर्जित करून अनाथ services तयार करा

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

5 🧰 स्वतः-सेवा infrastructure

कार्यालयाकडे मागा, लगेच मिळवा — प्रत्येक team च्या quota मध्ये resources चा ठरलेला मेनू.

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

आता office च्या भिंतीवर एक menu आहे: लहान कपाट, मोठे कपाट, एक box आणि कप्प्यांचा rack. Science ला ठरावीक मर्यादा आहे: 2 कपाटे आणि 6 फरश्या. कतरिना एक मोठे आणि एक लहान कपाट मागवते, आणि ती लगेच मिळतात. तिसऱ्या कपाटाला नकार मिळतो, आणि काय करायचे याची चिठ्ठीही. आता कोणीच ढिगात वाट पाहत नाही.

📖 नवे शब्दself-service — एखाद्या व्यक्तीची वाट न पाहता menu मधून स्वतः हवे ते घेणेquota — एका team ला जास्तीत जास्त किती मिळू शकते ती मर्यादा, जसे 2 databases आणि 6 CPUtag — resource वरचे लेबल, ते कोणाचे आहे आणि कोण सांभाळते ते सांगणारे
1📋 भिंतीवरचा कार्यालयाचा मेनूpostgres-smallलहान कपाट · 2 CPUpostgres-mediumमोठं कपाट · 4 CPUbucketएक खोका · 0 CPUरांगकप्प्यांची मांडणी · 0 CPUमेनूवर नाही? कार्यालयाला ते जोडायला सांगा2📏 सहा मागण्यांनंतर विज्ञानाचा वाटा (quota)databases2 पैकी 2 वापरलेresults-dbpostgres-mediumlab-dbpostgres-smallbuckets3 पैकी 1 वापरलेlab-photosbucketमोफतमोफतqueues2 पैकी 1 वापरलेgrade-eventsरांगमोफतCPU6 पैकी 6 वापरलेresults-db: 4lab-db: 2← मजला भरला आहे3🧾 मेनूकडे सहा मागण्या — ticket नाही, लगेच उत्तर (याच क्रमाने)1postgres-mediumresults-dbREADYलगेच तयार:science-results-dbtagsowner=sciencemanaged-by=facilities-office2postgres-smalllab-dbREADYलगेच तयार:science-lab-dbtagsowner=sciencemanaged-by=facilities-office3postgres-smallextra-dbनाकारलेविज्ञान आधीच 2/2 वापरतेdatabases — एक delete करा किंवामोठा quota मागा4mongodbnotes-dbनाकारले'mongodb' याcatalogue मध्ये नाही — उपलब्ध:postgres-small,postgres-medium, bucket,queue (किंवा कार्यालयालाते जोडायला सांगा)5bucketlab-photosREADYलगेच तयार:science-lab-photostagsowner=sciencemanaged-by=facilities-office6रांगgrade-eventsREADYलगेच तयार:science-grade-eventstagsowner=sciencemanaged-by=facilities-office
⏪ आधी

Database म्हणजे ticket, office च्या रांगेत वाट, आणि दरवेळी थोडा वेगळा बनलेला निकाल.

💡 काय

Self-service infrastructure: ठरलेला menu (postgres-small, postgres-medium, bucket, queue) आणि प्रत्येक team ला quota.

⚙️ कसे

Science ला 2 databases आणि 6 CPU मिळतात: results-db (4 CPU) आणि lab-db (2 CPU) लगेच तयार, extra-db ला नकार.

🎯 का

Quota मुळे एक team संपूर्ण शाळा भरू शकत नाही, आणि प्रत्येक resource ला owner=science, managed-by=facilities-office tag असतो.

🚀 पुढे

पुढचा धडा मागणीनुसार संपूर्ण environments देतो: प्रत्येक pull request ला एक trial classroom, TTL ने साफ होणारा.

🧪 इथे करून पाहा — विज्ञानाचा वाटा — quota बदला, मग मेनूमधून मागवा
2326

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

6 🧪 मागणीनुसार environments

प्रत्येक बदलासाठी एक चाचणी वर्गखोली — प्रत्येक pull request साठी preview environments, time-to-live नंतर साफ केली जातात.

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

कतरिना खरी lab बदलण्याआधी नवी मांडणी करून पाहू इच्छिते. Office तिला pr-101 नावाची trial खोली देते. तिने 'झाले' म्हटले की खोली रिकामी केली जाते. 48 तास कोणीच हात लावला नाही तरीही ती रिकामी केली जाते. फक्त 3 trial खोल्या आहेत. एका आठवड्यात 674 ऐवजी फक्त 223 तास दिवे लागले.

📖 नवे शब्दpreview environment — एका pull request साठी बनवलेली app ची थोड्या काळाची copyTTL — time to live: न वापरता किती वेळ राहू शकते ते, नंतर साफ केले जाते, जसे 48 hpull request — merge होण्याआधी इतर जण पाहतात असा सुचवलेला बदल
1🧪 प्रत्येक pull request साठी एक प्रयोग-वर्ग — pr-101 … pr-106 चा एक आठवडा (168 h)h0h24h48h72h96h120h144h168तासpr-101h20 PR बंद → delete झालाh1pr-102h53 मुदत संपली48 h एकही push नाहीh5pr-103h70 PR बंद → delete झालाpush h40: TTL पुन्हा सुरूh10pr-104h78 मुदत संपली48 h एकही push नाहीh30pr-105h41 नाकारले — 3 प्रयोग-वर्ग आधीच चालू; एक बंद झाल्यावर पुन्हा प्रयत्न कराpr-106h168 मुदत संपली (आठवडा संपतो)48 h एकही push नाहीh120मर्यादा: 3 चालूliveवर्ग2💡 दिवे चालूच राहिले — एका आठवड्यातले environment-ताससाफसफाईसह48604848223 hकोणीच delete करत नाही16716315813848674 hpr-101pr-102pr-103pr-104pr-1065 previews तयार झाले3🚪 प्रयोग-वर्गाचे नियमpr-101प्रयोग आराखडा🧹PR बंद → delete⏰TTL 48 h, push झाल्यावर पुन्हा सुरू🔢जास्तीत जास्त 3 चालू🌐pr-101.preview.school.testशेवटी अजून चालू: []
⏪ आधी

Teams एकच staging environment वाटून घेत, ते वापरायला रांग लावत, आणि कोणालाही आठवत नसलेल्या test copies चालू ठेवत.

💡 काय

प्रत्येक pull request ला एक preview environment, जसे pr-101.preview.school.test: TTL 48 h, प्रत्येक push ने पुन्हा सुरू.

⚙️ कसे

PR बंद झाला की room हटते, 48 h push नाही तर ती expire होते, आणि जास्तीत जास्त 3 चालू: h41 ला pr-105 ला नकार.

🎯 का

एका आठवड्यात 5 previews cleanup सह 223 environment-hours वापरतात, कोणीच न हटवल्यास 674 वापरले असते.

🚀 पुढे

पुढचा धडा production पर्यंतचा रस्ता बांधतो: प्रत्येक service वापरू शकेल असा एक सामायिक, version असलेला pipeline template.

🧪 इथे करून पाहा — प्रत्येक pull request साठी एक प्रयोग-वर्ग — time-to-live आणि मर्यादा बदला
483

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

7 🚚 पक्की CI/CD वाट

production कडे जाणारा एकच सामायिक रस्ता — पुन्हा वापरता येणारे, versioned pipeline templates आणि pinning म्हणजे काय.

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

प्रत्येक वर्गाला सकाळी तेच काम करावे लागते: कुलूप उघडणे, fire exit तपासणे, दिवे लावणे. Office एक routine card लिहिते आणि त्याला version 2 म्हणते. त्यात smoke-alarm ची पायरी जोडली की कतरिनाला ती दुसऱ्या सकाळी मिळते, कारण तिने 'नवीनतम version 2' म्हटले होते. ऐश्वर्याने 'नेमके 2.0' म्हटले, म्हणून ती वाट पाहते. Fees office ने वर्षांपूर्वी card 1 ची photocopy केली, आणि तिच्यापर्यंत काहीच पोहोचत नाही.

📖 नवे शब्दpipeline template — अनेक services follow करतात अशी build आणि deploy पायऱ्यांची एक सामायिक यादीmoving tag — @v2 सारखे नाव जे नेहमी नवीनतम v2.x कडे निर्देश करतेpin — एक नेमके version निवडणे, जसे @v2.0.0, म्हणजे तुम्ही ठरवेपर्यंत काहीच बदलत नाही
1📌 शिक्षक-खोलीत लावलेली कार्यालयाची नित्यक्रम-कार्डे — तीन releasesv1.0.04 steps · 14 mincheckout1 mintest6 minbuild image4 mindeploy3 minv2.0.06 steps · 17 mincheckout1 mintest6 minbuild image4 minSBOM1 minnewscan image2 minnewdeploy3 minv2.1.07 steps · 15 mincheckout1 minrestore cache1 minnewtest3 minbuild image4 minSBOM1 minscan image2 mindeploy3 min@v2हलता major tag:आपोआप सर्वात नवीन v2.x@v2.0.0नेमका pin:जाणीवपूर्वक bump ची वाट पाहतो@v1जुना major:SBOM नाही, image scan नाहीप्रतv1 ची झेरॉक्स प्रत:मूळाशी दुवा नाही, कधीच बदलत नाही2🚚 चार services, चार references — प्रत्येक खरंच काय चालवते (पट्टी = प्रत्येक step ची मिनिटे)0 min3 min6 min9 min12 min15 min18 minexam-results@v2→ v2.1.0testbuild imagescandeploy7 steps, 15 min🔍 images scan करतेवेळापत्रक@v2.0.0→ v2.0.0testbuild imagescandeploy6 steps, 17 min🔍 images scan करतेlibrary-search@v1→ v1.0.0testbuild imagedeploy4 steps, 14 min⚠️ image scan नाहीfees@copy→ v1.0.0 (चिकटवलेली प्रत)testbuild imagedeploy4 steps, 14 min📄 प्रत कधीच बदलत नाहीtemplate मधली एक दुरुस्ती तो वापरणाऱ्या प्रत्येक service पर्यंत पोहोचते — जिथे नियंत्रण हवे तिथे नेमक्या versions (किंवा commit SHAs) pin करा
⏪ आधी

प्रत्येक repo ची स्वतःची pipeline file होती, एकदा copy केलेली आणि वर्षानुवर्षे हाताने बदललेली, म्हणून दोन सारख्या नव्हत्या.

💡 काय

Office pipeline templates प्रकाशित करते: v1.0.0, v2.0.0 (SBOM आणि image scan जोडतो) आणि v2.1.0 (cache जोडतो).

⚙️ कसे

@v2 15 min मध्ये v2.1.0 चालवतो, @v2.0.0 17 min मध्ये v2.0.0, @v1 मध्ये image scan नाही, आणि pasted copy कधीच बदलत नाही.

🎯 का

Template मधील एक दुरुस्ती त्याला follow करणाऱ्या प्रत्येक service पर्यंत पोहोचते; नियंत्रण हवे तिथे exact version किंवा SHA pin करा.

🚀 पुढे

पुढचा धडा किल्ल्यांचे कपाट उघडतो: प्रत्येक team चे secrets, versions आणि rotation सह, आणि स्पष्ट layers मधील settings.

🧪 इथे करून पाहा — प्रत्येक service खरंच काय चालवते — तिचा reference बदला, किंवा नवीन template release करा

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

8 🔑 Secrets आणि config एक सेवा म्हणून

किल्ल्यांचे कपाट — प्रत्येक team ची secrets, versions आणि rotation सह; config स्पष्ट केलेल्या थरांमध्ये.

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

Office कडे प्रत्येक विभागासाठी एक खुंटी असलेले किल्ल्यांचे कपाट आहे. कतरिना science ची किल्ली घेते, पण maths ची किल्ली तिची नाही. मग दीपिका कुलूप बदलते आणि किल्ली version 2 टांगते. exam-results ची लिपिक आपली किल्ली बदलते, पण lab worker अजून परत आलेली नाही. म्हणून सगळ्यांकडे नवी किल्ली येईपर्यंत दीपिका जुने कुलूप चालू ठेवते.

📖 नवे शब्दsecret — program ला लागणारा password किंवा key, नजरेआड ठेवलेलाrotation — secret च्या जागी नवे version आणणे, जसे v1 वरून v2config layers — क्रमाने रचलेल्या settings, ज्यात नंतरचा layer जिंकतो, जसे production मधून replicas 3
1🔑 किल्ल्यांचे कपाट — प्रत्येक team साठी एक खुंटी, path नुसारteams/science/v2 (नवा)v1results-db-passwordv1 वाचले: 22 अक्षरे, value लपवलेलीteams/maths/timetable-api-keyscience✅ स्वतःचा path❌ नाकारले — science फक्त हे वाचू शकतेफक्त teams/science/* — याच्या मालकिणीला विचाराteams/maths/timetable-api-key share करण्यासाठी2🔄 कुलूप बदला (rotate) — कोणाकडेही उरत नाही तोपर्यंत v1 ठेवा1दोघेही v1 वाचतातstore:v1v1exam-resultsv1lab-workerजुने (stale):कोणीही नाही2rotate → v2store:v1v2v1exam-resultsv1lab-workerजुने (stale):2 consumers3exam-results reload होतेstore:v1v2v2exam-resultsv1lab-workerजुने (stale):lab-worker4मग v1 रद्द (revoke) कराstore:v1v2v2exam-resultsv2lab-workerजुने (stale):कोणीही नाही3📄 थरांमधील settings पत्रक — नंतरचे थर जिंकतात, आणि प्रत्येक value ती कुठून आली ते सांगते1. defaultslog_level: inforeplicas: 2feature_new_grades: False+2. productionreplicas: 3+3. exam-resultsfeature_new_grades: Trueराखाडी, खोडलेले = नंतरच्या थराने बदललेले (override)exam-results साठी निकालlog_level = infodefaults मधूनreplicas = 3production मधूनfeature_new_grades = Trueexam-results मधूनreplicas = 3 कुठून आले याचा अंदाज लावावा लागत नाही
⏪ आधी

Passwords wiki pages आणि .env files मध्ये पडलेले असत; एक बदलला की जुने value वापरणारे सगळे बंद पडत.

💡 काय

Office चा secret store path नुसार चालतो: science फक्त teams/science/* वाचू शकते; teams/maths/* ला नकार.

⚙️ कसे

v2 वर rotate करा: exam-results आणि lab-worker stale आहेत; exam-results reload करते, आणि फक्त lab-worker v1 वर राहते.

🎯 का

कोणीच वापरत नाही तोपर्यंत v1 चालू ठेवा, मग revoke करा; config layers दाखवतात की replicas = 3 production मधून आले.

🚀 पुढे

पुढचा धडा सुरक्षेचे नियम code मध्ये लिहितो: काय चुकले आणि कसे दुरुस्त करायचे हे सांगणारे guardrails.

🧪 इथे करून पहा — किल्ल्यांचे कपाट — team म्हणून paths वाचा, password बदला (rotate), consumers reload करा, v1 रद्द करून पहा

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

9 🛡️ Policy as code आणि guardrails

फक्त 'नाही' न म्हणता दुरुस्ती कशी करायची ते सांगणारे सुरक्षा नियम — audit आणि enforce modes मधले policy as code.

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

शाळेचे खोल्यांसाठी सुरक्षेचे नियम आहेत: नाव असलेला owner, पुरेसे दरवाजे, कुलूपबंद कपाटे. आधीचा तपासणीस फक्त FAILED म्हणून निघून जात असे. आता checklist लिहिलेली आहे आणि प्रत्येक बदलावर चालते. प्रत्येक अडचणीसाठी ती काय चुकले आणि कसे दुरुस्त करायचे ते सांगते. सुरुवातीला ती फक्त इशारा देते. कतरिनाच्या खोलीत 4 अडचणी होत्या, तिने चारही दुरुस्त केल्या, आणि खोली उघडली.

📖 नवे शब्दpolicy as code — प्रत्येक बदल आपोआप तपासणारे program म्हणून लिहिलेले नियमguardrail — तुम्हाला सुरक्षित ठेवणारा आणि अडचण कशी सोडवायची ते सांगणारा नियमaudit mode — नियम फक्त इशारा देतात, अजून काहीच अडवले जात नाहीenforce mode — दुरुस्त होईपर्यंत नियम बदल अडवतात
1📄 exam-results, कतरिनाने लिहिले तसेname: exam-resultslabels: {}image: exam-results:latestlimits: {cpu: 500m}env: productionreplicas: 1public_bucket: false5 पैकी 4 नियम fail होतातजुनी पद्धत: निरीक्षक म्हणतोFAILED… आणि निघून जातो:काय चुकले नाही, कसे दुरुस्त करायचे नाहीत्याऐवजी ही checklist प्रत्येक बदलावर चालते2🛡️ code स्वरूपातील checklist — 5 नियम, दोन modesowner-labelowner label नाहीno-latest-tagimage tag 'latest' आहे किंवा नाहीचlimits-setCPU/memory limits नाहीतtwo-replicas-in-prodproduction मध्ये 1 replicano-public-bucketठीकaudit mode (पहिला महिना)enforce mode (बहुतेक pass झाल्यावर)इशाऱ्यांसह परवानगी4 त्रुटी — खोली उघडी राहते!!!!नाकारले4 त्रुटी — आधी दुरुस्त करा, मग उघडा3💬 प्रत्येक त्रुटी काय चुकले आणि ते कसे दुरुस्त करायचे दोन्ही सांगते — कतरिना फक्त messages वाचून चारही दुरुस्त करतेowner-labelowner label नाही→ दुरुस्ती:labels.owner: <your group> जोडा (योग्य लोकांना page करण्यासाठी catalogलोक)no-latest-tagimage tag 'latest' आहे किंवा नाहीच→ दुरुस्ती::1.4.2 सारखी version निश्चित करा (तयार pipeline प्रत्येक build ला tag लावते)limits-setCPU/memory limits नाहीत→ दुरुस्ती:limits जोडा: {cpu: 500m, memory:256Mi} (template चे defaults)two-replicas-in-prodproduction मध्ये 1 replica→ दुरुस्ती:replicas: 2 किंवा जास्त ठेवा, म्हणजे एकrestart म्हणजे outage ठरत नाहीचार दुरुस्त्यांनंतरlabels: {owner: science}image: …:1.4.2limits: {cpu, memory}replicas: 2✅ परवानगीenforce mode
⏪ आधी

एक व्यक्ती लिहिलेल्या यादीशी बदल तपासत असे आणि कारण न सांगता 'failed' म्हणत असे, किंवा कोणी तपासतच नसे.

💡 काय

Policy as code: प्रत्येक बदलावर 5 नियम चालतात, प्रत्येकात message आणि दुरुस्ती, audit किंवा enforce mode मध्ये.

⚙️ कसे

exam-results 4 नियमांत नापास: audit warnings सह परवानगी देतो, enforce नकार देतो; चार दुरुस्त्यांनंतर परवानगी मिळते.

🎯 का

'नाही' आणि 'असे करा' सांगणारा guardrail शिकवतो; फक्त 'नाही' म्हणणारा लोकांना त्याला वळसा घालायला लावतो.

🚀 पुढे

पुढचा धडा 'करायला हवे' ची यादी जोडतो: प्रत्येक service चे weighted checks आणि एक पुढची पायरी असलेले readiness scorecard.

🧪 इथे करून पहा — exam-results चे manifest checklist विरुद्ध — गोष्टी दुरुस्त करा, audit ↔ enforce बदला
1

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

10 🏅 Scorecards आणि परिपक्वता

प्रत्येक वर्गखोलीसाठी तयारीची तपासणी-यादी — वजन असलेल्या तपासण्या, स्तर, आणि पुढे काय दुरुस्त करायचे.

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

Office प्रत्येक वर्गासाठी 8 तपासण्या असलेले readiness card ठेवते. महत्त्वाच्या तपासण्या दुप्पट मोजल्या जातात, जसे owner असणे. Exam खोलीला 92% मिळतात आणि gold मिळते. Canteen खोलीला 33% मिळतात आणि ती अजून तयार नाही. कोणालाही लाजवण्यासाठी गुण भिंतीवर लावले जात नाहीत. प्रत्येक शिक्षिका फक्त आपले card आणि पुढची एक पायरी पाहते.

📖 नवे शब्दscorecard — एका service साठी तपासण्यांचे card, गुण आणि level सहweighted check — जास्त महत्त्वाची म्हणून जास्त मोजली जाणारी तपासणी, जसे owner ×2maturity level — गुणांसाठी बिल्ला: gold 90, silver 70, bronze 50
1🏅 तयारी कार्ड — 8 तपासण्या, एकूण वजन 12exam-resultsवेळापत्रकlibrary-searchfeescanteen-ordersमालकीण आहे×2runbook आहे×1on-call rota ठरलेला×2alerts ठरवलेले×2pipeline v2.x वर×1SLO लिहिलेले×1critical CVEs नाहीत×2dependencies जाहीर केलेल्या×1भारित गुण (weighted score)level92%★सुवर्ण83%★रौप्य58%★कांस्य50%★कांस्य33%✗तयार नाही2🧭 पातळ्या, आणि पुढची एकच पायरी0507090100exam-results · 92% सुवर्णपुढे: SLO लिहिणेtimetable · 83% रौप्यपुढे: runbook असणेlibrary-search · 58% कांस्यपुढे: on-call rota ठरवणेfees · 50% कांस्यपुढे: मालकीण असणेcanteen-orders · 33% तयार नाहीपुढे: मालकीण असणे3🪜 fees एका वेळी पुढची एक पायरी दुरुस्त करते — स्वतःचे कार्ड, क्रमवारीचा तक्ता नाही50% कांस्य★67% कांस्य★+ मालकीण आहे83% रौप्य★+ on-call rota ठरलेला100% सुवर्ण★+ critical CVEs नाहीत
⏪ आधी

Production readiness कोणाच्या तरी डोक्यात किंवा लांबलचक wiki checklist मध्ये असे, जी कोणी पूर्ण किंवा अद्ययावत करत नसे.

💡 काय

Scorecard: 8 weighted checks, एकूण weight 12, आणि levels gold 90, silver 70, bronze 50.

⚙️ कसे

exam-results 92% gold, timetable 83% silver, library-search 58%, fees 50% bronze, canteen-orders 33% not ready.

🎯 का

प्रत्येक team ला एक पुढची पायरी दिसते: fees आधी owner, मग on-call, मग CVEs जोडते आणि 50 → 67 → 83 → 100% चढते.

🚀 पुढे

पुढचा धडा कठीण प्रश्न विचारतो: office खरेच मदत करते का? DORA च्या चार keys, SPACE आणि प्रामाणिक आकडे.

🧪 इथे करून पहा — तयारी कार्ड — एक service निवडा, तिच्याकडे काय आहे ते tick करा, तिचे गुण, पातळी आणि पुढची पायरी पहा

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

11 📊 platform मोजणे

कार्यालयाचा उपयोग होतोय का? DORA च्या चार keys, पहिल्या deploy पर्यंतचा वेळ, SPACE, आणि आकड्यांचा शस्त्र म्हणून वापर न करणे.

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

मुख्याध्यापिका दीपिकाला विचारतात: office ची मदत झाली का? दीपिका science चे बदल तपासते. Kits आधी: आठवड्याला 1 बदल, कल्पनेपासून चालू होईपर्यंत 150 तास. नंतर: आठवड्याला 3, फक्त 5 तास. मग कोणीतरी आठवड्याला 9 बदलांचा आदेश देते, आणि एक विभाग तोच बदल तीनदा मोजतो. आकडा वाढला, पण काहीच सुधारले नाही. म्हणून दीपिका शिक्षिकांनाही विचारते.

📖 नवे शब्दDORA metrics — चार आकडे: किती वेळा, किती लवकर, किती वेळा बिघडते, किती लवकर दुरुस्त होतेlead time — बदल लिहिल्यापासून तो चालू होईपर्यंतचे तास, जसे 5 hGoodhart's law — आकडा ध्येय बनला की लोक काम सुधारण्याऐवजी आकडा वाकवतातSPACE — productivity पाहण्याचे पाच मार्ग, आकडे आणि लोकांना विचारणे एकत्र
1📊 science साठी DORA च्या चार किल्ल्या — kits पूर्वीचे 4 आठवडे विरुद्ध नंतरचे 4 आठवडेdeploys / आठवडाजास्त तितके चांगले1.0आधी3.0नंतर✓lead time (median)कल्पना → live150.0 hआधी5.0 hनंतर✓change failure rateबिघडलेले बदल50%आधी8%नंतर✓recovery (median)बिघाड → दुरुस्त23.0 hआधी2.0 hनंतर✓2🚀 आकड्यांमागचे deployments — commit ━ deploy, ✗ = बिघडले, ━ लाल = दुरुस्त होईपर्यंत (672 h = 4 आठवडे)h0आठवडा 1आठवडा 2आठवडा 3आठवडा 4आधी24 h22 h4नंतर2 h123🗓️ नव्या team ला पहिला deploy करायला लागणारा वेळदिवस 1दिवस 2दिवस 3दिवस 4दिवस 5दिवस 6दिवस 7दिवस 8🎫 repo · 2.0 दि🎫 pipeline · 2.0 दि🎫 database · 2.0 दि🎫 DNS · 2.0 दिtickets: एकामागून एक 4 × 2.0 दिवस ≈ 8.0 दिवसदिवस 1scaffoldself-service dbpipeline 15 minसोनेरी वाट: त्याच दिवशी4🎯 आकड्यालाच लक्ष्य बनवा → Goodhart चा नियमतेच 12 खरे बदल3.0/आठवडाप्रामाणिकपणे मोजले9.0/आठवडाप्रत्येक re-run ×3 मोजाlead time 5.0 h च राहतो — खरे काहीच सुधारले नाहीSसमाधान (Satisfaction)Pकामगिरी (Performance)Aहालचाल (Activity)Cसंवाद (Communication)Eकार्यक्षमता (Efficiency)SPACE: आकड्यांसोबत लोकांनाही विचारा; team ची तुलना तिच्या स्वतःशीच करा
⏪ आधी

Platform ची किंमत भावनेवरून, किंवा office दर महिन्याला किती tickets बंद करते यावरून ठरवली जात असे.

💡 काय

DORA च्या चार keys: दर आठवड्याचे deploys, lead time, change failure rate आणि recovery time, आणि लोकांना विचारणे (SPACE).

⚙️ कसे

Science 1.0 वरून 3.0 deploys/week, lead time 150 h वरून 5 h, failures 50% वरून 8%, आणि recovery 23 h वरून 2 h वर आली.

🎯 का

Re-runs मोजले तर त्याच 12 बदलांसाठी 9.0 deploys/week दिसतात: आकडा वाढतो पण काहीच सुधारत नाही.

🚀 पुढे

पुढचा धडा सगळे एका पानावर आणतो: developer portal, office चे प्रत्येक काम एकत्र करणारा front desk.

🧪 इथे करून पाहा — खऱ्या deployments मधून चार keys — आणि एखादा आकडा लक्ष्य बनला की काय होते
142

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

12 🏛️ Developer portal आणि संपूर्ण चित्र

स्वागत कक्ष — प्रत्येक service साठी Backstage-पद्धतीचे portal पान, आणि कार्यालयाचा संपूर्ण नकाशा.

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

Office मोठे झाले आहे: kits, नोंदवही, menu, trial खोल्या, किल्ल्यांचे कपाट आणि checklist. नव्या शिक्षिकेला नकाशा लागेल. म्हणून दीपिका एक front desk उघडते. कतरिना exam-results म्हणते, आणि तिला एक पान मिळते: owner, gold गुण, एक इशारा आणि आठवड्याला 3 बदल. Desk स्वतः काम करत नाही. ते सगळे सहज सापडेल असे करते.

📖 नवे शब्दdeveloper portal — एक website जिथे team ला आपल्या services बद्दल सगळे सापडतेBackstage — developer portal आणि catalog बनवण्यासाठी लोकप्रिय open-source toolinternal developer platform — platform team देत असलेले kits, menus आणि नियमांचा संपूर्ण संच
1🏛️ स्वागत कक्ष — कतरिना 'exam-results' टाइप करते आणि तिला एकच page मिळतेportal.school.test/catalog/exam-resultsexam-resultsowner sciencelifecycle production📇 catalog · यावर अवलंबूनresults-dbauthयांचे अवलंबनparent-portal🏅 scorecard★92% (gold)पुढे: SLO लिहिणे🛡️ policy (audit): इशाऱ्यांसह परवानगी!bucket public आहे → public_bucket: false करा आणि files CDN kit मधून द्या🚚 pipelinev2 → v2.1.0🧪 preview environmentsचालू: 1प्रत्येक pull request साठी एक📊 DORA (मागील 4 आठवडे)3.0deploys/आठवडा5.0 hlead time8%failure rate2.0 hrecovery📇catalogधडा 04🛡️धोरणधडा 09📊DORAधडा 11🏅scorecardधडा 10🚚pipelineधडा 07🧪previewsधडा 06कक्ष फक्त वाचतो;काम kits करतात2🗺️ संपूर्ण चित्र — सुविधा कार्यालय, धड्यागणिक1🧭 अडचणी2🤝 roadmap3🛤️ सोनेरी वाटा4📇 catalog5🧰 self-service6🧪 previews7🚚 तयार (paved) pipelines8🔑 secrets9🛡️ guardrails10🏅 scorecards11📊 प्रामाणिक मोजमाप12🏛️ एकच portal
⏪ आधी

नव्या शिक्षिकेला kit shelf, नोंदवही, menu, किल्ल्यांचे कपाट आणि checklist शोधायला नकाशा लागत असे.

💡 काय

Developer portal म्हणजे front desk: प्रत्येक service चे एक पान, catalog, scorecard आणि policy मधून गोळा केलेले.

⚙️ कसे

exam-results चे पान owner science, 92% gold, एक policy warning, pipeline v2 → v2.1.0 आणि 3.0 deploys/week दाखवते.

🎯 का

Desk फक्त वाचते; kits, menu आणि कपाट काम करतात, आणि desk ते सगळे एका जागी सहज सापडतील असे करते.

🚀 पुढे

30 teams च्या शाळेसाठी office आखा: पहिले तीन kits, quotas, पाच guardrails आणि प्रामाणिक मोजमाप.

🧪 इथे करून पाहा — exam-results चे स्वागत कक्ष page — भाग बदला, आणि page ते कसे एकत्र करते ते पाहा
1

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