1. আপনি শুরু করার আগে
অ্যাপ ইঞ্জিন অ্যাপ্লিকেশনগুলি তৈরি করা সহজ, রক্ষণাবেক্ষণ করা সহজ এবং আপনার ট্রাফিক এবং ডেটা সঞ্চয়স্থানের পরিবর্তনের প্রয়োজনে স্কেল করা সহজ। অ্যাপ ইঞ্জিনের সাথে, বজায় রাখার জন্য কোন সার্ভার নেই। আপনি কেবল আপনার অ্যাপ আপলোড করুন এবং এটি যেতে প্রস্তুত।
অ্যাপ ইঞ্জিন অ্যাপগুলি স্বয়ংক্রিয়ভাবে আগত ট্র্যাফিকের উপর ভিত্তি করে স্কেল করে। লোড ব্যালেন্সিং, মাইক্রোসার্ভিসেস, অনুমোদন, SQL এবং NoSQL ডাটাবেস, মেমরি ক্যাশিং, ট্রাফিক স্প্লিটিং, লগিং, সার্চ, ভার্সনিং, রোলআউটস এবং রোলব্যাকস এবং সিকিউরিটি স্ক্যানিং সবই স্থানীয়ভাবে সমর্থিত এবং অত্যন্ত কাস্টমাইজযোগ্য।
অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড এনভায়রনমেন্ট এবং অ্যাপ ইঞ্জিন নমনীয় পরিবেশ জাভা, পাইথন, পিএইচপি, নোডজেএস এবং গো সহ অনেকগুলি প্রোগ্রামিং ভাষা সমর্থন করে। দুটি পরিবেশ বিকাশকারীদের তাদের অ্যাপ কীভাবে আচরণ করে তার সাথে সর্বাধিক নমনীয়তা দেয়। প্রতিটি পরিবেশের কিছু শক্তি আছে। আরও তথ্যের জন্য, একটি অ্যাপ ইঞ্জিন পরিবেশ নির্বাচন করা দেখুন।
আপনি অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড পরিবেশে একটি স্প্রিং বুট অ্যাপ স্থাপন করতে শিখবেন। স্ট্যান্ডার্ড এনভায়রনমেন্ট শূন্যে নেমে আসে যখন কেউ এটি ব্যবহার করে না এবং স্বয়ংক্রিয়ভাবে বেড়ে যায়!
পূর্বশর্ত
- জাভা প্রোগ্রামিং ভাষা এবং সরঞ্জামগুলির সাথে পরিচিতি
- স্ট্যান্ডার্ড লিনাক্স টেক্সট এডিটর, যেমন Vim, Emacs এবং ন্যানো সম্পর্কে জ্ঞান
আপনি কি করবেন
- অ্যাপ ইঞ্জিনে কীভাবে একটি স্প্রিং বুট জাভা অ্যাপ তৈরি করবেন
আপনি কি প্রয়োজন হবে
- একটি Google ক্লাউড প্রকল্প
- একটি ব্রাউজার, যেমন Google Chrome
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
- প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত
PROJECT_ID
হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে। - আপনার তথ্যের জন্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ হবে না, যদি কিছু হয়। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে সংস্থানগুলি বন্ধ করতে, আপনি আপনার তৈরি করা সংস্থানগুলি মুছতে বা প্রকল্প মুছতে পারেন। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
মেঘের শেল
আপনি Cloud Shell ব্যবহার করবেন, Google ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ।
ক্লাউড শেল সক্রিয় করুন
- ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন .
যদি এটি আপনার প্রথমবার ক্লাউড শেল শুরু হয়, তাহলে এটি কী তা বর্ণনা করে আপনাকে একটি মধ্যবর্তী স্ক্রীন উপস্থাপন করা হবে। যদি আপনি একটি মধ্যবর্তী স্ক্রীনের সাথে উপস্থাপিত হন, তবে চালিয়ে যান ক্লিক করুন।
ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷
এই ভার্চুয়াল মেশিনটি প্রয়োজনীয় সমস্ত বিকাশের সরঞ্জাম দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5 GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, ব্রাউজার দিয়ে করা যেতে পারে।
একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি প্রমাণীকৃত হয়েছেন এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে।
- আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list
কমান্ড আউটপুট
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project
কমান্ড আউটপুট
[core] project = <PROJECT_ID>
যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:
gcloud config set project <PROJECT_ID>
কমান্ড আউটপুট
Updated property [core/project].
3. একটি নতুন স্প্রিং বুট ওয়েব অ্যাপ তৈরি করুন৷
ক্লাউড শেল চালু হওয়ার পরে, আপনি স্প্রিং ইনিশিয়ালাইজারের সাথে একটি নতুন স্প্রিং বুট অ্যাপ তৈরি করতে কমান্ড লাইন ব্যবহার করতে পারেন।
$ curl https://start.spring.io/starter.tgz \ -d bootVersion=3.0.5 \ -d dependencies=web \ -d type=maven-project \ -d baseDir=gae-standard-example | tar -xzvf - $ cd gae-standard-example
4. Maven pom.xml আপডেট করুন
একটি জাভা সার্ভার অ্যাপ স্থাপন করার দুটি উপায় রয়েছে - হয় Maven অ্যাপ ইঞ্জিন প্লাগইন বা গ্রেডল অ্যাপ ইঞ্জিন প্লাগইন ব্যবহার করে, অথবা war
প্যাকেজ ডিরেক্টরি স্থাপন করে। অ্যাপটি স্থাপন করতে আপনি Maven অ্যাপ ইঞ্জিন প্লাগইন ব্যবহার করবেন।
Maven অ্যাপ ইঞ্জিন প্লাগইন যোগ করুন
একটি Google ক্লাউড প্লাগইন অন্তর্ভুক্ত করতে pom.xml
আপডেট করুন যা স্থাপন প্রক্রিয়াকে সহজ করে। আপনি ফাইলটি সম্পাদনা করতে Vim, ন্যানো বা 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.4.4</version>
<configuration>
<version>1</version>
<projectId>GCLOUD_CONFIG</projectId>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
5. অ্যাপ ইঞ্জিন বর্ণনাকারী যোগ করুন
- অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড পরিবেশে অ্যাপটি স্থাপন করতে, আপনাকে অবশ্যই একটি নতুন
src/main/appengine/app.yaml
বর্ণনাকারী ফাইল তৈরি করতে হবে।
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
-
src/main/appengine/app.yaml
ফাইলটি সম্পাদনা করুন এবং নিম্নলিখিত বিষয়বস্তু যোগ করুন:
src/main/appengine/app.yaml
runtime: java17
instance_class: F1
6. একটি নিয়ামক যোগ করুন
একটি নতুন কন্ট্রোলার যোগ করুন যা "hello world!"
DemoApplication.java
এ।
src/main/java/com/example/demo/DemoApplication.java
package com.example.demo;
...
// Add imports
import org.springframework.web.bind.annotation.*;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
// Add the controller.
@RestController
class HelloWorldController {
@GetMapping("/")
public String hello() {
return "hello world!";
}
}
7. স্থানীয়ভাবে অ্যাপটি চালান
- নিশ্চিত করুন যে JAVA_HOME সঠিক JDK সংস্করণে সেট করা আছে:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
- আপনি স্প্রিং বুট প্লাগইন দিয়ে স্প্রিং বুট অ্যাপটি শুরু করতে পারেন:
$ ./mvnw -DskipTests spring-boot:run
- অ্যাপটি শুরু হওয়ার পরে, ওয়েব প্রিভিউ ক্লিক করুন ক্লাউড শেল টুলবারে এবং পোর্ট 8080-এ পূর্বরূপ নির্বাচন করুন।
আপনার ব্রাউজারে একটি ট্যাব খোলে এবং আপনি যে সার্ভারটি শুরু করেছেন তার সাথে সংযোগ স্থাপন করে।
8. অ্যাপ ইঞ্জিনে অ্যাপটি স্থাপন করুন
- প্রথমে, অ্যাপ ইঞ্জিন অ্যাপগুলি চালাতে সক্ষম হওয়ার জন্য প্রকল্পটি শুরু করুন। এছাড়াও, মার্কিন যুক্তরাষ্ট্রের কেন্দ্রীয় অঞ্চলে চালানোর জন্য প্রকল্পটি শুরু করুন।
$ 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
- তারপর,
mvn appengine:deploy
চালিয়ে অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড পরিবেশে আপনার অ্যাপ স্থাপন করুন।
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- অ্যাপটি মোতায়েন করার পরে, আপনি আপনার ওয়েব ব্রাউজারে http://<project-id>.appspot.com খুলে এটি দেখতে পারেন বা ক্লাউড শেল-এ নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
$ gcloud app browse ... [It may print out the URL for your app]
9. পরিচ্ছন্নতা
আপনি একটি App Engine অ্যাপ্লিকেশন মুছতে পারবেন না কিন্তু আপনি এটি নিষ্ক্রিয় করতে পারেন৷
Google ক্লাউড কনসোলে App Engine
এবং Settings
যান এবং Disable Application
নির্বাচন করুন:
বিকল্পভাবে, আপনি পুরো প্রকল্প মুছে ফেলতে পারেন:
$ gcloud projects delete YOUR-PROJECT-ID
10. অভিনন্দন
আপনি আপনার প্রথম অ্যাপ ইঞ্জিন ওয়েব অ্যাপ লিখতে শিখেছেন!