Introduction
এই ভিডিওতে মিলান জোভানোভিচ দেখিয়েছেন কীভাবে একটি প্রজেক্টে Docker Compose সরিয়ে .NET Aspire ব্যবহার করা যায়। সহজ কথায়, আমরা যখন বড় কোনো সফটওয়্যার বানাই (যেমন- ডাটাবেস, এপিআই, লগিং সার্ভিস সব একসাথে), তখন সেগুলোকে একসাথে ম্যানেজ করার জন্য আগে Docker Compose ব্যবহার হতো। কিন্তু এখন .NET ডেভেলপারদের জন্য Aspire অনেক সহজ এবং পাওয়ারফুল একটা টুল হিসেবে এসেছে। ভিডিওতে একটি To-Do অ্যাপের মাধ্যমে এই পুরো মাইগ্রেশন বা পরিবর্তনের প্রক্রিয়াটি দেখানো হয়েছে।
১. কেন Docker Compose থেকে Aspire-এ যাবেন?
ভিডিওর শুরুতে মিলান দেখিয়েছেন যে তার একটি .NET 10 এপিআই আছে যা Docker Compose দিয়ে চলছিল। এখানে ডাটাবেস হিসেবে Postgres এবং লগিং-এর জন্য Seq ব্যবহার করা হয়েছে।
Reference: [00:49] Docker Compose-এ আমাদের ম্যানুয়ালি docker-compose.yml ফাইল লিখতে হয় এবং নেটওয়ার্কিং বা কানেকশন স্ট্রিং সেটআপ করা একটু ঝামেলার হতে পারে। কিন্তু Aspire-এ এই কাজগুলো কোড দিয়েই অটোমেটিক করা যায়।
-
সহজ ব্যাখ্যা: * Orchestration (অরকেস্ট্রেশন): অনেকগুলো ছোট ছোট সার্ভিস (যেমন: ডাটাবেস, এপিআই) একসাথে মিলিয়ে একটা সিস্টেম চালানো।
- Open Telemetry: আপনার অ্যাপের ভেতরে কী হচ্ছে (এরর, স্পিড) তা ট্র্যাক করার একটি সিস্টেম।
২. .NET Aspire সেটআপ করা
ভিডিওতে Visual Studio 2026 ব্যবহার করে প্রজেক্টে Aspire সাপোর্ট অ্যাড করা হয়েছে।
Reference: [01:11] রাইট ক্লিক করে "Add .NET Aspire Orchestrator Support" সিলেক্ট করলেই প্রজেক্টে দুটো নতুন পার্ট তৈরি হয়:
-
AppHost: এটা মেইন কন্ট্রোলার যা ঠিক করে কোন সার্ভিস কখন চলবে।
-
ServiceDefaults: এখানে ওপেন টেলিমেট্রি এবং হেলথ চেকের মতো কমন সেটিংস থাকে।
- কঠিন শব্দের ব্যাখ্যা: * Central Package Management (CPM): যখন একটা বড় প্রজেক্টে অনেকগুলো লাইব্রেরি থাকে, তখন সবগুলোর ভার্সন এক জায়গা থেকে কন্ট্রোল করার সিস্টেম।
৩. ডাটাবেস এবং সার্ভিস অ্যাড করা (কোডিং)
মিলান দেখিয়েছেন কীভাবে Aspire-এর মাধ্যমে Postgres ডাটাবেস এবং Seq (লগিং টুল) অ্যাড করতে হয়। এজন্য কিছু NuGet প্যাকেজ ইনস্টল করতে হয়েছে।
Reference: [04:53]
কোড উদাহরণ (AppHost-এ):
C#
var builder = DistributedApplication.CreateBuilder(args);
// Postgres ডাটাবেস অ্যাড করা
var postgres = builder.AddPostgres("postgres")
.WithDataVolume()
.WithPersistence();
var db = postgres.AddDatabase("to-doist");
// Seq (লগিং) অ্যাড করা
var seek = builder.AddSeq("seek");
// এপিআই-এর সাথে এগুলো কানেক্ট করা
builder.AddProject<Projects.WebAPI>("webapi")
.WithReference(db)
.WaitFor(db)
.WithReference(seek)
.WaitFor(seek);
builder.Build().Run();
ব্যাখ্যা:
-
AddPostgres: আপনার জন্য একটি ডাটাবেস কন্টেইনার তৈরি করে দিবে। -
WithReference: এপিআই-কে বলে দিচ্ছে যে তোমার এই ডাটাবেস লাগবে। -
WaitFor: এপিআই চালু হওয়ার আগে ডাটাবেস তৈরি হওয়া পর্যন্ত অপেক্ষা করবে। এটি কানেকশন এরর কমায়।
৪. Aspire ড্যাশবোর্ড এবং মনিটরিং
অ্যাপটি রান করার পর একটি সুন্দর ওয়েব ড্যাশবোর্ড ওপেন হয়।
Reference: [08:03] এই ড্যাশবোর্ড থেকে আপনি দেখতে পাবেন:
-
কোন সার্ভিস চলছে আর কোনটা বন্ধ।
-
সার্ভিসের লগ (Logs) এবং ট্রেস (Traces)।
-
একেকটা রিকোয়েস্ট ডাটাবেসে গিয়ে কতক্ষণ সময় নিচ্ছে।
ভিডিওতে দেখানো হয়েছে কীভাবে Swagger দিয়ে একটি ইউজার রেজিস্টার করার পর সাথে সাথে Aspire ড্যাশবোর্ডে তার ট্র্যাকিং চলে আসে। [09:21]
৫. আবার Docker Compose-এ ফিরে যাওয়া (Full Circle)
Aspire-এর সবচেয়ে মজার ফিচার হলো, আপনি Aspire ব্যবহার করে আবার Docker Compose ফাইল তৈরি করতে পারবেন।
Reference: [10:13] এজন্য Aspire.Hosting.Docker প্যাকেজ ব্যবহার করে কমান্ড লাইনে নিচের কোডটি লিখতে হয়:
Bash
dotnet aspire publish --output docker-compose-artifacts
এটি অটোমেটিক একটি docker-compose.yml ফাইল বানিয়ে দেয়। এর ফলে আপনি লোকালি Aspire-এ ডেভেলপ করবেন, কিন্তু সার্ভারে আগের মতোই Docker Compose দিয়ে ডেপ্লয় করতে পারবেন।
এনালাইসিস এবং আমার চিন্তাভাবনা
কন্টেন্ট ক্রিয়েটর যা বোঝাতে চেয়েছেন: মিলান বোঝাতে চেয়েছেন যে, ডেভেলপারদের জন্য docker-compose.yml ফাইলের জটিল কনফিগারেশন লেখার চেয়ে C# কোড দিয়ে সার্ভিস ম্যানেজ করা অনেক বেশি সহজ এবং ভুল হওয়ার সম্ভাবনা কম। বিশেষ করে Aspire-এর ড্যাশবোর্ড ডেভেলপারদের অনেক সময় বাঁচিয়ে দেয়।
বাস্তবসম্মত ধারণা ও পরামর্শ:
-
কেন ভালো: আপনি যদি .NET ইকোসিস্টেমে কাজ করেন, তবে Aspire ব্যবহার করা আপনার প্রোডাক্টিভিটি অনেক বাড়িয়ে দেবে। এর অটোমেটিক সার্ভিস ডিসকভারি এবং কানেকশন স্ট্রিং ম্যানেজমেন্ট অসাধারণ।
-
বিকল্প: আপনি যদি জাভা বা পাইথন ব্যবহার করেন, তবে Docker Compose-ই সেরা। কিন্তু .NET-এর জন্য Aspire এখন এক ধাপ এগিয়ে।
-
পরামর্শ: নতুন প্রজেক্ট শুরু করলে সরাসরি Aspire দিয়ে শুরু করুন। আর যদি পুরাতন প্রজেক্ট থাকে, তবে ভিডিওর মতো করে ধীরে ধীরে মাইগ্রেট করতে পারেন। তবে মনে রাখবেন, Aspire এখনো কিছুটা নতুন, তাই কিছু প্যাকেজ 'প্রি-রিলিজ' বা প্রিভিউ মোডে থাকতে পারে।
সহজ ভাষায় শেষ কথা: Docker Compose-এ আমাদের অনেক কিছু ম্যানুয়ালি লিখতে হতো, যা অনেক সময় বোরিং ছিল। .NET Aspire সেই কাজগুলোকে C# কোডের আওতায় এনে সহজ এবং আরও পাওয়ারফুল করে তুলেছে।
[
I Replaced Docker Compose With Aspire (Here's Why)
Milan Jovanović · 1.1K views
](http://www.youtube.com/watch?v=eszmPLzxjc0)

মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন
আপনার সমস্যাটি কমেন্ট করে আমাদের জানান :-d