1. সংক্ষিপ্ত বিবরণ
ASP.NET কোর হল C# প্রোগ্রামিং ভাষা ব্যবহার করে আধুনিক ক্লাউড-ভিত্তিক এবং ইন্টারনেট-সংযুক্ত অ্যাপ্লিকেশন তৈরির জন্য একটি নতুন ওপেন-সোর্স এবং ক্রস-প্ল্যাটফর্ম ফ্রেমওয়ার্ক।
এই ল্যাবে, আপনি অ্যাপ ইঞ্জিনের নমনীয় পরিবেশে একটি সহজ ASP.NET কোর অ্যাপ স্থাপন করবেন। এই কোডল্যাবটি Google Cloud Shell codelab থেকে ASP.NET কোর অ্যাপ তৈরি এবং চালু করার উপর ভিত্তি করে তৈরি। এই ল্যাবটি ব্যবহার করার আগে আপনি প্রথমে সেই ল্যাবটি করতে চাইতে পারেন।
আপনার ট্র্যাফিক এবং ডেটা স্টোরেজের পরিবর্তনের সাথে সাথে Google App Engine অ্যাপ্লিকেশনগুলি তৈরি করা, রক্ষণাবেক্ষণ করা এবং স্কেল করা সহজ। App Engine এর সাথে, পরিচালনা করার জন্য কোনও সার্ভার নেই। আপনি কেবল আপনার অ্যাপ্লিকেশনটি আপলোড করুন এবং এটি ব্যবহারের জন্য প্রস্তুত।
অ্যাপ ইঞ্জিন অ্যাপ্লিকেশনগুলি স্বয়ংক্রিয়ভাবে ইনকামিং ট্র্যাফিকের উপর ভিত্তি করে স্কেল করে। অ্যাপ ইঞ্জিন স্থানীয়ভাবে লোড ব্যালেন্সিং, মাইক্রোসার্ভিসেস, অনুমোদন, SQL এবং NoSQL ডাটাবেস, মেমক্যাশ, ট্র্যাফিক বিভাজন, লগিং, অনুসন্ধান, সংস্করণ, রোল আউট এবং রোল ব্যাক এবং সুরক্ষা স্ক্যানিং সমর্থন করে, যার সবকটিই অত্যন্ত কাস্টমাইজযোগ্য।
অ্যাপ ইঞ্জিনের পরিবেশ, স্ট্যান্ডার্ড পরিবেশ এবং নমনীয় পরিবেশ , C#, জাভা, পাইথন, PHP, Node.js, Go এবং আরও অনেক প্রোগ্রামিং ভাষা সমর্থন করে। দুটি পরিবেশ ব্যবহারকারীদের তাদের অ্যাপ্লিকেশন কীভাবে আচরণ করে তাতে সর্বাধিক নমনীয়তা দেয়, কারণ প্রতিটি পরিবেশের নির্দিষ্ট শক্তি রয়েছে। আরও তথ্যের জন্য, "একটি অ্যাপ ইঞ্জিন পরিবেশ নির্বাচন করুন" পড়ুন।
তুমি কি শিখবে
- কিভাবে একটি সাধারণ ASP.NET কোর অ্যাপকে ডকার কন্টেইনার হিসেবে প্যাকেজ করবেন।
- অ্যাপ ইঞ্জিনে একটি সাধারণ ASP.NET কোর অ্যাপ কীভাবে স্থাপন করবেন।
তোমার যা লাগবে
- একটি গুগল ক্লাউড প্ল্যাটফর্ম প্রকল্প
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
আপনি এই টিউটোরিয়ালটি কীভাবে ব্যবহার করবেন?
গুগল ক্লাউড প্ল্যাটফর্মের সাথে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- গুগল ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন অথবা বিদ্যমান একটি পুনরায় ব্যবহার করুন। যদি আপনার ইতিমধ্যেই একটি জিমেইল বা গুগল ওয়ার্কস্পেস অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।



- এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রজেক্টের নামটি প্রদর্শন করা হবে। এটি একটি অক্ষর স্ট্রিং যা Google API গুলি ব্যবহার করে না এবং আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
- সমস্ত Google ক্লাউড প্রোজেক্টে প্রোজেক্ট আইডি অনন্য হতে হবে এবং এটি অপরিবর্তনীয় (সেট করার পরে এটি পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটি কী তা নিয়ে চিন্তা করেন না। বেশিরভাগ কোডল্যাবে, আপনাকে প্রোজেক্ট আইডি উল্লেখ করতে হবে (এবং এটি সাধারণত
PROJECT_IDহিসাবে চিহ্নিত করা হয়), তাই যদি আপনার এটি পছন্দ না হয়, তাহলে অন্য একটি র্যান্ডম তৈরি করুন, অথবা, আপনি নিজের চেষ্টা করে দেখতে পারেন যে এটি উপলব্ধ কিনা। তারপর প্রোজেক্ট তৈরি হওয়ার পরে এটি "ফ্রোজেন" হয়ে যায়। - তৃতীয় একটি মান আছে, একটি প্রজেক্ট নম্বর যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপর, ক্লাউড রিসোর্স/API ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবটি চালানোর জন্য খুব বেশি খরচ হবে না, এমনকি কিছু খরচও হবে না। এই টিউটোরিয়ালের বাইরে যাতে আপনাকে বিলিং করতে না হয় সেজন্য রিসোর্সগুলি বন্ধ করতে, কোডল্যাবের শেষে পাওয়া যেকোনো "ক্লিন-আপ" নির্দেশাবলী অনুসরণ করুন। গুগল ক্লাউডের নতুন ব্যবহারকারীরা $300 USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
ক্লাউড শেল শুরু করুন
যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চলমান একটি কমান্ড লাইন পরিবেশ।
ক্লাউড শেল সক্রিয় করুন
- ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন
.

যদি আপনি আগে কখনও ক্লাউড শেল শুরু না করে থাকেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রিন (ভাঁজের নীচে) দেখানো হবে যেখানে এটি কী তা বর্ণনা করা হবে। যদি তাই হয়, তাহলে Continue এ ক্লিক করুন (এবং আপনি এটি আর কখনও দেখতে পাবেন না)। এই এককালীন স্ক্রিনটি কেমন দেখাবে:

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

এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সকল ডেভেলপমেন্ট টুল দিয়ে পূর্ণ। এটি একটি স্থায়ী 5GB হোম ডিরেক্টরি অফার করে এবং Google Cloud-এ চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার বেশিরভাগ কাজ, যদি সব না হয়, কেবল একটি ব্রাউজার বা আপনার 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].
৩. ক্লাউড শেলে একটি ASP.NET কোর অ্যাপ তৈরি করুন
ক্লাউড শেল প্রম্পটে, আপনি ইনস্টল করা .NET SDK গুলি তালিকাভুক্ত করে যাচাই করতে পারেন যে dotnet কমান্ড লাইন টুলটি ইতিমধ্যেই ইনস্টল করা আছে:
dotnet --list-sdks
এরপর, netcoreapp3.1 এর টার্গেট ফ্রেমওয়ার্ক সহ একটি নতুন স্কেলেটন ASP.NET কোর ওয়েব অ্যাপ তৈরি করুন:
dotnet new mvc -o HelloWorldAspNetCore -f netcoreapp3.1
এটি একটি প্রকল্প তৈরি করবে এবং এর নির্ভরতা পুনরুদ্ধার করবে। আপনি নীচের মতো একটি বার্তা দেখতে পাবেন।
Restore completed in 11.44 sec for HelloWorldAspNetCore.csproj.
Restore succeeded.
৪. ASP.NET কোর অ্যাপটি চালান
আমরা আমাদের অ্যাপটি চালানোর জন্য প্রায় প্রস্তুত। অ্যাপ ফোল্ডারে যান।
cd HelloWorldAspNetCore
অবশেষে, অ্যাপটি চালান।
dotnet run --urls=http://localhost:8080
পোর্ট 8080-এ অ্যাপ্লিকেশন শোনা শুরু হয়।
Hosting environment: Production
Content root path: /home/atameldev/HelloWorldAspNetCore
Now listening on: http://[::]:8080
Application started. Press Ctrl+C to shut down.
অ্যাপটি চলছে কিনা তা যাচাই করতে, উপরের ডানদিকে ওয়েব প্রিভিউ বোতামে ক্লিক করুন এবং 'পোর্ট 8080-এ প্রিভিউ' নির্বাচন করুন।

আপনি ডিফল্ট ASP.NET কোর ওয়েবপৃষ্ঠাটি দেখতে পাবেন:

অ্যাপটি চালু আছে কিনা তা যাচাই করার পর, অ্যাপটি বন্ধ করতে Ctrl+C টিপুন।
৫. ASP.NET কোর অ্যাপটি প্রকাশ করুন
এখন, dotnet publish কমান্ড ব্যবহার করে একটি স্বয়ংসম্পূর্ণ DLL পেতে অ্যাপটি প্রকাশ করুন।
dotnet publish -c Release
প্রক্রিয়া শেষে publish চালানোর মাধ্যমে সফলভাবে প্রকাশিত DLL সহ কিছু বার্তা প্রদর্শিত হবে।
...
HelloWorldAspNetCore -> /home/atameldev/HelloWorldAspNetCore/bin/Release/netcoreapp3.1/HelloWorldAspNetCore.dll
HelloWorldAspNetCore -> /home/atameldev/HelloWorldAspNetCore/bin/Release/netcoreapp3.1/HelloWorldAspNetCore.Views.dll
HelloWorldAspNetCore -> /home/atameldev/HelloWorldAspNetCore/bin/Release/netcoreapp3.1/publish/
৬. অ্যাপ ইঞ্জিনের জন্য নমনীয় app.yaml তৈরি করুন
app.yaml ফাইলটি বর্ণনা করে কিভাবে অ্যাপ ইঞ্জিনে অ্যাপটি স্থাপন করতে হয়, এই ক্ষেত্রে, অ্যাপ ইঞ্জিন নমনীয় পরিবেশ।
প্রথমে, publish ফোল্ডারে যান। এটি bin/Release ফোল্ডারের অধীনে থাকা উচিত তবে সঠিক পথটি .NET এর সংস্করণের উপর নির্ভর করে:
cd bin/Release/netcoreapp3.1/publish/
publish ফোল্ডারের ভিতরে একটি app.yaml ফাইল তৈরি করুন:
cat <<EOT >> app.yaml
env: flex
runtime: aspnetcore
EOT
লক্ষ্য করুন কিভাবে app.yaml ফাইল পরিবেশকে flex হিসেবে এবং রানটাইমকে aspnetcore হিসেবে নির্দিষ্ট করে।
৭. অ্যাপ ইঞ্জিনে নমনীয় স্থাপন করুন
আপনি gcloud ব্যবহার করে আপনার অ্যাপটি App Engine নমনীয়তে স্থাপন করতে প্রস্তুত। publish ডিরেক্টরির ভিতরে, নিম্নলিখিতটি চালান:
gcloud app deploy --version v0
স্থাপনার সময়, আপনাকে আপনার অ্যাপ্লিকেশনের জন্য একটি অঞ্চল বেছে নিতে বলা হতে পারে। এমন একটি অঞ্চল বেছে নিন যেখানে আপনি আপনার অ্যাপটি চালাতে চান।
Please choose a region for your application. After choosing a region,
you cannot change it. Which region would you like to choose?
[1] europe-west (supports standard and flexible)
[2] us-central (supports standard and flexible)
[3] us-east1 (supports standard and flexible)
[4] asia-northeast1 (supports standard and flexible)
[5] cancel
এটি ক্লাউডে আপনার অ্যাপ্লিকেশনের জন্য একটি ছবি তৈরি করবে, সেই ছবিটি Google Container Registry-এ সংরক্ষণ করবে এবং App Engine-এ স্থাপন করবে। স্থাপনের সময়, আপনি আসলে তৈরি করা কন্টেইনার ছবিটি দেখতে পাবেন:
Operation completed over 1 objects/571.8 KiB.
BUILD
Step #0: Pulling image: gcr.io/gcp-runtimes/aspnetcorebuild@sha256:d7b7975acb374fc3a9655a4e529993e6270cfa78023885684626528bc379f8eb
Step #0: sha256:d7b7975acb374fc3a9655a4e529993e6270cfa78023885684626528bc379f8eb: Pulling from gcp-runtimes/aspnetcorebuild
শেষ পর্যন্ত, আপনার দেখা উচিত যে অ্যাপটি স্থাপন করা হয়েছে।
...
Deployed service [default] to [https://<project-id>.appspot.com]
অ্যাপ্লিকেশনটি স্থাপন করার পরে, আপনার ওয়েব ব্রাউজারে http://<project-id>.appspot.com URL টি খুলে এটিতে যান।
আপনি একটি নতুন ট্যাবে ডিফল্ট ASP.NET কোর ওয়েবপৃষ্ঠা দেখতে পাবেন।

আপনি ক্লাউডে আপনার জন্য তৈরি করা কন্টেইনার ইমেজটিও দেখতে পারেন। ক্লাউড কনসোলে, কন্টেইনার রেজিস্ট্রি > ইমেজে যান এবং তারপর অ্যাপইঞ্জিন ফোল্ডারে, আপনার অ্যাপ্লিকেশনের জন্য ইমেজটি দেখতে পাবেন।

৮. আপনার পরিষেবার একটি নতুন সংস্করণ স্থাপন করুন
এক পর্যায়ে, আপনি যে অ্যাপ্লিকেশনটি উৎপাদনে স্থাপন করেছেন তার জন্য বাগ সংশোধন বা অতিরিক্ত বৈশিষ্ট্যের প্রয়োজন হবে। আপনার ব্যবহারকারীদের প্রভাবিত না করেই উৎপাদনে একটি নতুন সংস্করণ স্থাপনে সহায়তা করার জন্য অ্যাপ ইঞ্জিন এখানে রয়েছে।
প্রথমে, অ্যাপ্লিকেশনটি পরিবর্তন করা যাক। ক্লাউড শেল থেকে কোড এডিটরটি খুলুন।

HelloWorldAspNetCore এর Views/Home ফোল্ডারের অধীনে Index.cshtml এ নেভিগেট করুন এবং ডিফল্ট বার্তাটি এতে আপডেট করুন:
Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core on Google Cloud Platform!
পরিবর্তনগুলি সংরক্ষণ করুন এবং তারপর ক্লাউড শেলে ফিরে যান। HelloWorldAspNetCore, একটি স্বয়ংসম্পূর্ণ DLL পেতে অ্যাপটি প্রকাশ করুন।
dotnet publish -c Release
প্রকাশনা ডিরেক্টরিতে নেভিগেট করুন।
cd bin/Release/netcoreapp3.1/publish/
আপনি এখন আপনার অ্যাপের একটি নতুন সংস্করণ স্থাপন করতে পারেন (এই ক্ষেত্রে v1 )।
gcloud app deploy --version v1
একবার এটি স্থাপন করা হয়ে গেলে, আপনি Google Cloud Console-এর App Engine সংস্করণ বিভাগে যেতে পারেন এবং আপনার অ্যাপের নতুন সংস্করণটি নতুন বার্তা সহ সমস্ত ট্র্যাফিক পরিবেশন করছে তা দেখতে পারেন।

৯. ড্যাশবোর্ড এবং ট্র্যাফিক বিভাজন
অ্যাপ ইঞ্জিনে, ড্যাশবোর্ড বিভাগের অধীনে, আপনি আপনার অ্যাপ্লিকেশনের জন্য ল্যাটেন্সি, সিপিইউ ইত্যাদির জন্য বেশ কয়েকটি ড্যাশবোর্ড দেখতে পাবেন। সেগুলি নিজেই অন্বেষণ করুন।

ভার্সন বিভাগের অধীনে, আপনি আপনার অ্যাপের ডিপ্লোয় করা সংস্করণগুলি দেখতে পাবেন এবং ট্র্যাফিক স্প্লিটিং বিভাগে আপনি বিভিন্ন সংস্করণের মধ্যে ট্র্যাফিক ভাগ করতে পারবেন। আসুন দুটি সংস্করণের মধ্যে ট্র্যাফিক ভাগ করি:

১০. অভিনন্দন!
সি লিয়ানআপ
খরচ বাঁচাতে এবং সামগ্রিকভাবে একজন ভালো ক্লাউড নাগরিক হতে অ্যাপটি বন্ধ করার সময় এসেছে।
অ্যাপ ইঞ্জিনের সংস্করণ বিভাগে যান।

সংস্করণটি নির্বাচন করুন এবং এটি বন্ধ করুন।

একবার ভার্সনটি বন্ধ হয়ে গেলে, ব্যাকিং ইনস্ট্যান্সগুলি মুছে ফেলা হবে এবং আপনি ইনস্ট্যান্স কাউন্টটি শূন্যে নেমে আসবে দেখতে পাবেন।

আমরা যা কভার করেছি
এইতো! আপনি একটি ASP.NET Core অ্যাপ তৈরি করেছেন, এটিকে ডকার কন্টেইনার হিসেবে প্যাকেজ করেছেন এবং এটিকে Google App Engine Flexible-এ স্থাপন করেছেন।
- কিভাবে একটি সাধারণ ASP.NET কোর অ্যাপকে ডকার কন্টেইনার হিসেবে প্যাকেজ করবেন।
- অ্যাপ ইঞ্জিনে একটি সাধারণ ASP.NET কোর অ্যাপ কীভাবে স্থাপন করবেন।
পরবর্তী পদক্ষেপ
- গুগল ক্লাউড প্ল্যাটফর্মে উইন্ডোজ সম্পর্কে আরও জানুন।
- গুগল ক্লাউড প্ল্যাটফর্মে .NET সম্পর্কে আরও জানুন।
- গুগল ক্লাউড প্ল্যাটফর্মে SQL সার্ভার সম্পর্কে আরও জানুন।
- ভিজ্যুয়াল স্টুডিওর জন্য ক্লাউড টুলস সম্পর্কে আরও জানুন।
- PowerShell এর জন্য ক্লাউড টুলস সম্পর্কে আরও জানুন।
লাইসেন্স
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ২.০ জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।