Managed বনাম Self-Hosted: খরচ ও পরিচালনার দায়
Managed vs. Self-Hosted Infrastructure
এই পাঠের সূচিপত্র
এই পাঠে যা শিখবেন
- Operational ownership matrix লেখা
- Managed database-এর সীমা বোঝা
- Vendor portability ও total cost তুলনা করা
সমস্যা দিয়ে শুরু
একটি ছোট দল প্রতি সপ্তাহে PostgreSQL patch, disk alert ও backup job নিয়ে ব্যস্ত। Feature delivery থেমে আছে। Managed database নিলে কাজের কিছু অংশ provider করবে, কিন্তু ভুল query বা deleted customer data নিজে ঠিক করবে না। সিদ্ধান্তটি শুধু monthly instance price দিয়ে নিলে engineers-এর on-call সময়, downtime এবং restore risk হিসাবের বাইরে থেকে যায়।
সহজ করে বুঝি
Self-hosted service-এ operating system, database engine, backup ও availability-এর অধিকাংশ দায় নিজের। Managed service কিছু দায় provider-এর কাছে দেয়; দায়ের সীমানা product অনুযায়ী বদলায়। Data model, access control, retention, query efficiency এবং recovery objective সাধারণত application team's সিদ্ধান্তই থাকে। Contract ও configuration না দেখে automatic backup, cross-zone failover বা unlimited scale ধরে নেবেন না।
পরিচিত একটি উপমা
নিজে গাড়ি কিনে চালানো বনাম driver-সহ ভাড়া নেওয়ার মতো। Driver রাস্তা সামলাতে পারেন, কিন্তু কোথায় যাবেন, কারা উঠবেন এবং মূল্যবান জিনিস কোথায় রাখবেন তা যাত্রীর সিদ্ধান্ত। Service নিলে দায় বদলায়, দায় শূন্য হয় না।
নকশাটি দেখুন
Diagram লোড হচ্ছে…
Diagram-এর text flow দেখুন
flowchart TD T[Application team] --> M[Schema access and SLO] P[Provider team] --> E[Engine host and managed operations] M --> D[(Managed database)] E --> D D --> R[Configured backup and restore]
দুই দলের arrow একই database-এ এসেছে, কারণ ownership shared। Application team query এবং permissions ঠিক করে, provider documented engine operations চালায়। Backup configuration থেকে restore rehearsal-এ যেতে হয়। Engine endpoint বদলে failover হলে Laravel connection pool ও retry আচরণ কী করবে, সেটিও নিজের পরীক্ষার বিষয়।
PHP ও Laravel-এ প্রয়োগ
একটি diagnostic Artisan command-এর handle method fragment। Database connection runtime secret থেকে আসবে। Production-এ public route হিসেবে query প্রকাশ করবেন না। এটি connection পরীক্ষা করে, backup বা durability certify করে না। Exception reporter credentials print করছে কি না যাচাই করুন।
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
try {
DB::select('select 1');
Log::info('database_connectivity_checked');
} catch (\Throwable $exception) {
report($exception);
throw $exception;
}সুবিধা, সীমাবদ্ধতা ও trade-off
Managed service team-এর toil কমাতে পারে এবং documented operational features দেয়। বিনিময়ে service premium, engine limitations, region dependency ও migration cost থাকে। Self-hosting fine-grained control দেয় কিন্তু skilled staffing দরকার। Small workload-এ instance charge বড় মনে হলেও একজন engineer-এর repeated incident time যোগ করলে total cost তুলনা বদলাতে পারে।
সাধারণ ভুল
- Managed মানেই সব backup নিজে পরীক্ষা হয়েছে ভাবা।
- Provider SLA-কে নিজের end-user SLO হিসেবে কপি করা।
- Export ও exit plan ছাড়া proprietary feature নেওয়া।
আরও একটু গভীরে
Responsibility matrix-এ patch window, version upgrade, backup retention, point-in-time recovery, encryption keys এবং incident escalation লিখুন। Billing quota ও account suspension-ও availability risk। Portable schema থাকলেও operational migration সহজ হয় না: data size, replication lag, cutover এবং application credentials rotation rehearsal দরকার। Failure exercise-এ provider support-এর বাস্তব response path পরীক্ষা করুন।
মনে রাখুন
Managed service ownership সরায়; application correctness, configuration ও tested recovery-এর দায় বহাল থাকে।
নিজে চেষ্টা করুন
একই PostgreSQL workload-এর self-hosted ও managed বিকল্প তুলনা করুন। Compute, storage, backup, egress, on-call এবং upgrade সময় আলাদা লিখুন। কোন failure কে সামলাবে তার পাঁচ সারির responsibility matrix তৈরি করুন।
নিজের বোঝা যাচাই করুন
1. Managed নিলে DBA কাজ শেষ?
না। Query design, indexes, permissions ও data lifecycle এখনও application-side কাজ। Provider-এর scope পরিষ্কার করে পড়তে হবে।
2. SLA কি loss ঠেকায়?
SLA সাধারণত service commitment ও remedy বর্ণনা করে; নিজের data recovery plan-এর বিকল্প নয়।
3. সবচেয়ে সস্তা instance-ই সেরা?
Total cost-এ engineering time, downtime, backup ও traffic খরচ যোগ হয়। শুধু sticker price অসম্পূর্ণ তুলনা।
4. Vendor lock-in কীভাবে কমাব?
Standard interfaces, export rehearsal ও migration runbook রাখুন। Portability-এর জন্যও বাস্তব সময় ও budget লাগে।
5. প্রথম test কী হবে?
নতুন isolated environment-এ restore করে application-level data যাচাই করুন। Connectivity test কেবল endpoint reachable প্রমাণ করে।
আরও পড়ুন
এই পাঠের কুইজ
এই পাঠ থেকে ২টি প্রশ্ন। উত্তর দিয়ে ব্যাখ্যা দেখুন; অধ্যায়ের কুইজ আলাদাভাবে দিতে হবে।
এই পাঠের ২টি প্রশ্নের উত্তর দিন। পাস করতে দুটিই সঠিক হতে হবে।
জমা দেওয়ার পর সঠিক উত্তর ও ব্যাখ্যা দেখবেন। ফলাফল এই ব্রাউজারে সংরক্ষিত থাকবে। অনুশীলনের ফল অধ্যায় সম্পন্নের হিসাবে যোগ হয় না।
অগ্রগতি এই ব্রাউজারে সংরক্ষিত থাকে। শুধু পাঠ খুললে সম্পন্ন হয় না।