1. আপনি শুরু করার আগে
Google একটি শক্তিশালী ইমেজ বিল্ড টুল সরবরাহ করে যার সাহায্যে আপনি সহজেই জাভা অ্যাপের জন্য ডকার বা ডকারফাইল ছাড়াই একটি অপ্টিমাইজড ডকার কন্টেইনার ইমেজ তৈরি এবং প্রকাশ করতে পারেন। Google ক্লাউড ক্লাউড রানের সাথে কনটেইনারগুলিতে সার্ভারহীন নিয়ে আসে, একটি পরিচালিত গণনা প্ল্যাটফর্ম যা স্বয়ংক্রিয়ভাবে আপনার স্টেটলেস কন্টেইনারগুলিকে স্কেল করে। এই কোডল্যাবে, আপনি দেখতে পাবেন যে আপনার স্প্রিং বুট কোটলিন অ্যাপটি কন্টেইনারাইজ করা, কনটেইনার রেজিস্ট্রিতে প্রকাশ করা এবং Google ক্লাউডে ছবিকে নির্বিঘ্নে চালানো কতটা সহজ!
এই কোডল্যাবটি আপনাকে কোটলিনে একটি সাধারণ অ্যাপ সেট আপ করার মাধ্যমে নিয়ে যায়, যা জিব , কন্টেইনার রেজিস্ট্রি এবং ক্লাউড রান সহ Google ক্লাউড পরিষেবা এবং সরঞ্জামগুলি ব্যবহার করে দেখায়৷
পূর্বশর্ত
- জাভা প্রোগ্রামিং ভাষা এবং সরঞ্জামগুলির সাথে পরিচিতি
- স্ট্যান্ডার্ড লিনাক্স টেক্সট এডিটর, যেমন Vim, Emacs এবং ন্যানো সম্পর্কে জ্ঞান
আপনি কি করবেন
- একটি স্প্রিং বুট কোটলিন অ্যাপ সেট আপ করুন।
- একটি অপ্টিমাইজড ডকার ইমেজ তৈরি করুন।
- কন্টেইনার রেজিস্ট্রিতে ছবিটি প্রকাশ করুন।
- ক্লাউড রানে কন্টেইনারাইজড অ্যাপটি চালান।
আপনি কি প্রয়োজন হবে
- একটি Google ক্লাউড প্রকল্প
- একটি ব্রাউজার, যেমন Google Chrome
2. সেট আপ করা হচ্ছে
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এটি পরে এই কোডল্যাবে PROJECT_ID
হিসাবে উল্লেখ করা হবে।
- এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷
এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। "ক্লিনিং আপ" বিভাগে যে কোনও নির্দেশাবলী অনুসরণ করতে ভুলবেন না যা আপনাকে কীভাবে সংস্থানগুলি বন্ধ করতে হবে তা পরামর্শ দেয় যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন৷ Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
মেঘের শেল
যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Cloud Shell ব্যবহার করবেন, Google ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ।
ক্লাউড শেল সক্রিয় করুন
- ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন .
আপনি যদি আগে কখনও ক্লাউড শেল চালু না করে থাকেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রীন (ভাঁজের নীচে) উপস্থাপন করা হবে যা বর্ণনা করে। যদি এটি হয়, তবে চালিয়ে যান ক্লিক করুন (এবং আপনি এটি আর কখনও দেখতে পাবেন না)। এককালীন স্ক্রীনটি দেখতে কেমন তা এখানে রয়েছে:
ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷
এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, শুধুমাত্র একটি ব্রাউজার বা আপনার Chromebook দিয়ে করা যেতে পারে।
একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণ করেছেন এবং প্রকল্পটি ইতিমধ্যে আপনার প্রকল্প আইডিতে সেট করা আছে।
- আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
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 language=kotlin \ -d dependencies=web \ -d baseDir=kotlin-jib-cloud-run | tar -xzvf -
মনে রাখবেন যে Initializr স্বয়ংক্রিয়ভাবে টেমপ্লেট অ্যাপের 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. আপনার অ্যাপ কন্টেইনারাইজ করুন এবং কন্টেইনার রেজিস্ট্রিতে প্রকাশ করুন
Jib-এর সাহায্যে, আপনি ডকার ছাড়াই আপনার অ্যাপটিকে একটি অপ্টিমাইজড উপায়ে কন্টেইনারাইজ করতে পারেন এবং যেকোনো কন্টেইনার রেজিস্ট্রিতে প্রকাশ করতে পারেন।
- এগিয়ে যাওয়ার আগে, আপনাকে কন্টেইনার রেজিস্ট্রি API সক্রিয় করতে হবে। API অ্যাক্সেসযোগ্য করার জন্য এটি শুধুমাত্র প্রতি প্রকল্পে একবার করা দরকার।
$ gcloud services enable containerregistry.googleapis.com
- একটি ডকার ইমেজ তৈরি করতে জিব চালান এবং কন্টেইনার রেজিস্ট্রিতে প্রকাশ করুন।
$ ./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 ক্লাউড প্রকল্প আইডি ( PROJECT_ID
) এ $GOOGLE_CLOUD_PROJECT
সঠিকভাবে সেট করা আছে কিনা তা দুবার পরীক্ষা করুন।
- এগিয়ে যাওয়ার আগে, ছবিটি সফলভাবে প্রকাশিত হয়েছে কিনা তা পরীক্ষা করুন। ক্লাউড কনসোলে ফিরে যান, নেভিগেশন মেনুতে ক্লিক করুন , এবং কন্টেইনার রেজিস্ট্রি নির্বাচন করুন।
আপনি দেখতে পাবেন যে আপনার ছবিটি সফলভাবে প্রকাশিত হয়েছে।
6. ক্লাউড রানে কন্টেইনারাইজড অ্যাপ চালান
ক্লাউড রান কনটেইনারগুলিতে সার্ভারহীন নিয়ে আসে, স্বয়ংক্রিয়ভাবে আপনার স্টেটলেস কন্টেইনারগুলিকে স্কেল করে।
- নেভিগেশন মেনুতে ক্লিক করুন আবার ক্লাউড রান নির্বাচন করুন।
আপনি যদি প্রথমবার ক্লাউড রান অ্যাক্সেস করেন তবে আপনি এক-কালীন সেটআপের জন্য নিম্নলিখিত ডায়ালগটি দেখতে পাবেন। এটি প্রদর্শিত হলে ক্লাউড রান ব্যবহার শুরু করুন ক্লিক করুন।
- ক্লাউড রান পৃষ্ঠায়, পরিষেবা তৈরি করুন ক্লিক করুন।
- পরবর্তী স্ক্রিনে, উৎসের অধীনে নির্বাচন করুন ক্লিক করুন। উৎস হল ছবিটি আপনি ক্লাউড রানে চালাতে চান।
- ডায়ালগটি আপনার পূর্বে নির্মিত চিত্রটি দেখাবে। ছবিটি নির্বাচন করুন এবং অবিরত ক্লিক করুন।
- আপনি এখন অ্যাপটি স্থাপন করা থেকে মাত্র কয়েক ক্লিক দূরে। ডিপ্লয়মেন্ট প্ল্যাটফর্মের অধীনে, Google ক্লাউডে পরিষেবাটি সম্পূর্ণরূপে পরিচালিত করতে ক্লাউড রান (সম্পূর্ণভাবে পরিচালিত) বেছে নিন। আপনার অবস্থানের জন্য উপযুক্ত একটি অঞ্চল চয়ন করুন, অপ্রমাণিত আহ্বানের অনুমতি দিন নির্বাচন করুন এবং তৈরি করুন ক্লিক করুন। তাই তো!
যখন ছবিটি সম্পূর্ণরূপে স্থাপন করা হয়, তখন ক্লাউড রান পৃষ্ঠাটি অ্যাপটি অ্যাক্সেস করার জন্য একটি URL প্রদর্শন করবে। এটা পরীক্ষা করে দেখুন!
শেষ পর্যন্ত, আপনি অ্যাপ থেকে আশা করা বার্তাটি দেখতে পাবেন।
Kotlin app on Cloud Run, containerized by Jib!
তাই তো! ভবিষ্যতে, আপনার যদি নতুন অ্যাপ সংস্করণ স্থাপনের প্রয়োজন হয়, আপনি পৃষ্ঠায় নতুন পুনর্বিবেচনা করুন-এ ক্লিক করে তা করতে পারেন।
7. পরিষ্কার করুন
- আপনার পরিবেশ পরিষ্কার করতে, আপনাকে ক্লাউড রানে স্থাপন করা অ্যাপ এবং কন্টেইনার রেজিস্ট্রিতে প্রকাশিত চিত্রটি মুছে ফেলতে হবে। ক্লাউড রানে যান, অ্যাপটি নির্বাচন করুন এবং মুছুন ক্লিক করুন।
- একইভাবে, কন্টেইনার রেজিস্ট্রি পৃষ্ঠায় যান এবং ছবিটি মুছুন।
8. অভিনন্দন
অভিনন্দন! আপনি সফলভাবে আপনার স্প্রিং বুট কোটলিন অ্যাপটিকে কনটেইনারাইজ করেছেন এবং এটি ক্লাউড রানে স্থাপন করেছেন!
জিব ব্যবহার করে, আপনি ডকার ইনস্টল না করেই একটি অপ্টিমাইজড কন্টেইনার ইমেজ তৈরি করেছেন বা একটি ডকারফাইল লিখেছেন এবং এটি কনটেইনার রেজিস্ট্রিতে প্রকাশ করেছেন। জিব ইমেজ নির্মাণকে অপ্টিমাইজ করে, তাই যে কেউ গভীরভাবে ডকার জ্ঞান ছাড়াই জাভা অ্যাপগুলিকে দ্রুত এবং দক্ষতার সাথে ধারণ করতে পারে। তারপরে, কিছু ক্লিকের মাধ্যমে, আপনি ক্লাউড রানে অ্যাপটি স্থাপন করেছেন যাতে কিছুক্ষণের মধ্যেই পরিবেশন শুরু হয়।
আরও জানুন
- Google Kubernetes ইঞ্জিনে Kubernetes-এ একটি Java অ্যাপ স্থাপন করুন
- ক্লাউড রান ডকুমেন্টেশন
- ক্লাউড রান ওভারভিউ
- জিব-এর সাথে জাভা ডকার ইমেজ আরও ভালোভাবে তৈরি করুন
- জাভা অ্যাপের জন্য একটি Google ইমেজ বিল্ড টুল Jib-এর সাহায্যে দ্রুত কন্টেইনার তৈরি করুন
- জিব—আপনার জাভা অ্যাপকে ধারণ করুন
- জিব গিটার চ্যানেল
- জিব ব্যবহারকারীদের মেইলিং তালিকা