सेवा विश्वसनीयता की आवश्यकता को नई सुविधाओं को जारी करने की आवश्यकता के साथ संतुलित करें।
→एक Service Level Objective (SLO) (जैसे, 99.9% उपलब्धता) परिभाषित करें। शेष 0.1% त्रुटि बजट है। यदि बजट अधिकतर बरकरार है, तो सुविधाएं भेजें। यदि बजट समाप्त हो गया है, तो सुविधा रिलीज़ रोकें और विश्वसनीयता सुधारों पर ध्यान केंद्रित करें।
क्यों: त्रुटि बजट जोखिम निर्णय लेने के लिए एक डेटा-संचालित ढांचा प्रदान करता है, इंजीनियरिंग, उत्पाद और व्यावसायिक टीमों को एक सामान्य लक्ष्य पर संरेखित करता है।
घटनाओं से सीखकर उन्हें दोबारा होने से रोकें, साथ ही मनोवैज्ञानिक सुरक्षा की संस्कृति को बढ़ावा दें।
→घटनाओं के बाद दोषरहित postmortems आयोजित करें। जांच को व्यक्तिगत पर दोषारोपण करने के बजाय प्रणालीगत कारकों, प्रक्रिया अंतराल और टूलिंग विफलताओं पर केंद्रित करें। आउटपुट कार्रवाई योग्य सुधार मदों की एक सूची होनी चाहिए।
क्यों: एक दोषरहित संस्कृति ईमानदार और खुले संचार को प्रोत्साहित करती है, जिससे एक घटना के मूल कारणों की अधिक सटीक समझ और अधिक प्रभावी निवारक कार्रवाई होती है।
प्रमुख घटना पर प्रतिक्रिया को प्रभावी ढंग से समन्वित करें, भ्रम और दोहराए गए प्रयासों से बचें।
→स्पष्ट रूप से परिभाषित भूमिकाओं के साथ एक Incident Command System (ICS) लागू करें: Incident Commander (समग्र समन्वय), Operations Lead (तकनीकी जांच/फिक्स), और Communications Lead (हितधारक अपडेट)।
क्यों: ICS घटना प्रतिक्रिया के लिए एक मानकीकृत, स्केलेबल संरचना प्रदान करता है, जो अधिकार और संचार की स्पष्ट रेखाओं को सुनिश्चित करता है, जो जटिल मुद्दों को जल्दी से हल करने के लिए महत्वपूर्ण है।
एक सॉफ्टवेयर वितरण संगठन के प्रदर्शन को मापें।
→चार प्रमुख DORA मेट्रिक्स को ट्रैक करें: Deployment Frequency (कितनी बार), Lead Time for Changes (कमिट से डिप्लॉय तक कितनी तेजी से), Change Failure Rate (कितने प्रतिशत डिप्लॉयमेंट विफलता का कारण बनते हैं), और Time to Restore Service (MTTR)।
क्यों: ये चार मेट्रिक्स विकास वेग और परिचालन स्थिरता दोनों का एक संतुलित दृश्य प्रदान करते हैं, और उच्च-प्रदर्शन वाले संगठनों के साथ सहसंबंधित होने के लिए सिद्ध हुए हैं।
एक SRE टीम मैन्युअल, दोहराए जाने वाले परिचालन कार्यों (toil) पर बहुत अधिक समय खर्च कर रही है, इंजीनियरिंग परियोजनाओं के लिए कोई समय नहीं छोड़ रही है।
→सबसे अधिक समय लेने वाले toil की पहचान करें और उसे मापें। इन कार्यों को प्राथमिकता दें और स्वचालित करें (जैसे, मैन्युअल स्केलिंग के बजाय autoscaling लागू करना, सामान्य अलर्ट के लिए ऑटो-रेमेडिएशन)। इंजीनियर के समय का < 50% पर toil को सीमित करें।
क्यों: Toil उत्पादकता और मनोबल पर एक खिंचाव है। स्वचालन के माध्यम से इसे व्यवस्थित रूप से कम करने से इंजीनियरों को दीर्घकालिक विश्वसनीयता सुधारों पर काम करने के लिए समय मिलता है।
एक साझा बुनियादी ढांचे में विभिन्न टीमों, सेवाओं या वातावरणों को क्लाउड लागतों को सटीक रूप से विशेषता दें।
→एक सुसंगत लेबलिंग/टैगिंग रणनीति लागू करें। Cloud Billing रिपोर्ट में फ़िल्टर करने के लिए इन लेबलों का उपयोग करें। GKE के लिए, namespace या workload द्वारा लागतों को विभाजित करने के लिए GKE cost allocation सक्षम करें।
क्यों: सटीक लागत आवंटन दृश्यता प्रदान करता है, जो जवाबदेही को बढ़ावा देता है। जो टीमें अपना खर्च देख सकती हैं, उन्हें इसे अनुकूलित करने का अधिकार है।
वर्कलोड के विविध सेट (स्थिर, बाधित करने योग्य, dev/test) के लिए कंप्यूट लागतों का अनुकूलन करें।
→वर्कलोड को मूल्य निर्धारण मॉडल से मिलाएं। स्थिर, 24/7 वर्कलोड के लिए Committed Use Discounts (CUDs) का उपयोग करें। दोष-सहिष्णु, बाधित करने योग्य नौकरियों (जैसे, बैच प्रोसेसिंग) के लिए Spot VMs का उपयोग करें। व्यावसायिक घंटों के बाहर बंद होने के लिए dev/test वातावरण को शेड्यूल करें।
क्यों: कंप्यूट मूल्य निर्धारण के लिए एक आकार-सभी फिट दृष्टिकोण अक्षम है। कार्य के लिए सही उपकरण का उपयोग करने से प्रदर्शन को प्रभावित किए बिना महत्वपूर्ण बचत (>70%) हो सकती है।
यह सुनिश्चित करके GKE लागतों और प्रदर्शन का अनुकूलन करें कि पॉड्स CPU और मेमोरी की उचित मात्रा का अनुरोध कर रहे हैं।
→Vertical Pod Autoscaler (VPA) को `recommendation` मोड में डिप्लॉय करें। पॉड संसाधन `requests` को समायोजित करने के लिए इसके सुझावों का विश्लेषण करें। एक बार आश्वस्त होने पर, निरंतर राइट-साइज़िंग के लिए `auto` मोड पर स्विच करें।
क्यों: पॉड्स का अधिक प्रावधान पैसे बर्बाद करता है, जबकि कम प्रावधान प्रदर्शन समस्याओं (थ्रॉटलिंग, OOMKilled) का कारण बनता है। VPA वास्तविक उपयोग डेटा का उपयोग सटीक साइजिंग अनुशंसाएं करने के लिए करता है, जिससे दक्षता और स्थिरता दोनों में सुधार होता है।
Cloud Run सेवा के लिए कोल्ड स्टार्ट के कारण होने वाली विलंबता को कम करें।
→कई इंस्टेंस को गर्म रखने के लिए एक `min-instances` मान कॉन्फ़िगर करें। इसके अतिरिक्त, कंटेनर छवि (छोटी आधार छवि, कम परतें) और एप्लिकेशन स्टार्टअप कोड (आलसी आरंभीकरण) का अनुकूलन करें।
क्यों: `min-instances` कोल्ड स्टार्ट को कम करने का सबसे सीधा तरीका है, लेकिन इसकी एक लागत है। इसे कंटेनर और कोड अनुकूलन के साथ संयोजित करने से प्रदर्शन और लागत के लिए एक संतुलित दृष्टिकोण मिलता है।
चर क्वेरी पैटर्न के साथ एक बड़े पैमाने पर BigQuery एनालिटिक्स वर्कलोड के लिए लागतों का अनुकूलन करें।
→ऑन-डिमांड मूल्य निर्धारण से BigQuery Editions (स्लॉट) पर स्विच करें। अनुमानित लोड के लिए एक बेसलाइन स्लॉट प्रतिबद्धता खरीदें और पीक के लिए autoscaling सक्षम करें। इसके अतिरिक्त, विभाजन/क्लस्टर्ड तालिकाओं का उपयोग करके और `SELECT *` से बचकर प्रश्नों का अनुकूलन करें।
क्यों: सुसंगत वर्कलोड के लिए, स्लॉट-आधारित मूल्य निर्धारण ऑन-डिमांड की तुलना में अधिक लागत प्रभावी है। autoscaling लागतों को नियंत्रित करते हुए बर्स्ट के लिए लचीलापन प्रदान करता है। क्वेरी और तालिका अनुकूलन संसाधित डेटा की मात्रा को कम करता है, जिससे सीधे लागत कम होती है।
विश्व स्तर पर वितरित एप्लिकेशन के लिए उच्च नेटवर्क निकास लागतों को कम करें।
→उपयोगकर्ताओं के करीब, एज पर स्थिर सामग्री को कैश करने के लिए Cloud CDN का उपयोग करें। गतिशील ट्रैफिक के लिए, उपयुक्त Network Service Tier (प्रदर्शन के लिए Premium, लागत-बचत के लिए Standard) चुनें। क्रॉस-रीजन ट्रैफिक को कम करने के लिए डेटा को क्षेत्रीय रूप से संसाधित करें।
क्यों: Egress एक प्रमुख लागत चालक है। CDN मूल से ट्रैफिक को ऑफलोड करता है, सीधे Egress को कम करता है। नेटवर्क टियर और क्षेत्रीय डेटा प्रोसेसिंग का विचारशील उपयोग लागतों को काफी कम कर सकता है।