1. मकसद
इस लैब में, आपको ये काम करने का तरीका बताया जाएगा:
- Cloud Code प्लगिन एक्सप्लोर करना
- Kubernetes क्लस्टर पर डिप्लॉय करना
- Kubernetes के लॉग स्ट्रीम करना
- बदलावों को तुरंत लोड करने की सुविधा का इस्तेमाल करना
- लाइव Kubernetes ऐप्लिकेशन डीबग करना
2. अपने वर्कस्पेस को तैयार करना
ऐप्लिकेशन क्लोन करना
रिपॉज़िटरी क्लोन करने और उसे अपने डेवलपमेंट एनवायरमेंट में खोलने के लिए:
- यह यूआरएल खोलकर, Cloud Shell एडिटर खोलें
https://ide.cloud.google.com
- टर्मिनल विंडो में, यह कमांड डालकर ऐप्लिकेशन का सोर्स क्लोन करें:
git clone https://github.com/viglesiasce/sample-app.git -b golden-path
- डायरेक्ट्री में बदलाव करें और IDE वर्कस्पेस को रिपो रूट पर सेट करें
cd sample-app && cloudshell workspace .
Minikube शुरू करना
इस सेक्शन में, आपको kubernetes के लोकल वर्शन, Minikube का इस्तेमाल करके अपना ऐप्लिकेशन बनाना, उसकी जांच करना, उसे डिप्लॉय करना, और उसे ऐक्सेस करना सिखाया जाएगा.
- टर्मिनल में, यह कमांड डालकर minikube शुरू करें:
minikube start
Minikube, आपके Cloud Shell में लोकल Kubernetes क्लस्टर सेट अप करता है. इस सेटअप में कुछ मिनट लगेंगे. सेटअप शुरू होने के दौरान, अगले चरण में Cloud Code में दिए गए अलग-अलग इंटरफ़ेस देखें.
3. Cloud Code प्लगिन एक्सप्लोर करना
Cloud Code, Kubernetes और Cloud Run ऐप्लिकेशन के पूरे डेवलपमेंट साइकल के लिए IDE की सुविधा देता है. इसमें, मौजूदा टेंप्लेट से ऐप्लिकेशन बनाने से लेकर, डिप्लॉय किए गए ऐप्लिकेशन के संसाधनों की निगरानी करने तक की सुविधा शामिल है. इसमें, Cloud Code की ओर से दिए गए अलग-अलग कमांड और व्यू का इस्तेमाल किया जाएगा. इस चरण में, आपको बुनियादी इंटरफ़ेस के बारे में बताया जाएगा.
ऐक्टिविटी बार से एक्सप्लोरर व्यू देखना
ऐक्टिविटी बार से, यूज़र इंटरफ़ेस के कई पैनल ऐक्सेस किए जा सकते हैं. अलग-अलग व्यू के बारे में जानने के लिए, हर व्यू के आइकॉन पर क्लिक करें
एपीआई एक्सप्लोरर:
- ऐक्टिविटी बार में, Cloud Code - Cloud APIs आइकॉन Cloud Code  पर क्लिक करें. इस व्यू में काम करने के बारे में ज़्यादा जानकारी, दस्तावेज़ में उपलब्ध है.

Secret Manager एक्सप्लोरर:
- ऐक्टिविटी बार में, Secret Manager व्यू  पर क्लिक करें. इस व्यू में काम करने के बारे में ज़्यादा जानकारी, दस्तावेज़ में उपलब्ध है

Cloud Run एक्सप्लोरर:
- बाईं ओर मौजूद ऐक्टिविटी बार में, Cloud Run आइकॉन  का इस्तेमाल करके Cloud Run एक्सप्लोरर पर जाएं. इस व्यू में काम करने के बारे में ज़्यादा जानकारी, दस्तावेज़ में उपलब्ध है

Kubernetes एक्सप्लोरर:
- बाईं ओर मौजूद ऐक्टिविटी बार में, आइकॉन  का इस्तेमाल करके Kubernetes एक्सप्लोरर पर जाएं. इस व्यू में काम करने के बारे में ज़्यादा जानकारी, दस्तावेज़ में उपलब्ध है

स्टेटस बार के कमांड देखना
स्टेटस बार में मौजूद इंडिकेटर की मदद से, अक्सर इस्तेमाल किए जाने वाले कमांड को तुरंत ऐक्सेस किया जा सकता है.
- स्टेटस बार में, Cloud Code एक्सटेंशन इंडिकेटर
 ढूंढें और उस पर क्लिक करें. - CloudRun और Kubernetes पर डीबग करने और चलाने के लिए उपलब्ध अलग-अलग कमांड देखें
- ज़्यादा जानकारी और सैंपल ऐक्टिविटी के लिए, वेलकम पेज खोलें पर क्लिक करें
कमांड पैलेट के कमांड देखना
कमांड पैलेट से अन्य कमांड भी उपलब्ध हैं. उन कमांड की सूची देखें जिन्हें ऐक्सेस किया जा सकता है.
- कमांड पैलेट खोलें (Ctrl/Cmd+Shift+P दबाएं) और फिर उपलब्ध कमांड को फ़िल्टर करने के लिए, Cloud Code टाइप करें.
- कमांड की सूची में एक से दूसरी जगह जाने के लिए, ऐरो बटन का इस्तेमाल करें.
4. Kubernetes क्लस्टर पर डिप्लॉय करना
इस सेक्शन में, आपको अपना ऐप्लिकेशन बनाना, उसकी जांच करना, उसे डिप्लॉय करना, और उसे ऐक्सेस करना सिखाया जाएगा.
नीचे दिए गए चरणों से, सोर्स कोड का बिल्ड शुरू होता है. इसके बाद, टेस्ट चलाए जाते हैं. बिल्ड और टेस्ट को चलाने में कुछ मिनट लगेंगे. इन टेस्ट में, यूनिट टेस्ट और एक वैलिडेशन चरण शामिल होता है. इसमें, डिप्लॉयमेंट एनवायरमेंट के लिए सेट किए गए नियमों की जांच की जाती है. यह वैलिडेशन चरण पहले से ही कॉन्फ़िगर किया गया है. इससे यह पक्का होता है कि आपको डेवलपमेंट एनवायरमेंट में काम करते समय भी, डिप्लॉयमेंट से जुड़ी समस्याओं की चेतावनी मिले.
- Cloud Shell एडिटर में सबसे नीचे मौजूद पैनल में, Cloud Code 
को चुनें. - सबसे ऊपर दिखने वाले पैनल में, Kubernetes पर चलाएं को चुनें. अगर कहा जाए, तो minikube Kubernetes कॉन्टेक्स्ट का इस्तेमाल करने के लिए, हां को चुनें.
- प्रोग्रेस और सूचनाएं देखने के लिए, नीचे मौजूद पैनल में आउटपुट टैब
को चुनें - कंटेनर से लाइव स्ट्रीम हो रहे लॉग और ज़्यादा जानकारी देखने के लिए, दाईं ओर मौजूद चैनल के ड्रॉप-डाउन में "Kubernetes: चलाएं/डीबग करें - ज़्यादा जानकारी" को चुनें

बिल्ड और टेस्ट पूरे होने पर, आउटपुट टैब में यह दिखेगा: Resource deployment/sample-app-dev status completed successfully. साथ ही, इसमें दो यूआरएल दिखेंगे.
- Cloud Code टर्मिनल में, आउटपुट में मौजूद पहले यूआरएल (http://localhost:8080) पर कर्सर घुमाएं. इसके बाद, दिखने वाले टूलटिप में, वेब की झलक खोलें को चुनें.
आपके ब्राउज़र में, ऐप्लिकेशन का लोकल वर्शन खुलेगा. ऐप्लिकेशन का यह वर्शन, minikube के Kubernetes क्लस्टर में चल रहा है.
- अपने ब्राउज़र में, पेज को रीफ़्रेश करें. काउंटर के बगल में मौजूद नंबर बढ़ जाता है. इससे पता चलता है कि ऐप्लिकेशन, आपके रीफ़्रेश करने पर प्रतिक्रिया दे रहा है.
अपने ब्राउज़र में, इस पेज को खुला रखें, ताकि लोकल एनवायरमेंट में कोई भी बदलाव करने पर, आपको ऐप्लिकेशन दिख सके.
5. बदलावों को तुरंत लोड करने की सुविधा का इस्तेमाल करना
इस सेक्शन में, आपको ऐप्लिकेशन में बदलाव करने और लोकल Kubernetes क्लस्टर में ऐप्लिकेशन चलने के दौरान, बदलाव देखने का तरीका बताया जाएगा. Kubernetes: चलाएं/डीबग करें चैनल के आउटपुट टैब में, ऐप्लिकेशन के यूआरएल के अलावा, Watching for changes. भी दिखता है. इसका मतलब है कि वॉच मोड चालू है. Cloud Code के वॉच मोड में होने पर, Cloud Code आपकी रिपो में सेव किए गए किसी भी बदलाव का पता लगा लेगा. साथ ही, यह ऐप्लिकेशन को नए बदलावों के साथ अपने-आप फिर से बनाएगा और डिप्लॉय करेगा.
- Cloud Shell एडिटर में, main.go फ़ाइल पर जाएं.
- main.go फ़ाइल में, लाइन 23 में, रंग को हरे से बदलकर नीला करें.
- फ़ाइल सेव करें.
Cloud Code को पता चलता है कि ऐप्लिकेशन में किया गया बदलाव सेव हो गया है. इसके बाद, यह बदलाव को अपने-आप फिर से डिप्लॉय कर देता है. आउटपुट टैब में, अपडेट शुरू किया गया दिखेगा. इस रीडिप्लॉयमेंट में कुछ मिनट लगेंगे.
यह ऑटोमैटिक रीबिल्ड, हॉट कोड रिलोडिंग की तरह है. यह सुविधा, कुछ तरह के ऐप्लिकेशन और फ़्रेमवर्क के लिए उपलब्ध है.
- बिल्ड पूरा होने के बाद, अपने ब्राउज़र पर जाएं. यहां ऐप्लिकेशन खुला होगा. इसके बाद, पेज को रीफ़्रेश करें.
रीफ़्रेश करने पर, टेबल में सबसे ऊपर मौजूद रंग, नीले से बदलकर हरा हो जाता है.
इस सेटअप से, आपको किसी भी आर्किटेक्चर और कॉम्पोनेंट के लिए, ऑटोमैटिक रिलोडिंग की सुविधा मिलती है. Cloud Code और minikube का इस्तेमाल करते समय, Kubernetes में चलने वाली किसी भी चीज़ में, हॉट कोड रिलोडिंग की सुविधा होती है.
6. लाइव Kubernetes ऐप्लिकेशन डीबग करना
आपने ऐप्लिकेशन चलाया है, उसमें बदलाव किया है, और चल रहे ऐप्लिकेशन को देखा है. इस सेक्शन में, आपको ऐप्लिकेशन को डीबग करने का तरीका बताया जाएगा, ताकि यह पक्का किया जा सके कि यह मुख्य रिपो में वापस कमिट करने के लिए तैयार है.
डीबग करने के इस उदाहरण के लिए, हम पेज काउंटर के कोड के सेक्शन पर फ़ोकस करेंगे.
- Cloud Shell एडिटर में, main.go फ़ाइल खोलें
- ऐप्लिकेशन में ब्रेकपॉइंट सेट करने के लिए, लाइन 82 के बाईं ओर मौजूद नंबर पर क्लिक करें (if err != nil {)
- Cloud Shell एडिटर में सबसे नीचे मौजूद नीले पैनल में, Cloud Code
 को चुनें. - सबसे ऊपर दिखने वाले पैनल में, Kubernetes पर डीबग करें को चुनें.
Cloud Code, डीबगर को चलाता है और अटैच करता है, ताकि आपको ऐप्लिकेशन की इन-मेमोरी स्थिति का ऐक्सेस मिल सके. साथ ही, आपको ऐप्लिकेशन का सिर्फ़ उपयोगकर्ता के लिए दिखने वाला व्यवहार न दिखे.
- डिप्लॉयमेंट की प्रोसेस पूरी होने पर, आपकी विंडो में सबसे ऊपर एक प्रॉम्प्ट दिखेगा. इसमें, कंटेनर में मौजूद उस डायरेक्ट्री की पुष्टि करने के लिए कहा जाएगा जहां ऐप्लिकेशन डिप्लॉय किया गया है.

पक्का करें कि वैल्यू /go/src/app पर सेट हो. इसके बाद, वैल्यू स्वीकार करने के लिए, Enter दबाएं
- डीबगर के डिप्लॉय होने तक इंतज़ार करें. जब स्टेटस बार का रंग नारंगी हो जाएगा और आउटपुट में
"Attached debugger to container "sample-app-dev-..." successfullyदिखेगा, तब आपको पता चलेगा कि यह प्रोसेस पूरी हो गई है. - Cloud Code टर्मिनल में, आउटपुट में मौजूद पहले यूआरएल (http://localhost:8081) पर कर्सर घुमाएं. इसके बाद, दिखने वाले टूलटिप में, वेब की झलक खोलें को चुनें. पेज लोड नहीं होगा. ऐसा होना सामान्य है.
- उस IDE पर वापस जाएं जहां अब डीबगर दिख रहा है. टैब में कोड दिखेगा. साथ ही, आपको कॉल स्टैक दिखेगा. इससे आपको पता चलेगा कि कोड के उस हिस्से में कौनसे वैरिएबल उपलब्ध हैं. मौजूदा काउंटर वैरिएबल वैल्यू देखने के लिए, वैरिएबल - लोकल को बड़ा करें.
- पेज को लोड होने देने के लिए, डीबग करने वाली विंडो में "जारी रखें" आइकॉन
को चुनें - डीबग करने की प्रोसेस पूरी होने के बाद, चल रहे हर थ्रेड को खत्म करने के लिए, स्टॉप बटन पर क्लिक करें.
