1. शुरू करने से पहले
Google एक बेहतर इमेज बिल्ड टूल उपलब्ध कराता है, जिससे आप Docker या Dockerfile के बिना, Java ऐप्लिकेशन के लिए ऑप्टिमाइज़ की गई Docker कंटेनर इमेज आसानी से बना और प्रकाशित कर सकते हैं. Google Cloud, Cloud Run की मदद से कंटेनर के लिए बिना सर्वर वाली सेवाएं भी उपलब्ध कराता है. Cloud Run एक ऐसा मैनेज किया गया कंप्यूट प्लैटफ़ॉर्म है जो आपके स्टेटलेस कंटेनर को अपने-आप स्केल करता है. इस कोडलैब में आपको दिखेगा कि अपने Spring बूट Kotlin ऐप्लिकेशन को कंटेनर बनाना, कंटेनर रजिस्ट्री में पब्लिश करना, और Google Cloud पर इमेज को आसान तरीके से चलाना कितना आसान है!
यह कोडलैब आपको Kotlin में एक आसान ऐप्लिकेशन सेट अप करने का तरीका बताता है, जिसमें Google Cloud की सेवाओं और टूल का इस्तेमाल करना दिखाया जाता है. इनमें Jib, Container Registry, और Cloud Run शामिल हैं.
ज़रूरी शर्तें
- Java प्रोग्रामिंग भाषा और टूल की जानकारी
- Linux के स्टैंडर्ड टेक्स्ट एडिटर की जानकारी, जैसे कि Vim, Emacs, और नैनो
आपको क्या करना होगा
- Spring बूट Kotlin ऐप्लिकेशन सेट अप करें.
- ऑप्टिमाइज़ की गई Docker इमेज बनाएं.
- इमेज को कंटेनर रजिस्ट्री में पब्लिश करें.
- Cloud Run पर कंटेनर वाला ऐप्लिकेशन चलाएं.
आपको इनकी ज़रूरत होगी
- Google Cloud प्रोजेक्ट
- Google Chrome जैसा ब्राउज़र
2. सेट अप किया जा रहा है
अपने हिसाब से एनवायरमेंट सेटअप करना
- Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको नया खाता बनाना होगा.
प्रोजेक्ट आईडी याद रखें. यह Google Cloud के सभी प्रोजेक्ट के लिए एक खास नाम होता है (ऊपर दिया गया नाम पहले ही ले लिया गया है और यह आपके लिए काम नहीं करेगा!). बाद में, इस कोडलैब को इस कोडलैब में PROJECT_ID
के तौर पर दिखाया जाएगा.
- इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी.
इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. "साफ़ करना" सेक्शन में दिए गए निर्देशों का पालन करना न भूलें सेक्शन में, संसाधनों को बंद करने का तरीका बताया गया है. इससे इस ट्यूटोरियल के अलावा बिलिंग की सुविधा नहीं मिलेगी. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.
क्लाउड शेल
Google Cloud को आपके लैपटॉप से, कहीं से भी ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Cloud Shell का इस्तेमाल किया जा रहा है. यह Google Cloud की कमांड-लाइन सुविधा है.
Cloud Shell चालू करें
- Cloud Console में, Cloud Shell चालू करें पर क्लिक करें.
अगर आपने Cloud Shell का इस्तेमाल पहले कभी नहीं किया है, तो आपको इसके बारे में जानकारी देने वाली एक इंटरमीडिएट स्क्रीन (पेज के फ़ोल्ड के नीचे) दिखेगी. अगर ऐसा है, तो जारी रखें पर क्लिक करें (यह आपको फिर कभी नहीं दिखेगा). एक बार इस्तेमाल होने वाली स्क्रीन कुछ इस तरह दिखती है:
प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.
इस वर्चुअल मशीन में ऐसे सभी डेवलपमेंट टूल मौजूद हैं जिनकी आपको ज़रूरत है. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और Google Cloud में चलता है. यह नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस को बेहतर बनाता है. अगर सभी नहीं, तो इस कोडलैब में आपका बहुत सारा काम बस किसी ब्राउज़र या आपके Chromebook से किया जा सकता है.
Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि पहले ही हो चुकी है. साथ ही, यह प्रोजेक्ट पहले से ही आपके प्रोजेक्ट आईडी पर सेट है.
- यह पुष्टि करने के लिए Cloud Shell में नीचे दिया गया कमांड चलाएं कि आपकी पुष्टि हो गई है:
gcloud auth list
कमांड आउटपुट
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Cloud Shell में यह कमांड चलाएं, ताकि यह पुष्टि की जा सके कि gcloud के लिए कमांड को आपके प्रोजेक्ट के बारे में जानकारी है:
gcloud config list project
कमांड आउटपुट
[core] project = <PROJECT_ID>
अगर ऐसा नहीं है, तो आप इसे इस निर्देश की मदद से सेट कर सकते हैं:
gcloud config set project <PROJECT_ID>
कमांड आउटपुट
Updated property [core/project].
3. Spring बूट ऐप्लिकेशन शुरू करना
- Spring Initializr से नया Spring बूट ऐप्लिकेशन जनरेट करें.
$ curl https://start.spring.io/starter.tgz \ -d language=kotlin \ -d dependencies=web \ -d baseDir=kotlin-jib-cloud-run | tar -xzvf -
ध्यान दें कि टेंप्लेट ऐप्लिकेशन के pom.xml
में शुरू करने पर, spring-boot-starter-web
को आपकी डिपेंडेंसी में अपने-आप जोड़ दिया जाता है.
- टेंप्लेट ऐप्लिकेशन की डायरेक्ट्री में बदलें.
$ cd kotlin-jib-cloud-run
- Maven का इस्तेमाल करके ऐप्लिकेशन बनाएं और चलाएं.
$ ./mvnw -DskipTests spring-boot:run
- शुरू होने के बाद, ऐप्लिकेशन पोर्ट 8080 पर सुनना शुरू कर देगा. क्लाउड शेल टूलबार में वेब झलक पर क्लिक करें और ऐप्लिकेशन ऐक्सेस करने के लिए पोर्ट 8080 पर झलक देखें को चुनें.
- आपको 404 कोड वाला मैसेज वापस मिलना चाहिए, क्योंकि ऐप्लिकेशन ने अभी तक कुछ भी काम का नहीं किया है.
Control+C
का इस्तेमाल करके ऐप्लिकेशन बंद करें.
4. वेब कंट्रोलर जोड़ना
- डेमो पैकेज में यह
Controller
क्लास बनाएं:
$ vi src/main/kotlin/com/example/demo/Controller.kt or $ nano src/main/kotlin/com/example/demo/Controller.kt
src/main/kotlin/com/example/demo/Controller.kt
package com.example.demo
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
@RestController
class Controller {
@GetMapping("/")
fun saySomething(): String {
return "Kotlin app on Cloud Run, containerized by Jib!"
}
}
- ऐप्लिकेशन फिर से बनाएं और चलाएं.
$ ./mvnw spring-boot:run
- वेब झलक का इस्तेमाल करके ऐप्लिकेशन को फिर से देखें. इस बार, आपको "
Kotlin app on Cloud Run, containerized by Jib!
" मैसेज दिखेगा.Control+C
का इस्तेमाल करके ऐप्लिकेशन बंद करें.
5. अपने ऐप्लिकेशन को कंटेनर में बदलें और Container Registry में पब्लिश करें
Jib की मदद से, अपने ऐप्लिकेशन को Docker के बिना ऑप्टिमाइज़ किया जा सकता है. साथ ही, उसे किसी भी कंटेनर रजिस्ट्री में पब्लिश किया जा सकता है.
- आगे बढ़ने से पहले, आपको Container Registry API को चालू करना होगा. एपीआई को ऐक्सेस करने के लिए, हर प्रोजेक्ट में सिर्फ़ एक बार ऐसा करना होगा.
$ gcloud services enable containerregistry.googleapis.com
- Docker इमेज बनाने और Container Registry में पब्लिश करने के लिए, Jib चलाएं.
$ ./mvnw com.google.cloud.tools:jib-maven-plugin:3.1.1:build \ -Dimage=gcr.io/$GOOGLE_CLOUD_PROJECT/kotlin-jib-cloud-run
आखिर में, आपको यह मैसेज दिखेगा कि ऐप्लिकेशन को कंटेनर बनाया गया है और उसे आपकी कंटेनर रजिस्ट्री में पुश किया गया है.
[INFO] Built and pushed image as gcr.io/PROJECT_ID/kotlin-jib-cloud-run ... [INFO] BUILD SUCCESS
अगर आपको कोई गड़बड़ी दिखती है, तो दोबारा जांच लें कि $GOOGLE_CLOUD_PROJECT
आपके Google Cloud प्रोजेक्ट आईडी (PROJECT_ID
) पर सही तरीके से सेट है या नहीं.
- आगे बढ़ने से पहले, देख लें कि इमेज पब्लिश हो गई है या नहीं. Cloud Console पर वापस जाएं, नेविगेशन मेन्यू पर क्लिक करें, और कंटेनर रजिस्ट्री चुनें.
आपको दिखेगा कि आपकी इमेज पब्लिश हो गई है.
6. Cloud Run पर कंटेनर वाला ऐप्लिकेशन चलाएं
Cloud Run आपके स्टेटलेस कंटेनर को अपने-आप स्केल करते हुए, कंटेनर पर बिना सर्वर वाला इवेंट लाता है.
- नेविगेशन मेन्यू पर फिर से क्लिक करें और Cloud Run चुनें.
यदि आप पहली बार Cloud Run को एक्सेस कर रहे हैं, तो आपको एक बार के सेटअप के लिए निम्न संवाद दिखाई देगा. अगर Cloud Run इस्तेमाल करना शुरू करें दिखता है, तो उस पर क्लिक करें.
- Cloud Run पेज पर, सेवा बनाएं पर क्लिक करें.
- अगली स्क्रीन में, सोर्स में जाकर चुनें पर क्लिक करें. सोर्स वह इमेज होती है जिसे आपको Cloud Run पर चलाना है.
- डायलॉग बॉक्स में वह इमेज दिखेगी जो आपने पहले बनाई थी. इमेज चुनें और जारी रखें पर क्लिक करें.
- ऐप्लिकेशन को डिप्लॉय करने से, बस कुछ ही क्लिक दूर हैं. डिप्लॉयमेंट प्लैटफ़ॉर्म में जाकर, Google Cloud पर सेवा को पूरी तरह से मैनेज करने के लिए, Cloud Run (पूरी तरह से मैनेज किया गया) चुनें. अपनी जगह के हिसाब से क्षेत्र चुनें. इसके बाद, पुष्टि नहीं किए गए अनुरोधों को अनुमति दें चुनें और बनाएं पर क्लिक करें. हो गया!
इमेज के पूरी तरह डिप्लॉय होने के बाद, Cloud Run पेज पर ऐप्लिकेशन को ऐक्सेस करने के लिए यूआरएल दिखेगा. इसे आज़माएं!
आखिर में, आपको ऐप्लिकेशन से जुड़ा मैसेज दिखेगा.
Kotlin app on Cloud Run, containerized by Jib!
हो गया! आने वाले समय में, अगर आपको ऐप्लिकेशन के नए वर्शन डिप्लॉय करने की ज़रूरत पड़ती है, तो आप पेज पर मौजूद नया संशोधन डिप्लॉय करें पर क्लिक करके ऐसा कर सकते हैं.
7. व्यवस्थित करें
- अपने एनवायरमेंट को साफ़ करने के लिए, आपको Cloud Run पर डिप्लॉय किए गए ऐप्लिकेशन और Container Registry पर पब्लिश की गई इमेज को मिटाना होगा. Cloud Run पर जाएं, ऐप्लिकेशन चुनें और मिटाएं पर क्लिक करें.
- इसी तरह, कंटेनर रजिस्ट्री पेज पर जाकर, इमेज को मिटाएं.
8. बधाई हो
बधाई हो! आपने अपने Spring बूट Kotlin ऐप्लिकेशन को सफलतापूर्वक कंटेनर बना लिया है और उसे Cloud Run पर डिप्लॉय कर दिया है!
Jib का इस्तेमाल करके, आपने Docker इंस्टॉल किए बिना या Dockerfile लिखे बिना, एक ऑप्टिमाइज़ की गई कंटेनर इमेज बनाई और उसे कंटेनर रजिस्ट्री में पब्लिश किया. Jib ने इमेज बनाने की सुविधा को ऑप्टिमाइज़ किया है, ताकि जिस व्यक्ति को भी Docker की जानकारी नहीं है वह Java ऐप्लिकेशन को तेज़ी और बेहतर तरीके से कंटेनर बना सके. इसके बाद, कुछ ही क्लिक में आपने अपने ऐप्लिकेशन को Cloud Run पर डिप्लॉय कर लिया, ताकि आप तुरंत विज्ञापन दिखाना शुरू कर सकें.
ज़्यादा जानें
- Google Kubernetes Engine पर, Kubernetes में Java ऐप्लिकेशन डिप्लॉय करना
- Cloud Run दस्तावेज़
- Cloud Run की खास जानकारी
- पेश है Jib—Java Docker इमेज को बेहतर तरीके से बनाएं
- Jet की मदद से तेज़ी से कंटेनर बनाएं. यह Java ऐप्लिकेशन के लिए, Google का इमेज बिल्ड टूल है
- Jib—अपने Java ऐप्लिकेशन को कंटेनर बनाना
- Jib Gitter चैनल
- Jib उपयोगकर्ताओं के ईमेल पतों की सूची