এই কোডল্যাব সম্পর্কে
1. তুমি শুরু করার আগে
ক্লাউড এসকিউএল হল একটি সম্পূর্ণরূপে পরিচালিত ডাটাবেস পরিষেবা যা Google ক্লাউডে আপনার রিলেশনাল ডেটাবেস সেট আপ, রক্ষণাবেক্ষণ, পরিচালনা এবং পরিচালনা করা সহজ করে তোলে। আপনি MySQL এর জন্য Cloud SQL বা PostgreSQL এর জন্য ক্লাউড SQL এর সাথে ক্লাউড এসকিউএল ব্যবহার করতে পারেন।
এই কোডল্যাবে, আপনি MySQL দৃষ্টান্তের জন্য একটি ক্লাউড এসকিউএল সেট আপ করতে শিখবেন এবং তারপর ক্লাউড এসকিউএল ইন্সট্যান্সটিকে ব্যাকএন্ড স্টোরেজ হিসাবে ব্যবহার করতে একটি স্প্রিং বুট অ্যাপ আপডেট করবেন। Google ক্লাউড এসকিউএল-এর জন্য স্প্রিং বুট স্টার্টার একটি স্বয়ংক্রিয় কনফিগার করা ডেটাসোর্স প্রদান করে, যা আপনাকে আপনার কোডে ন্যূনতম পরিবর্তনের সাথে সহজেই ক্লাউড SQL এর সুবিধা নিতে দেয়। এই কোডল্যাব স্প্রিং পেটক্লিনিক সোর্স কোড ব্যবহার করে।
পূর্বশর্ত
- জাভা প্রোগ্রামিং ভাষা এবং সরঞ্জামগুলির সাথে পরিচিতি
- স্ট্যান্ডার্ড লিনাক্স টেক্সট এডিটর, যেমন Vim, Emacs এবং ন্যানো সম্পর্কে জ্ঞান
আপনি কি করবেন
- আপনার স্প্রিং বুট অ্যাপে ক্লাউড এসকিউএল ব্যবহার করুন।
আপনি কি প্রয়োজন হবে
- একটি Google ক্লাউড প্রকল্প
- একটি ব্রাউজার, যেমন গুগল ক্রোম বা ফায়ারফক্স
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ (যদি আপনার ইতিমধ্যেই একটি Gmail বা G Suite অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)
প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এটি পরে এই কোডল্যাবে PROJECT_ID
হিসাবে উল্লেখ করা হবে।
- এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷
এই কোডল্যাবের মাধ্যমে চালানোর জন্য আপনার কয়েক ডলারের বেশি খরচ করা উচিত নয়, তবে আপনি যদি আরও সংস্থান ব্যবহার করার সিদ্ধান্ত নেন বা আপনি যদি সেগুলি চলমান রেখে দেন তবে এটি আরও বেশি হতে পারে।
Google ক্লাউডের নতুন ব্যবহারকারীরা $300 বিনামূল্যের ট্রায়ালের জন্য যোগ্য৷
ক্লাউড শেল সক্রিয় করুন
- ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন
.
আপনি যদি আগে কখনও ক্লাউড শেল চালু না করে থাকেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রীন (ভাঁজের নীচে) উপস্থাপন করা হবে যা বর্ণনা করে। যদি তা হয় তবে চালিয়ে যান ক্লিক করুন (এবং আপনি এটি আর কখনও দেখতে পাবেন না)। এককালীন স্ক্রীনটি দেখতে কেমন তা এখানে রয়েছে:
ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷
এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 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 config list project
কমান্ড আউটপুট
[core] project = <PROJECT_ID>
যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:
gcloud config set project <PROJECT_ID>
কমান্ড আউটপুট
Updated property [core/project].
3. MySQL উদাহরণের জন্য একটি ক্লাউড SQL সেট আপ করুন
- ক্লাউড শেল চালু হওয়ার পরে, আপনি একটি নতুন ক্লাউড এসকিউএল উদাহরণ তৈরি করতে কমান্ড লাইন ব্যবহার করতে পারেন:
$ gcloud sql instances create my-instance
একবার এই অপারেশনটি সম্পন্ন হলে, আপনার উদাহরণ ব্যবহার করার জন্য প্রস্তুত হবে।
- এখন একটি ডাটাবেস তৈরি করুন যা আপনি পেটক্লিনিক অ্যাপের জন্য ব্যবহার করবেন:
$ gcloud sql databases create petclinic --instance my-instance
এছাড়াও আপনি ক্লাউড কনসোলের মাধ্যমে উদাহরণটি অ্যাক্সেস এবং কনফিগার করতে পারেন।
-
project-id:zone-id:instance-id
ফরম্যাটে ইনস্ট্যান্স কানেকশন নাম নিন নিম্নলিখিত কমান্ডটি চালিয়ে। আপনি পরে আপনার স্প্রিং বুট অ্যাপ কনফিগার করার জন্য এটি ব্যবহার করবেন।
$ gcloud sql instances describe my-instance |grep connectionName
4. স্থানীয়ভাবে পেটক্লিনিক অ্যাপটি ক্লোন করুন এবং পরীক্ষা করুন
- আপনি এখন স্থানীয়ভাবে পেটক্লিনিক অ্যাপটি ক্লোন এবং পরীক্ষা করবেন।
$ git clone https://github.com/spring-projects/spring-petclinic $ cd spring-petclinic $ ./mvnw spring-boot:run
- ওয়েব পূর্বরূপ ক্লিক করুন
ক্লাউড শেল-এ, তারপর পোর্ট 8080-এ প্রিভিউ নির্বাচন করুন।
আপনার ব্রাউজারে এখানে দেখানো মত পেটক্লিনিক হোমপেজ দেখতে হবে:
- চারপাশে খেলুন এবং ডেটা যোগ করুন। অ্যাপটি একটি ইন-মেমরি হাইপারএসকিউএল ডাটাবেস ব্যবহার করে। আপনি এখন হাইপারএসকিউএল থেকে আপনার ডাটাবেস হিসাবে ক্লাউড এসকিউএল ব্যবহার করতে স্যুইচ করবেন।
5. পেটক্লিনিকে ক্লাউড এসকিউএল ব্যবহার করুন
Maven pom.xml ফাইল আপডেট করুন
এখানে দেখানো হিসাবে pom.xml
ফাইল আপডেট করুন। স্টার্টার আপনার ক্লাউড SQL ডাটাবেসের সাথে সংযোগ করতে একটি স্বয়ংক্রিয় কনফিগার করা DataSource
অবজেক্ট প্রদান করে। আপনি ফাইলটি সম্পাদনা করতে Vim, ন্যানো বা Emacs ব্যবহার করতে পারেন।
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
...
<!-- Add Spring Cloud GCP Dependency BOM -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-dependencies</artifactId>
<version>1.0.0.RC1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
...
<!-- Add CloudSQL Starter for MySQL -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-sql-mysql</artifactId>
</dependency>
...
</dependencies>
<repositories>
<!-- Use Spring Milestone Repository -->
<repository>
<id>repository.spring.milestone</id>
<name>Spring Milestones Repository</name>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>
</project>
অ্যাপ্লিকেশন-mysql.properties আপডেট করুন
-
src/main/resources/application-mysql.properties
এর বিষয়বস্তু প্রতিস্থাপন করুন নিম্নলিখিত বৈশিষ্ট্য সহ। আপনাকে আগের ধাপ থেকে ইনস্ট্যান্স সংযোগের নাম সেট করতে হবে।
src/main/resources/application-mysql.properties
database=mysql
# Delete the rest of the original content of the file and replace with the following:
spring.cloud.gcp.sql.database-name=petclinic
spring.cloud.gcp.sql.instance-connection-name=YOUR_CLOUD_SQL_INSTANCE_CONNECTION_NAME
# Initialize the database since the newly created Cloud SQL database has no tables. The following flag is for Spring Boot 2.
spring.datasource.initialization-mode=always
- অবশেষে,
application.properties' spring.profiles.active
সম্পত্তিতেmysql
যোগ করে স্প্রিং বুট অ্যাপে MySQL প্রোফাইলের জন্য একটি ক্লাউড SQL সক্ষম করুন:
src/main/resources/application.properties
# Keep the content of the file the same
...
# In the last line, add mysql to the spring.profiles.active property
spring.profiles.active=mysql
6. ক্লাউড শেলে অ্যাপটি চালান
- আপনি স্প্রিং বুট প্লাগইন দিয়ে সাধারণত স্প্রিং বুট অ্যাপটি শুরু করতে পারেন:
$ ./mvnw -DskipTests spring-boot:run
- অ্যাপটি শুরু হয়ে গেলে, ওয়েব প্রিভিউতে ক্লিক করুন
ক্লাউড শেল টুলবারে, তারপর পোর্ট 8080-এ পূর্বরূপ নির্বাচন করুন।
আপনার ব্রাউজারে এখানে দেখানো হিসাবে আপনি আবার স্প্রিং পেটক্লিনিক হোমপেজ দেখতে পাবেন:
- একটি পোষা মালিক এন্ট্রি যোগ করুন.
ঐচ্ছিক: যাচাই করুন যে ক্লাউড SQL ডেটা বজায় রেখেছে
আপনি যাচাই করতে পারেন যে আপনার প্রবেশ করা ডেটা এখানে দেখানো হিসাবে ক্লাউড এসকিউএল-এ স্থায়ী হয়েছে৷ একটি পাসওয়ার্ডের জন্য অনুরোধ করা হলে এন্টার টিপুন (ম্যাকিন্টোশে ফিরে আসুন)।
$ gcloud sql connect my-instance -u root Whitelisting your IP for incoming connection for 5 minutes...done. Enter password: <Press Enter, there is no password by default> ... mysql> use petclinic; mysql> select * from owners;
ঐচ্ছিক: আপনার ক্লাউড SQL উদাহরণ মুছুন
একবার আপনি আপনার অ্যাপ বন্ধ করে দিলে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে ক্লাউড এসকিউএল ইন্সট্যান্স মুছতে পারেন:
$ gcloud sql instances delete my-instance
7. অভিনন্দন
আপনি আপনার স্প্রিং বুট অ্যাপে ক্লাউড এসকিউএল-এর সাথে কীভাবে সংযোগ করবেন তা শিখেছেন!