App Engine मानक वातावरण पर Spring बूट ऐप्लिकेशन को परिनियोजित करें

आप अपने ट्रैफ़िक और डेटा स्टोरेज की ज़रूरतों में बदलाव होने के साथ ही, App Engine ऐप्लिकेशन आसानी से बना सकते हैं, उनका रखरखाव आसानी से कर सकते हैं, और इन्हें आसानी से बढ़ाया जा सकता है. App Engine के साथ, रखरखाव के लिए कोई सर्वर नहीं है. आप सिर्फ़ अपना ऐप्लिकेशन अपलोड करते हैं और यह #39 साल के लिए तैयार है.

आने वाले ट्रैफ़िक के आधार पर, App Engine ऐप्लिकेशन अपने-आप स्केल हो जाते हैं. लोड बैलेंसिंग, माइक्रोसेवाएं, अनुमति देने वाले, SQL और NoSQL डेटाबेस, मेमोरी कैशिंग, ट्रैफ़िक विभाजन, लॉगिंग, खोज, वर्शनिंग, रोल आउट और रोलबैक, और सुरक्षा स्कैनिंग सभी मूल रूप से समर्थित हैं और इन्हें पूरी तरह से पसंद के मुताबिक बनाया जा सकता है.

App Engine का स्टैंडर्ड एनवायरमेंट और App Engine सुविधाजनक एनवायरमेंट में कई प्रोग्रामिंग भाषाओं के साथ काम करता है. इनमें Java, Python, PHP, NodeJS, और Go शामिल हैं. इन दोनों एनवायरमेंट में, डेवलपर को उनके ऐप्लिकेशन के काम करने के तरीके को लेकर ज़्यादा सुविधा मिलती है. हर वातावरण की कुछ खास अहमियत होती हैं. ज़्यादा जानकारी के लिए, App Engine का एनवायरमेंट चुनना देखें.

आप #39; Spring बूट ऐप्लिकेशन को App Engine के स्टैंडर्ड एनवायरमेंट में डिप्लॉय करना सीखेंगे. जब कोई भी डिवाइस का इस्तेमाल नहीं करता और वह अपने-आप स्केल हो जाता है, तो स्टैंडर्ड एनवायरमेंट में उसे ज़ीरो इंस्टेंस तक सीमित कर दिया जाता है!

ज़रूरी शर्तें

  • Java प्रोग्रामिंग लैंग्वेज और टूल के बारे में जानें
  • Vim, Emacs, और नैनो जैसे मानक Linux टेक्स्ट एडिटर की जानकारी

आप क्या कर सकते हैं

  • App Engine पर Spring बूट Java ऐप्लिकेशन बनाने का तरीका

आपको क्या चाहिए

  • Google Cloud का कोई प्रोजेक्ट
  • ब्राउज़र, जैसे कि Google Chrome

अपनी सुविधा के हिसाब से एनवायरमेंट सेट अप करना

  1. Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से ही Gmail या G Suite खाता नहीं है, तो आपको एक खाता बनाना होगा.)

प्रोजेक्ट आईडी याद रखें, सभी Google क्लाउड प्रोजेक्ट में दिया गया नाम (ऊपर दिया गया नाम पहले ही लिया जा चुका है और यह आपके लिए काम नहीं करेगा!). इसे बाद में इस कोडलैब (कोड बनाना सीखना) में PROJECT_ID के तौर पर बताया जाएगा.

  1. इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग को चालू करना होगा.

इस कोडलैब के जवाब में आपको कुछ डॉलर से ज़्यादा खर्च नहीं करना चाहिए. हालांकि, अगर आप और संसाधनों का इस्तेमाल करना चाहते हैं या उन्हें छोड़ देना चाहते हैं, तो यह तरीका ज़्यादा हो सकता है.

Google Cloud के नए उपयोगकर्ता, 300 डॉलर का मुफ़्त ट्रायल पा सकते हैं.

क्लाउड शेल

आप #Cloud Shell का इस्तेमाल करेंगे. यह Google Cloud में काम करने वाले कमांड लाइन एनवायरमेंट है.

Cloud Shell चालू करें

  1. Cloud Console में, Cloud Shell चालू करें पर क्लिक करें.

अगर आपने &#39 को पहले कभी भी Cloud Shell शुरू नहीं किया है, तो आपको # स्क्रीन के बीच में (पेज के नीचे) जानकारी दी जाएगी कि यह क्या है. अगर ऐसा है तो जारी रखें पर क्लिक करें (और आप इसे कभी भी दोबारा नहीं देख पाएंगे). यहां बताया गया है कि एक बार की स्क्रीन कैसी दिखती है:

प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.

इस वर्चुअल मशीन में डेवलपमेंट से जुड़े सभी टूल हैं#39. इसमें 5 जीबी की होम डायरेक्ट्री दी जाती है और यह Google Cloud में चलती है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती जाती है. अगर कोडलैब में इस काम से जुड़ी सारी जानकारी आपके किसी भी काम के लिए नहीं है, तो सिर्फ़ किसी ब्राउज़र या Chromebook की मदद से ऐसा किया जा सकता है.

Cloud Shell से कनेक्ट होने के बाद, आपको दिखेगा कि आप पहले ही पुष्टि कर चुके हैं और प्रोजेक्ट पहले से ही आपके प्रोजेक्ट आईडी पर सेट है.

  1. पुष्टि करने के लिए, 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`
gcloud config list project

कमांड आउटपुट

[core]
project = <PROJECT_ID>

अगर ऐसा नहीं है, तो आप इस निर्देश से इसे सेट कर सकते हैं:

gcloud config set project <PROJECT_ID>

कमांड आउटपुट

Updated property [core/project].

Cloud Shell लॉन्च होने के बाद, कमांड लाइन का इस्तेमाल करके, Spring Initializer के साथ नया Spring बूट ऐप्लिकेशन जनरेट किया जा सकता है.

$ curl https://start.spring.io/starter.tgz \
  -d bootVersion=2.1.8.RELEASE \
  -d dependencies=web \
  -d baseDir=gae-standard-example | tar -xzvf -
$ cd gae-standard-example

Java सर्वर ऐप्लिकेशन को डिप्लॉय करने के दो तरीके हैं—Maven App Engine प्लग इन या Gradle App Engine प्लग इन का इस्तेमाल करके या war पैकेज डायरेक्ट्री डिप्लॉय करके. आप ऐप्लिकेशन को डिप्लॉय करने के लिए Maven App Engine प्लग इन का इस्तेमाल करेंगे.

Maven App Engine प्लग इन जोड़ें

Google Cloud प्लग इन शामिल करने के लिए, pom.xml को अपडेट करें. इससे, डिप्लॉयमेंट की प्रोसेस आसान हो जाएगी. फ़ाइल में बदलाव करने के लिए आप Vim, nano या Emacs का इस्तेमाल कर सकते हैं.

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
  ...
  <build>
    <plugins>
      ...
      <plugin>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>appengine-maven-plugin</artifactId>
        <version>2.1.0</version>
        <configuration>
          <version>1</version>
          <projectId>GCLOUD_CONFIG</projectId>
        </configuration>
      </plugin>
      ...
    </plugins>
  </build>
</project>
  1. ऐप्लिकेशन को App Engine मानक वातावरण पर परिनियोजित करने के लिए, आपको नई src/main/appengine/app.yaml वर्णनकर्ता फ़ाइल बनानी होगी.
$ mkdir -p src/main/appengine/
$ touch src/main/appengine/app.yaml
  1. src/main/appengine/app.yaml फ़ाइल में बदलाव करें और यह कॉन्टेंट जोड़ें:

src/main/app Engine/app.yaml

runtime: java11
instance_class: F4

एक नया कंट्रोलर जोड़ें जो DemoApplication.java में "hello world!" दिखाता हो.

src/main/java/com/example/demo/DemoApplication.java

package com.example.demo;

...

// Add imports
import org.springframework.web.bind.annotation.*;

@SpringBootApplication
@RestController
public class DemoApplication {
  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }

  @GetMapping("/")
  public String hello() {
    return "hello world!";
  }
}
  1. आप Spring बूट प्लग इन के साथ Spring बूट ऐप्लिकेशन शुरू कर सकते हैं:
$ ./mvnw -DskipTests spring-boot:run
  1. ऐप्लिकेशन शुरू होने के बाद, Cloud Shell टूलबार में वेब की झलक पर क्लिक करें और पोर्ट 8080 पर झलक देखें.

आपके ब्राउज़र में एक टैब खुलता है और उस सर्वर से कनेक्ट होता है जिसे आपने शुरू किया है.

  1. पहले, App Engine ऐप्लिकेशन चलाने के लिए प्रोजेक्ट शुरू करें. साथ ही, प्रोजेक्ट को अमेरिका के मुख्य इलाके में चलाने के लिए, उसे शुरू करें.
$ gcloud app create --region us-central
You are creating an app for project [...].
WARNING: Creating an App Engine application for a project is irreversible and the region
cannot be changed. More information about regions is at
https://cloud.google.com/appengine/docs/locations
  1. इसके बाद, mvn appengine:deploy को चलाकर अपना ऐप्लिकेशन, App Engine स्टैंडर्ड एनवायरमेंट में डिप्लॉय करें.
$ ./mvnw -DskipTests package appengine:deploy
... first time deploy may take a couple of minutes
  1. ऐप्लिकेशन को डिप्लॉय किए जाने के बाद, आप अपने वेब ब्राउज़र में http://<project-id>.appspot.com खोलकर या इस पेज पर Cloud Shell में नीचे दिए गए निर्देश से जा सकते हैं:
$ gcloud app browse
... [It may print out the URL for your app]

आपने अपना पहला App Engine वेब ऐप्लिकेशन लिखा है!

ज़्यादा जानें