১. শুরু করার আগে
অ্যাপ ইঞ্জিন অ্যাপ তৈরি করা সহজ, রক্ষণাবেক্ষণ করা সহজ এবং আপনার ট্র্যাফিক ও ডেটা স্টোরেজের চাহিদা পরিবর্তনের সাথে সাথে এর পরিধিও বাড়ানো সহজ। অ্যাপ ইঞ্জিনের সাথে কোনো সার্ভার রক্ষণাবেক্ষণের প্রয়োজন নেই। আপনি শুধু আপনার অ্যাপটি আপলোড করবেন এবং এটি ব্যবহারের জন্য প্রস্তুত হয়ে যাবে।
অ্যাপ ইঞ্জিন অ্যাপগুলো আগত ট্র্যাফিকের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে স্কেল করে। লোড ব্যালান্সিং, মাইক্রোসার্ভিস, অথরাইজেশন, SQL ও NoSQL ডেটাবেস, মেমরি ক্যাশিং, ট্র্যাফিক স্প্লিটিং, লগিং, সার্চ, ভার্সনিং, রোলআউট ও রোলব্যাক এবং সিকিউরিটি স্ক্যানিং—এই সবই নেটিভভাবে সমর্থিত এবং অত্যন্ত কাস্টমাইজযোগ্য।
অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড এনভায়রনমেন্ট এবং অ্যাপ ইঞ্জিন ফ্লেক্সিবল এনভায়রনমেন্ট জাভা, পাইথন, পিএইচপি, নোডজেএস এবং গো সহ বহু প্রোগ্রামিং ল্যাঙ্গুয়েজ সাপোর্ট করে। এই দুটি এনভায়রনমেন্ট ডেভেলপারদের তাদের অ্যাপের আচরণ নির্ধারণে সর্বোচ্চ নমনীয়তা প্রদান করে। প্রতিটি এনভায়রনমেন্টেরই নির্দিষ্ট কিছু সুবিধা রয়েছে। আরও তথ্যের জন্য, ‘একটি অ্যাপ ইঞ্জিন এনভায়রনমেন্ট নির্বাচন’ দেখুন।
আপনি অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড এনভায়রনমেন্টে একটি স্প্রিং বুট অ্যাপ ডেপ্লয় করতে শিখবেন। স্ট্যান্ডার্ড এনভায়রনমেন্টটি যখন কেউ ব্যবহার করে না, তখন ইনস্ট্যান্সের সংখ্যা শূন্যে নেমে আসে এবং স্বয়ংক্রিয়ভাবে আবার বেড়ে যায়!
পূর্বশর্ত
- জাভা প্রোগ্রামিং ভাষা এবং টুলস সম্পর্কে পরিচিতি
- Vim, Emacs, এবং nano-এর মতো প্রচলিত লিনাক্স টেক্সট এডিটর সম্পর্কে জ্ঞান।
আপনি যা করবেন
- অ্যাপ ইঞ্জিনে কীভাবে একটি স্প্রিং বুট জাভা অ্যাপ তৈরি করবেন
আপনার যা যা লাগবে
- একটি গুগল ক্লাউড প্রকল্প
- একটি ব্রাউজার, যেমন গুগল ক্রোম
২. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিতে পরিবেশ সেটআপ
- Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।



- প্রজেক্টের নামটি হলো এই প্রজেক্টের অংশগ্রহণকারীদের প্রদর্শিত নাম। এটি একটি ক্যারেক্টার স্ট্রিং যা গুগল এপিআই ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
- প্রজেক্ট আইডি সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (একবার সেট করার পর এটি পরিবর্তন করা যায় না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত এটি কী তা নিয়ে আপনার মাথা ঘামানোর দরকার নেই। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রজেক্ট আইডি উল্লেখ করতে হবে (যা সাধারণত
PROJECT_IDহিসাবে চিহ্নিত করা হয়)। তৈরি করা আইডিটি আপনার পছন্দ না হলে, আপনি এলোমেলোভাবে আরেকটি তৈরি করতে পারেন। বিকল্পভাবে, আপনি আপনার নিজের আইডি দিয়ে চেষ্টা করে দেখতে পারেন যে সেটি উপলব্ধ আছে কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রজেক্টের পুরো সময়কাল জুড়ে এটি অপরিবর্তিত থাকবে। - আপনার অবগতির জন্য জানাচ্ছি যে, তৃতীয় একটি ভ্যালু রয়েছে, যা হলো প্রজেক্ট নম্বর , এবং কিছু এপিআই এটি ব্যবহার করে থাকে। ডকুমেন্টেশনে এই তিনটি ভ্যালু সম্পর্কে আরও বিস্তারিত জানুন।
- এরপর, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে। এই কোডল্যাবটি সম্পন্ন করতে খুব বেশি খরচ হবে না, এমনকি আদৌ কোনো খরচ নাও হতে পারে। এই টিউটোরিয়ালের পর বিলিং এড়াতে রিসোর্সগুলো বন্ধ করার জন্য, আপনি আপনার তৈরি করা রিসোর্সগুলো অথবা প্রজেক্টটি ডিলিট করে দিতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
ক্লাউড শেল
আপনি ক্লাউড শেল ব্যবহার করবেন, যা গুগল ক্লাউডে চালিত একটি কমান্ড-লাইন পরিবেশ।
ক্লাউড শেল সক্রিয় করুন
- ক্লাউড কনসোল থেকে, Activate Cloud Shell-এ ক্লিক করুন।
.

আপনি যদি প্রথমবারের মতো ক্লাউড শেল চালু করেন, তাহলে এটি কী তা বর্ণনা করে একটি মধ্যবর্তী স্ক্রিন আপনার সামনে আসবে। যদি একটি মধ্যবর্তী স্ক্রিন আসে, তাহলে 'চালিয়ে যান' (Continue) এ ক্লিক করুন।

ক্লাউড শেল প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগা উচিত।

এই ভার্চুয়াল মেশিনটিতে প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার প্রায় সমস্ত কাজই একটি ব্রাউজার দিয়ে করা সম্ভব।
ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনি দেখতে পাবেন যে আপনাকে প্রমাণীকৃত করা হয়েছে এবং প্রজেক্টটি আপনার প্রজেক্ট আইডিতে সেট করা আছে।
- আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
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].
৩. একটি নতুন Spring Boot ওয়েব অ্যাপ তৈরি করুন
ক্লাউড শেল চালু হওয়ার পর, আপনি কমান্ড লাইন ব্যবহার করে স্প্রিং ইনিশিয়ালাইজারের সাহায্যে একটি নতুন স্প্রিং বুট অ্যাপ তৈরি করতে পারবেন।
$ 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
৪. Maven pom.xml আপডেট করুন।
একটি জাভা সার্ভার অ্যাপ ডেপ্লয় করার দুটি উপায় আছে—হয় Maven App Engine Plugin বা Gradle App Engine Plugin ব্যবহার করে, অথবা war প্যাকেজ ডিরেক্টরিটি ডেপ্লয় করে। অ্যাপটি ডেপ্লয় করার জন্য আপনি Maven App Engine Plugin ব্যবহার করবেন।
Maven অ্যাপ ইঞ্জিন প্লাগইন যোগ করুন
ডিপ্লয়মেন্ট প্রক্রিয়া সহজ করার জন্য 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.4.4</version>
<configuration>
<version>1</version>
<projectId>GCLOUD_CONFIG</projectId>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
৫. অ্যাপ ইঞ্জিন বর্ণনাকারী যোগ করুন
- অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড এনভায়রনমেন্টে অ্যাপটি ডেপ্লয় করতে হলে, আপনাকে অবশ্যই একটি নতুন
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
৬. একটি কন্ট্রোলার যোগ করুন
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
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!";
}
}
৭. স্থানীয়ভাবে অ্যাপটি চালান
- নিশ্চিত করুন যে JAVA_HOME সঠিক JDK সংস্করণে সেট করা আছে:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
- আপনি Spring Boot প্লাগইন দিয়ে Spring Boot অ্যাপটি চালু করতে পারেন:
$ ./mvnw -DskipTests spring-boot:run
- অ্যাপটি চালু হওয়ার পর, ওয়েব প্রিভিউ-তে ক্লিক করুন।
ক্লাউড শেল টুলবারে এবং পোর্ট ৮০৮০-তে প্রিভিউ নির্বাচন করুন।

আপনার ব্রাউজারে একটি ট্যাব খোলে এবং আপনার চালু করা সার্ভারটির সাথে সংযোগ স্থাপন করে।

৮. অ্যাপটি অ্যাপ ইঞ্জিনে স্থাপন করুন।
- প্রথমে, অ্যাপ ইঞ্জিন অ্যাপ চালানোর জন্য প্রজেক্টটি ইনিশিয়ালাইজ করুন। এছাড়াও, প্রজেক্টটি মার্কিন যুক্তরাষ্ট্রের কেন্দ্রীয় অঞ্চলে চালানোর জন্য ইনিশিয়ালাইজ করুন।
$ 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]
৯. পরিচ্ছন্নতা
আপনি একটি অ্যাপ ইঞ্জিন অ্যাপ্লিকেশন মুছে ফেলতে পারবেন না, তবে এটিকে নিষ্ক্রিয় করতে পারবেন।
Google Cloud Console-এর App Engine এবং Settings এ যান এবং Disable Application নির্বাচন করুন:

বিকল্পভাবে, আপনি পুরো প্রজেক্টটি মুছে ফেলতে পারেন:
$ gcloud projects delete YOUR-PROJECT-ID
১০. অভিনন্দন
আপনি আপনার প্রথম অ্যাপ ইঞ্জিন ওয়েব অ্যাপটি লিখতে শিখেছেন!