অ্যাপ ইঞ্জিনে একটি ASP.NET কোর অ্যাপ স্থাপন করুন

1. ওভারভিউ

ASP.NET Core হল C# প্রোগ্রামিং ভাষা ব্যবহার করে আধুনিক ক্লাউড-ভিত্তিক এবং ইন্টারনেট-সংযুক্ত অ্যাপ্লিকেশন তৈরির জন্য একটি নতুন ওপেন-সোর্স এবং ক্রস-প্ল্যাটফর্ম ফ্রেমওয়ার্ক।

এই ল্যাবে, আপনি অ্যাপ ইঞ্জিনের নমনীয় পরিবেশে একটি সাধারণ ASP.NET কোর অ্যাপ স্থাপন করবেন। এই কোডল্যাবটি Google ক্লাউড শেল কোডল্যাব থেকে ASP.NET কোর অ্যাপ তৈরি এবং চালু করে । আপনি এই ল্যাবটি চেষ্টা করার আগে প্রথমে সেই ল্যাবটি করতে চাইতে পারেন।

আপনার ট্র্যাফিক এবং ডেটা সঞ্চয়স্থানের পরিবর্তনের প্রয়োজনে Google অ্যাপ ইঞ্জিন অ্যাপ্লিকেশনগুলি তৈরি করা, বজায় রাখা এবং স্কেল করা সহজ৷ অ্যাপ ইঞ্জিনের সাথে, পরিচালনা করার জন্য কোনও সার্ভার নেই৷ আপনি কেবল আপনার অ্যাপ্লিকেশন আপলোড করুন এবং এটি যেতে প্রস্তুত।

অ্যাপ ইঞ্জিন অ্যাপ্লিকেশন স্বয়ংক্রিয়ভাবে আগত ট্র্যাফিকের উপর ভিত্তি করে স্কেল করে। অ্যাপ ইঞ্জিন নেটিভভাবে লোড ব্যালেন্সিং, মাইক্রোসার্ভিসেস, অনুমোদন, SQL এবং NoSQL ডাটাবেস, মেমক্যাশে, ট্রাফিক স্প্লিটিং, লগিং, সার্চ, ভার্সনিং, রোল আউট এবং রোল ব্যাক এবং সিকিউরিটি স্ক্যানিং সমর্থন করে, যার সবকটিই অত্যন্ত কাস্টমাইজযোগ্য।

অ্যাপ ইঞ্জিনের পরিবেশ, আদর্শ পরিবেশ এবং নমনীয় পরিবেশ , C#, Java, Python, PHP, Node.js, Go, এবং আরও অনেক কিছু সহ প্রোগ্রামিং ভাষার একটি হোস্টকে সমর্থন করে। দুটি পরিবেশ ব্যবহারকারীদের তাদের অ্যাপ্লিকেশন কীভাবে আচরণ করে তাতে সর্বাধিক নমনীয়তা দেয়, যেহেতু প্রতিটি পরিবেশের নির্দিষ্ট শক্তি রয়েছে। আরও তথ্যের জন্য, একটি অ্যাপ ইঞ্জিন পরিবেশ নির্বাচন করা পড়ুন।

আপনি কি শিখবেন

  • ডকার কন্টেইনার হিসাবে একটি সাধারণ ASP.NET কোর অ্যাপ কীভাবে প্যাকেজ করবেন।
  • অ্যাপ ইঞ্জিনে একটি সাধারণ ASP.NET কোর অ্যাপ কীভাবে স্থাপন করবেন।

আপনি কি প্রয়োজন হবে

আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?

শুধুমাত্র মাধ্যমে এটি পড়ুন এটি পড়ুন এবং ব্যায়াম সম্পূর্ণ করুন

Google ক্লাউড প্ল্যাটফর্মের সাথে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবে?

নবজাতক মধ্যবর্তী দক্ষ

2. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

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

ক্লাউড শেল শুরু করুন

যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।

ক্লাউড শেল সক্রিয় করুন

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন 4292cbf4971c9786.png .

bce75f34b2c53987.png

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

70f315d7b402b476.png

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

fbe3a0674c982259.png

এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, শুধুমাত্র একটি ব্রাউজার বা আপনার Chromebook দিয়ে করা যেতে পারে।

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

  1. আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list

কমান্ড আউটপুট

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project

কমান্ড আউটপুট

[core]
project = <PROJECT_ID>

যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:

gcloud config set project <PROJECT_ID>

কমান্ড আউটপুট

Updated property [core/project].

3. ক্লাউড শেলে একটি 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.

4. 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' নির্বাচন করুন।

Capture.PNG

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

f579a9baedc108a9.png

একবার আপনি যাচাই করে নিন যে অ্যাপটি চলছে, অ্যাপটি বন্ধ করতে Ctrl+C টিপুন।

5. 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/

6. অ্যাপ ইঞ্জিন নমনীয় করার জন্য 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 হিসেবে নির্দিষ্ট করে।

7. নমনীয় অ্যাপ ইঞ্জিনে স্থাপন করুন

আপনি gcloud ব্যবহার করে নমনীয় অ্যাপ ইঞ্জিনে আপনার অ্যাপ স্থাপন করতে প্রস্তুত। 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 কন্টেইনার রেজিস্ট্রিতে সংরক্ষণ করবে এবং অ্যাপ ইঞ্জিনে স্থাপন করবে। স্থাপনার সময়, আপনি আসলে কন্টেইনার ইমেজ তৈরি করা দেখতে পারেন:

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]

আপনি অ্যাপ্লিকেশনটি স্থাপন করার পরে, আপনার ওয়েব ব্রাউজারে URL http://<project-id>.appspot.com খুলে এটিতে যান৷

আপনি একটি নতুন ট্যাবে ডিফল্ট ASP.NET কোর ওয়েবপেজ দেখতে পাবেন।

f579a9baedc108a9.png

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

de788f4949d0c5a.png

8. আপনার পরিষেবার একটি নতুন সংস্করণ স্থাপন করুন৷

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

প্রথমত, এর অ্যাপ্লিকেশন পরিবর্তন করা যাক. ক্লাউড শেল থেকে কোড এডিটর খুলুন।

868c4f615e2331fe.png

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 ক্লাউড কনসোলের অ্যাপ ইঞ্জিন সংস্করণ বিভাগে যেতে পারেন আপনার অ্যাপের নতুন সংস্করণটি নতুন বার্তা সহ সমস্ত ট্র্যাফিক পরিবেশন করছে।

8cc0cc992b4e07ed.png

9. ড্যাশবোর্ড এবং ট্রাফিক বিভাজন

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

5c879431935b080d.png

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

176a2e22e755b6d3.png

10. অভিনন্দন!

সি লীনআপ

খরচ বাঁচাতে এবং সামগ্রিকভাবে ভালো ক্লাউড নাগরিক হওয়ার জন্য অ্যাপটি বন্ধ করার সময় এসেছে।

অ্যাপ ইঞ্জিনের সংস্করণ বিভাগে যান।

7e9b3b4406e785b9.png

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

7f80d9ff2c959e0.png

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

29f3cb5c71225b2d.png

আমরা কভার করেছি কি

সেখানে! আপনি একটি ASP.NET কোর অ্যাপ তৈরি করেছেন, এটি একটি ডকার কন্টেইনার হিসাবে প্যাকেজ করেছেন এবং এটিকে Google App Engine Flexible-এ স্থাপন করেছেন৷

  • ডকার কন্টেইনার হিসাবে একটি সাধারণ ASP.NET কোর অ্যাপ কীভাবে প্যাকেজ করবেন।
  • অ্যাপ ইঞ্জিনে একটি সাধারণ ASP.NET কোর অ্যাপ কীভাবে স্থাপন করবেন।

পরবর্তী পদক্ষেপ

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।