সরাসরি পর্বে যান
পর্ব ০৪ · ৮১-এর মধ্যে · মডিউল ১

Cloud-এর অর্থনীতি — CapEx বনাম OpEx, TCO আর elasticity-র হিসাব

Cloud Economics — CapEx vs OpEx, TCO and the Arithmetic of Elasticity

Taught in Bangla, this lesson compares owning and renting through CapEx, OpEx and depreciation, builds a full TCO table with hidden costs on both sides, and works out the break-even month and break-even utilisation by hand. It uses an in-page calculator, shows how peak-to-average ratio sets the value of elasticity, and explains with numbers when cloud costs more.

এই পর্বে যা শিখবেন

  • CapEx, OpEx আর depreciation-এর পার্থক্য সহজ কথায় বলতে পারা
  • দুই পক্ষের লুকানো খরচসহ একটি পূর্ণ TCO টেবিল বানানো
  • Break-even মাস আর break-even utilisation হাতে হিসাব করা
  • Peak-to-average ratio দেখে elasticity-র মূল্য বোঝা
  • কখন cloud বেশি খরচের, সেটি সংখ্যা দিয়ে দেখানো
  • AI-এর দেওয়া খরচের হিসাব আর cloud কোড যাচাই করা

১ · বাড়ি কিনবেন, না ভাড়া নেবেন — CapEx আর OpEx

আগের তিনটি পর্বে দেখেছেন cloud কী, কে কী সামলায়, আর কোথায় চালানো যায়। এবার সবচেয়ে বাস্তব প্রশ্ন: খরচ কত, আর কোন পথে কম? এই প্রশ্নের ভুল উত্তরে অনেক দল দুই দিকেই ঠকে। কেউ দরকার ছাড়া server কেনে, কেউ সারাজীবন বেশি ভাড়া গোনে।

ঢাকায় একটি ফ্ল্যাটের কথা ভাবুন। কিনলে শুরুতে একসাথে বড় টাকা লাগে। তারপর ভাড়া নেই, কিন্তু সার্ভিস চার্জ, মেরামত আর রঙ করার খরচ আপনার। ভাড়া নিলে শুরুতে সামান্য অগ্রিম, তারপর মাসে মাসে টাকা। চাকরি বদলে চট্টগ্রাম গেলে বাসা ছেড়ে দিলেই হলো। আবার একই বাসায় বিশ বছর থাকলে ভাড়ার মোট টাকা হয়তো দামের কাছাকাছি চলে যায়। Server আর cloud-এর হিসাবও ঠিক এমন।

CapEx (capital expenditure, মূলধনী ব্যয়) হলো এমন খরচ, যা দিয়ে বহু বছর কাজে লাগে এমন সম্পদ কেনা হয়। যেমন server, rack আর network switch. OpEx (operating expenditure, পরিচালন ব্যয়) হলো দৈনন্দিন চালানোর খরচ। যেমন বিদ্যুৎ বিল, বেতন আর cloud-এর মাসিক বিল।

বিষয়CapEx (নিজের server)OpEx (cloud ভাড়া)
টাকা কখন বের হয়শুরুতে, একসাথেব্যবহারের সাথে, মাসে মাসে
মালিকানাআপনার সম্পদকিছুই আপনার নয়
ভুল অনুমানের ফলServer অলস পড়ে থাকেVM বন্ধ করলেই বিল থামে
নতুন ক্ষমতা পেতে সময়কেনা, আনা, বসানো: সপ্তাহ থেকে মাসকয়েক মিনিট
দীর্ঘ মেয়াদে ঝুঁকিপুরোনো হয়ে যাওয়াবিল বেড়ে যাওয়া, ডলারের দাম

এই পার্থক্য শুধু হিসাবরক্ষকের বিষয় নয়। নতুন একটি দলের হাতে ধরুন $৬০,০০০ নেই। তাহলে CapEx-এর পথ শুরুতেই বন্ধ। আবার যে দলের পণ্য আদৌ চলবে কি না অজানা, তার জন্য শুরুতে বড় কেনাকাটা জুয়ার মতো। Cloud এই ঝুঁকি কমায়, কারণ ব্যর্থ হলে শুধু বন্ধ করে দিলেই চলে। ২০০৬ সালে Amazon S3 আর EC2 আসার পর ছোট দলের জন্য এই সুযোগটিই সবচেয়ে বড় পরিবর্তন ছিল। আগ্রহীরা Operating Systems কোর্সের cloud OS পর্ব-এ ভেতরের কাজ দেখে নিতে পারেন।

একটি সাবধানতা: “Cloud মানেই OpEx” কথাটি পুরো ঠিক নয়। এক বা তিন বছরের অঙ্গীকার (commitment discount) নিলে আপনি ভাড়া নিয়েও একরকম আগাম দায় নিচ্ছেন। এই খরচ হিসাবের খাতায় কীভাবে দেখানো হবে, সেটি দেশের নিয়ম আর চুক্তির ওপর নির্ভর করে। এই সিদ্ধান্ত হিসাবরক্ষকের সাথে কথা বলে নিন।

২ · Depreciation — server-এর দাম বছরে বছরে ভাগ করা

$৬০,০০০-এর server কিনলে টাকাটি একদিনে বের হয়। কিন্তু server তো কাজ করবে বহু বছর। তাহলে প্রথম মাসে কি খরচ $৬০,০০০, আর পরের মাসে শূন্য? এভাবে দেখলে ব্যবসার ছবি বিকৃত হয়। তাই হিসাবে দামটি ব্যবহারের বছরগুলোতে ভাগ করে নেওয়া হয়। একেই বলে depreciation বা অবচয়।

একটি CNG কিনে দশ বছর চালালে চালক মনে মনে প্রতি মাসে একটি অংশ সরিয়ে রাখেন, কারণ গাড়িটি প্রতিদিন একটু করে পুরোনো হচ্ছে। সেই টাকা পকেট থেকে সেদিন বের হয় না, কিন্তু খরচটি সত্যি।

সবচেয়ে সহজ পদ্ধতি হলো straight-line: সমান ভাগে ভাগ করা। ধরা যাক server-এর useful life ৫ বছর আর শেষে বিক্রির দাম শূন্য:

60,000 / 5 = $12,000 প্রতি বছরে
60,000 / 60 = $1,000 প্রতি মাসে

এখানে দুটি আলাদা চোখ আছে, আর দুটিই পরে কাজে লাগবে।

  • নগদের চোখ (cash view): টাকা কবে বের হলো। Break-even হিসাবে এটি লাগে।
  • হিসাবের চোখ (accounting view): প্রতি মাসে সম্পদের কত অংশ ক্ষয় হলো। Cost per hour তুলনায় এটি লাগে।

৩ · TCO — বিলের যে সারিগুলো চোখে পড়ে না

TCO (total cost of ownership, মালিকানার মোট খরচ) মানে একটি নির্দিষ্ট সময়ে একটি সমাধানের সব খরচের যোগফল। সাধারণ ভুলটি হলো শুধু server-এর দাম বনাম VM-এর দাম মেলানো। সেটি অনেকটা বাড়ির দাম আর ভাড়া মিলিয়ে সার্ভিস চার্জ, রং আর ইউটিলিটি বিল ভুলে যাওয়ার মতো।

নিজের server-এর লুকানো খরচ

বিদ্যুৎ ও cooling: server যত বিদ্যুৎ খায়, ঠান্ডা রাখতেও তার ওপর বাড়তি লাগে। জায়গা: rack, internet, UPS আর load-shedding-এর জন্য generator. Staff: যিনি রাত দুটোয় নষ্ট disk বদলাবেন। বাড়তি ক্ষমতা: হঠাৎ নষ্ট হওয়া বা load বাড়ার জন্য অতিরিক্ত server.

বিল আসে আলাদা আলাদা খাতে

Cloud-এর লুকানো খরচ

Data transfer: cloud থেকে বাইরে ডেটা গেলে সাধারণত টাকা লাগে। Support: দ্রুত সাহায্যের প্ল্যান অনেক সময় আলাদা কিনতে হয়। অলস resource: পরীক্ষার পর ভুলে চলতে থাকা VM, disk আর snapshot. Staff: cloud-ও নিজে নিজে চলে না।

বিল আসে সব মিলিয়ে এক কাগজে

Cooling-এর বোঝা মাপার একটি প্রচলিত সূচক হলো PUE (power usage effectiveness). এটি ডেটা সেন্টারের মোট বিদ্যুৎকে IT যন্ত্রের বিদ্যুৎ দিয়ে ভাগ করে। PUE ১.৫ মানে server যদি ১ kW খায়, পুরো ঘর খায় ১.৫ kW. বড় cloud provider-রা সাধারণত ছোট server room-এর চেয়ে অনেক কম PUE দাবি করেন।

এই পর্বের ধরে নেওয়া উদাহরণ

একটি কাল্পনিক অনলাইন বাজার অ্যাপের পূর্ণ load সামলাতে ১০টি server লাগে। নিচের সব দাম অনুমিত, গোল সংখ্যা। এগুলো কোনো provider-এর আসল দাম নয়। নিজের হিসাবের আগে provider-এর pricing পাতা আর স্থানীয় বিক্রেতার দরপত্র দেখে নিন। মাস ধরা হয়েছে ৩০ দিনে, অর্থাৎ ৭২০ ঘণ্টা।

নিজের serverঅনুমিত খরচCloud VMঅনুমিত খরচ
১২টি server (১০টি + ২টি বাড়তি), প্রতিটি $৫,০০০$৬০,০০০ একবার১০টি VM, ঘণ্টায় $০.৫০$৩,৬০০/মাস
বিদ্যুৎ ও cooling$৪৫০/মাসএকটি ভুলে চলা VM (অলস)$৩৬০/মাস
জায়গা, internet, UPS$৬৫০/মাসStorage$২০০/মাস
Staff-এর অংশ$১,২০০/মাসData transfer$৩০০/মাস
মেরামত ও যন্ত্রাংশ$২০০/মাসSupport$২৪০/মাস
Staff-এর অংশ$৩০০/মাস
মোট চলতি খরচ$২,৫০০/মাসমোট$৫,০০০/মাস

বিদ্যুতের সংখ্যাটি হাওয়া থেকে আসেনি। ধরে নিন প্রতিটি server গড়ে ৩৫০ W খায়, PUE ১.৫ আর প্রতি kWh $০.১০। তাহলে 12 × 0.35 kW × 1.5 × 720 h × $0.10 = $453.6, যাকে গোল করে $৪৫০ ধরা হয়েছে। এবার ৩ বছরের (৩৬ মাস) TCO টেবিলটি এক সারি করে ভরি। প্রতি ধাপে নিচের হিসাব মিলিয়ে নিন।

৩৬ মাসের খরচ (সব দাম অনুমিত)
নিজের: Hardware
নিজের: বিদ্যুৎ ও cooling
নিজের: জায়গা, internet, UPS
নিজের: Staff
নিজের: মেরামত
নিজের মোট
Cloud: Compute
Cloud: অলস VM
Cloud: Storage
Cloud: Data transfer
Cloud: Support
Cloud: Staff
Cloud মোট
  1. Hardware একবারই। ১২ × $৫,০০০ = $৬০,০০০. এই টাকা প্রথম দিনেই বের হয়। পরের সারিগুলো মাসিক, তাই সেগুলো ৩৬ দিয়ে গুণ হবে।
  2. বিদ্যুৎ ও cooling. $৪৫০ × ৩৬ = $১৬,২০০. নিজের মোট এখন $৭৬,২০০।
  3. জায়গা, internet, UPS. $৬৫০ × ৩৬ = $২৩,৪০০. নিজের মোট এখন $৯৯,৬০০।
  4. Staff. $১,২০০ × ৩৬ = $৪৩,২০০. খেয়াল করুন, এই সারিটি hardware-এর পরেই সবচেয়ে বড়। নিজের মোট এখন $১৪২,৮০০।
  5. মেরামত ও যন্ত্রাংশ. $২০০ × ৩৬ = $৭,২০০. নিজের পক্ষের মোট দাঁড়াল $১৫০,০০০, অর্থাৎ $৬০,০০০ + ৩৬ × $২,৫০০।
  6. এবার cloud-এর compute. ১০ × $০.৫০ × ৭২০ = $৩,৬০০ প্রতি মাসে। ৩৬ মাসে $১২৯,৬০০. দাম-তুলনার ভুলটি এখানেই থামে, আর আসল হিসাব এখান থেকে শুরু।
  7. অলস VM. একটি VM ভুলে চলছে: $৩৬০ × ৩৬ = $১২,৯৬০. এই টাকায় কোনো কাজ হয়নি। Cloud মোট এখন $১৪২,৫৬০।
  8. Storage আর data transfer. $২০০ × ৩৬ = $৭,২০০ আর $৩০০ × ৩৬ = $১০,৮০০. Cloud মোট এখন $১৬০,৫৬০।
  9. Support আর staff. $২৪০ × ৩৬ = $৮,৬৪০ আর $৩০০ × ৩৬ = $১০,৮০০. Cloud মোট দাঁড়াল $১৮০,০০০, অর্থাৎ ৩৬ × $৫,০০০।
  10. তুলনা. দিনরাত পূর্ণ load-এ ৩ বছরে নিজের server $১৫০,০০০, cloud $১৮০,০০০. পার্থক্য $৩০,০০০। কিন্তু মনে রাখবেন, এই উদাহরণে load কখনো কমে না। পরের অংশগুলোতে এই শর্তটিই বদলাবে।

৪ · Break-even — কোন মাসে কে এগিয়ে

Break-even মানে সেই মুহূর্ত, যেখানে দুই পথের মোট খরচ সমান। নিজের server-এ শুরুতে বড় খরচ, কিন্তু মাসিক খরচ কম। Cloud-এ শুরু শূন্য থেকে, কিন্তু মাসিক খরচ বেশি। তাই প্রতি মাসে ব্যবধান একটু করে কমে।

n = CapEx / (cloud-এর মাসিক − নিজের মাসিক)
n = 60,000 / (5,000 − 2,500) = 24 মাস

সূত্রটি মুখস্থ করার দরকার নেই। প্রতি মাসে কেনার পথ $২,৫০০ বাঁচায়। $৬০,০০০ শোধ হতে কয় মাস লাগবে? এটুকুই প্রশ্ন। নিচে মাসে মাসে এগিয়ে দেখুন।

মোট খরচ, শুরু থেকে এখন পর্যন্ত
মাস
নিজের server
Cloud
নিজের − cloud
প্রতি █ = $15,000অনুমিত দাম

            
  1. মাস ০. Server কেনা হলো। নিজের পথে খরচ $৬০,০০০, cloud-এ শূন্য। আজকের হিসাবে cloud অনেক এগিয়ে।
  2. মাস ৬. নিজের পথে $৬০,০০০ + ৬ × $২,৫০০ = $৭৫,০০০. Cloud-এ ৬ × $৫,০০০ = $৩০,০০০. ব্যবধান কমে হলো $৪৫,০০০।
  3. মাস ১২. $৯০,০০০ বনাম $৬০,০০০। প্রতি ৬ মাসে ব্যবধান ঠিক $১৫,০০০ করে কমছে, কারণ মাসে $২,৫০০ সাশ্রয় হচ্ছে।
  4. মাস ১৮. $১০৫,০০০ বনাম $৯০,০০০। ব্যবধান আর মাত্র $১৫,০০০।
  5. মাস ২৪: break-even. দুই পথেই মোট $১২০,০০০. এই মাসের আগে থামলে cloud সস্তা ছিল। পরে থাকলে নিজের server সস্তা।
  6. মাস ৩০. $১৩৫,০০০ বনাম $১৫০,০০০। এখন নিজের server $১৫,০০০ এগিয়ে।
  7. মাস ৩৬. $১৫০,০০০ বনাম $১৮০,০০০, ঠিক TCO টেবিলের সংখ্যা। নিজের server $৩০,০০০ এগিয়ে। শর্ত হলো load পুরো সময় থাকবে, আর hardware ভালো থাকবে।

মোট খরচের দুই রেখা, মাস ২৪-এ দেখা

Cumulative cost: owned servers vs rented VMs (assumed prices)

মাস অনুযায়ী মোট খরচ, break-even মাস ২৪ $0$60k$120k$180k 0122436 মাস (month) Break-even নিজের server Cloud
ছবি ৪.১ — রেখার ঢাল মাসিক খরচ। Cloud-এর ঢাল বেশি, নিজের server-এর শুরু উঁচুতে।

এবার নিজে সংখ্যা বদলে দেখুন। নিচের ক্যালকুলেটরটি পাতার ভেতরেই চলে, কোনো account লাগে না। own আর cld-এর দাম বদলে “চালিয়ে দেখুন” চাপুন।

// TCO calculator: all prices are ASSUMED round numbers. Change them and Run.
const own = { servers: 12, pricePerServer: 5000,   // 10 needed + 2 spare
  power: 450, space: 650, staff: 1200, maint: 200 };   // $ per month
const cld = { vms: 10, perHour: 0.50, idle: 360,        // idle = forgotten VM
  storage: 200, transfer: 300, support: 240, staff: 300 };
const HOURS = 720, YEARS = 3;        // 30-day month

const capex = own.servers * own.pricePerServer;
const ownM = own.power + own.space + own.staff + own.maint;
const compute = cld.vms * cld.perHour * HOURS;
const cldM = compute + cld.idle + cld.storage + cld.transfer + cld.support + cld.staff;
const usd = (x) => (x < 0 ? "-$" : "$") + Math.abs(Math.round(x)).toLocaleString("en-US");

console.log("capex " + usd(capex) + "  own/month " + usd(ownM) + "  cloud/month " + usd(cldM));
console.log("month      own    cloud      gap");
for (const m of [0, 6, 12, 18, 24, 30, 36]) {
  const a = capex + ownM * m, b = cldM * m;
  console.log(String(m).padStart(5) + usd(a).padStart(9) + usd(b).padStart(9) + usd(a - b).padStart(9));
}
const saving = cldM - ownM;
if (saving <= 0) console.log("cloud is cheaper every month: buying never pays back");
else {
  const exact = capex / saving;
  console.log("break-even month = " + capex + " / " + saving + " = " + exact.toFixed(2)
    + " -> month " + Math.ceil(exact));
}
const t = YEARS * 12;
console.log(YEARS + "-year TCO: own " + usd(capex + ownM * t) + ", cloud " + usd(cldM * t));
capex $60,000  own/month $2,500  cloud/month $5,000
month      own    cloud      gap
    0  $60,000       $0  $60,000
    6  $75,000  $30,000  $45,000
   12  $90,000  $60,000  $30,000
   18 $105,000  $90,000  $15,000
   24 $120,000 $120,000       $0
   30 $135,000 $150,000 -$15,000
   36 $150,000 $180,000 -$30,000
break-even month = 60000 / 2500 = 24.00 -> month 24
3-year TCO: own $150,000, cloud $180,000

আউটপুটের শেষ দুই লাইনই সিদ্ধান্তের সংক্ষিপ্তসার: break-even মাস ২৪, আর ৩ বছরে $৩০,০০০-এর ব্যবধান। এবার পরীক্ষা করে দেখুন: cld.idle শূন্য করলে মাসিক সাশ্রয় $২,১৪০ হয়, ফলে break-even পিছিয়ে যায়। own.staff কমালে উল্টোটা ঘটে: সাশ্রয় বাড়ে, break-even এগিয়ে আসে। যে সংখ্যা সামান্য বদলালেই সিদ্ধান্ত উল্টে যায়, সেটি নিয়েই সবচেয়ে সাবধান হতে হবে। এই অভ্যাসকে বলে sensitivity analysis.

৫ · টাকার সময়মূল্য — এক ধাপের হিসাব

আজকের $১০০ আর এক বছর পরের $১০০ কি সমান? না। আজকের টাকা ব্যাংকে রাখলে সুদ পাবেন, ব্যবসায় খাটালে লাভ পাবেন। একেই বলে time value of money. তাই শুরুতে $৬০,০০০ খরচ করা, আর পরে সেই টাকা ধীরে ধীরে বাঁচানো, পুরোপুরি সমান হিসাব নয়।

ধাপ একটিই। ভবিষ্যতের টাকাকে আজকের মূল্যে আনতে discount rate r দিয়ে ভাগ করতে হয়:

present value = future value / (1 + r)^n

ধরা যাক r = ১০% বছরে, এটিও একটি অনুমান। এক বছর পরের $১,১০০-এর আজকের মূল্য 1,100 / 1.10 = $1,000. আমাদের উদাহরণে কেনার পথ বছরে $৩০,০০০ বাঁচায়। সরলতার জন্য ধরে নিন সাশ্রয়টি প্রতি বছর শেষে আসে।

// Does buying still win after the time value of money? (assumed 10% a year)
const capex = 60000, savingPerYear = 30000, rate = 0.10;

let plain = -capex, pv = -capex;
console.log("year  saving  factor  present value  running total");
for (let y = 1; y <= 5; y++) {
  const factor = 1 / Math.pow(1 + rate, y);
  const value = savingPerYear * factor;
  plain += savingPerYear;
  pv += value;
  console.log(String(y).padStart(4) + String(savingPerYear).padStart(8)
    + factor.toFixed(3).padStart(8) + Math.round(value).toString().padStart(15)
    + Math.round(pv).toString().padStart(15));
  if (y === 3) console.log("  -> after 3 years: plain +" + plain + ", discounted +" + Math.round(pv));
}

// Monthly version: first month where discounted savings repay the purchase
const r = Math.pow(1 + rate, 1 / 12) - 1;
let sum = 0, m = 0;
while (sum < capex) { m++; sum += (savingPerYear / 12) / Math.pow(1 + r, m); }
console.log("plain break-even: month 24, discounted break-even: month " + m);
year  saving  factor  present value  running total
   1   30000   0.909          27273         -32727
   2   30000   0.826          24793          -7934
   3   30000   0.751          22539          14606
  -> after 3 years: plain +30000, discounted +14606
   4   30000   0.683          20490          35096
   5   30000   0.621          18628          53724
plain break-even: month 24, discounted break-even: month 27

তিন বছরে সরল হিসাবে লাভ +$৩০,০০০, কিন্তু আজকের মূল্যে মাত্র +$১৪,৬০৬। শেষ লাইনটি মাসিক হিসাব থেকে এসেছে: break-even মাস ২৪ থেকে সরে গেছে মাস ২৭-এ। মোট চিত্র বদলায়নি, কিন্তু কেনার সুবিধা অনেকটাই কমেছে। Discount rate যত বেশি, যেমন যখন ধার করা টাকার সুদ চড়া, আগাম কেনাকাটা তত কম আকর্ষণীয়।

৬ · আকারের সুবিধা আর utilisation — আসল সিদ্ধান্তকারী

Cloud provider-ও তো server কেনেন, আবার লাভও করেন। তাহলে কখনো কখনো সস্তা হন কীভাবে? উত্তরের প্রথম অংশ economies of scale, মানে আকারের সুবিধা। বিয়েবাড়ির ক্যাটারিং ভাবুন। পাঁচজনের জন্য বাজার করলে এক দাম, পাঁচশো জনের জন্য পাইকারি দাম। বড় provider লাখে লাখে server অর্ডার দেন, বড় চুক্তিতে বিদ্যুৎ কেনেন, আর এক দল engineer অসংখ্য server সামলান।

উত্তরের দ্বিতীয় অংশ আরও গুরুত্বপূর্ণ: utilisation, অর্থাৎ কেনা ক্ষমতার কত ভাগ সত্যিই কাজে লাগছে। আলাদা আলাদা গ্রাহকের ব্যস্ত সময় সাধারণত একসাথে পড়ে না। তাই provider একই মেশিন দিয়ে অনেকের চাহিদা মেটাতে পারেন। একে বলে statistical multiplexing.

একটি খালি লঞ্চ চালালেও ডিজেল, মাঝি আর ঘাটের খরচ একই থাকে। অর্ধেক খালি লঞ্চে প্রতিটি যাত্রীর ওপর খরচ দ্বিগুণ পড়ে। Server-ও তেমন। নিজের server-এর মাসিক খরচ প্রায় স্থির, কাজ হোক বা না হোক।

তাই তুলনা করতে হবে কাজে লাগা প্রতি ঘণ্টার খরচে (cost per useful hour). মাসে পূর্ণ ক্ষমতা ১০ × ৭২০ = ৭,২০০ server-ঘণ্টা। এখানে দীর্ঘ মেয়াদের চোখ লাগবে, তাই মাসিক খরচে depreciation যোগ হবে। ৫ বছর useful life ধরলে:

  • নিজের server: মাসে $১,০০০ + $২,৫০০ = $৩,৫০০, কাজ হোক বা না হোক। ঘণ্টাপ্রতি 3,500 / (7,200 × U), এখানে U হলো utilisation.
  • Cloud (ব্যবহার অনুযায়ী VM বাড়ে-কমে): compute 3,600 × U, আর বাকি স্থির $১,৪০০। ঘণ্টাপ্রতি 0.50 + 1,400 / (7,200 × U).

দুটি সমান ধরলে break-even utilisation পাওয়া যায়:

3,500 = 3,600 × U + 1,400
U = 2,100 / 3,600 = 0.583 অর্থাৎ ৫৮.৩%

Utilisation বাড়লে কাজের ঘণ্টার খরচ কমে

Cost per useful server-hour vs utilisation (assumed prices)

Utilisation অনুযায়ী কাজের ঘণ্টাপ্রতি খরচ $0$1$2 20%40%60%80%100% Utilisation ৫৮.৩%: সমান, $০.৮৩ নিজের server Cloud
ছবি ৪.২ — বাঁ দিকে নিজের server খুব দামি, কারণ স্থির খরচ অল্প কাজের ওপর পড়ে। ডান দিকে সে সস্তা।
// Cost per USEFUL server-hour as utilisation changes (assumed prices)
const FLEET = 10, HOURS = 720, usefulMax = FLEET * HOURS;
const capex = 60000, ownRun = 2500;      // $ and $/month
let lifeYears = 5;                       // try 3 or 4 as well
const cloudRate = 0.50, cloudFixed = 1400;   // $/VM-hour, $/month

function curve(life) {
  const ownM = capex / (life * 12) + ownRun;        // depreciation + running
  return {
    ownM,
    own: (u) => ownM / (usefulMax * u),
    cloud: (u) => (cloudRate * usefulMax * u + cloudFixed) / (usefulMax * u),
    breakEven: (ownM - cloudFixed) / (cloudRate * usefulMax),
  };
}

const c = curve(lifeYears);
console.log("own per month $" + c.ownM.toFixed(0) + "  (life " + lifeYears + " years)");
console.log(" util    own/hr  cloud/hr  cheaper  own bar (* = $0.25)");
for (const u of [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) {
  const a = c.own(u), b = c.cloud(u);
  console.log((u * 100).toFixed(0).padStart(4) + "%" + a.toFixed(3).padStart(10)
    + b.toFixed(3).padStart(10) + (a < b ? "    own  " : "    cloud")
    + "  " + "*".repeat(Math.round(a / 0.25)));
}
console.log("break-even utilisation = " + (c.breakEven * 100).toFixed(1) + "%");
for (const life of [3, 4, 5, 6])
  console.log("  hardware life " + life + " years -> " + (curve(life).breakEven * 100).toFixed(1) + "%");
own per month $3500  (life 5 years)
 util    own/hr  cloud/hr  cheaper  own bar (* = $0.25)
  10%     4.861     2.444    cloud  *******************
  20%     2.431     1.472    cloud  **********
  30%     1.620     1.148    cloud  ******
  40%     1.215     0.986    cloud  *****
  50%     0.972     0.889    cloud  ****
  60%     0.810     0.824    own    ***
  70%     0.694     0.778    own    ***
  80%     0.608     0.743    own    **
  90%     0.540     0.716    own    **
 100%     0.486     0.694    own    **
break-even utilisation = 58.3%
  hardware life 3 years -> 76.9%
  hardware life 4 years -> 65.3%
  hardware life 5 years -> 58.3%
  hardware life 6 years -> 53.7%

৫০% থেকে ৬০%-এর মাঝে “cheaper” কলাম উল্টে যায়, আর সঠিক বিন্দু ৫৮.৩%. শেষের চার লাইন দেখায়, hardware-এর আয়ু ধরা হিসাব কতটা বদলে দেয়: ৩ বছরে ৭৬.৯%, ৬ বছরে ৫৩.৭%. lifeYears বদলে পুরো টেবিলটিও দেখে নিন।

Utilisation-এর হিসাবে একটি সাধারণ ভুল আছে। CPU ১৫% চলছে দেখে “৮৫% অপচয়” ধরে নেওয়া ঠিক নয়। ব্যস্ততার সময়ের জন্য কিছুটা ফাঁকা রাখা সুস্থ নকশার অংশ। ক্ষমতা হিসাবের গোড়ার কথা আছে System Design কোর্সের estimation পর্বে।

৭ · Elasticity — ঈদের আগের ভিড়ের হিসাব

ঈদের আগে বাসের টিকিটের ভিড় মনে করুন। বছরের কয়েকটি দিনের জন্য পরিবহন কোম্পানি কি সারা বছর দ্বিগুণ বাস কিনে রাখবে? রাখলে বাকি সময় বাস অলস। না রাখলে যাত্রী ফিরে যায়। Elasticity মানে চাহিদা বুঝে ক্ষমতা বাড়ানো ও কমানো, আর এই “কমানো”-তেই আসল সাশ্রয়। NIST-এর সংজ্ঞায় একে rapid elasticity বলা হয়েছে, যা cloud computing-এর পাঁচ বৈশিষ্ট্যের একটি।

Load কতটা ওঠানামা করে, সেটি এক সংখ্যায় ধরে peak-to-average ratio (PAR): সর্বোচ্চ চাহিদাকে গড় চাহিদা দিয়ে ভাগ। নিজের server কিনতে হয় peak-এর মাপে, কারণ ভিড়ের সময় তো থাকতেই হবে। তখন utilisation দাঁড়ায় U = 1 / PAR.

একটি দিনের হিসাব দেখুন। অ্যাপটিকে ৪ ঘণ্টা করে ৬টি ভাগে দেখা হচ্ছে। এখানে দুই পক্ষেই ঘণ্টায় $০.৫০ ধরা হয়েছে, যাতে শুধু ক্ষমতার পার্থক্য চোখে পড়ে।

সার্ভারের চাহিদা ও ক্ষমতা (অনুমিত)
সময়
চাহিদা
Fixed ক্ষমতা
Elastic ক্ষমতা
অলস server-ঘণ্টা (মোট)
Fixed-এর খরচ (মোট)
Elastic-এর খরচ (মোট)
  1. রাত ১২টা থেকে ৪টা. চাহিদা মাত্র ১টি server. Fixed পক্ষে ১০টিই চলছে, তাই ৪ ঘণ্টায় ৯ × ৪ = ৩৬ server-ঘণ্টা অলস। Elastic পক্ষের খরচ ১ × ৪ × $০.৫০ = $২, আর fixed পক্ষের ১০ × ৪ × $০.৫০ = $২০.
  2. ভোর ৪টা থেকে ৮টা. একই চাহিদা। অলস আরও ৩৬, মোট ৭২। মোট খরচ $৪০ বনাম $৪।
  3. সকাল ৮টা থেকে ১২টা. চাহিদা ৩। Elastic পক্ষে ৩টি চলে, ৩ × ৪ × $০.৫০ = $৬ যোগ হয়ে মোট $১০. অলস যোগ হয় ৭ × ৪ = ২৮, মোট ১০০।
  4. দুপুর ১২টা থেকে ৪টা. চাহিদা ৪। Elastic-এর মোট $১৮, fixed-এর মোট $৮০। অলস মোট ১২৪।
  5. বিকেল ৪টা থেকে ৮টা. চাহিদা ৫। Elastic-এর মোট $২৮, fixed-এর মোট $১০০। অলস মোট ১৪৪।
  6. রাত ৮টা থেকে ১২টা: peak. চাহিদা ১০। এবার দুই পক্ষই ১০টি চালাচ্ছে, অলস নেই। এই ৪ ঘণ্টার জন্যই fixed পক্ষ সারাদিন ১০টি ধরে রেখেছিল। মোট $১২০ বনাম $৪৮।
  7. দিনের হিসাব. কাজ হয়েছে ৯৬ server-ঘণ্টা, গড় ৯৬ / ২৪ = ৪। PAR = ১০ / ৪ = ২.৫, আর fixed পক্ষের utilisation ৯৬ / ২৪০ = ৪০%. অলস ১৪৪ / ২৪০ = ৬০%. একই দামে elastic খরচ করেছে $৪৮, fixed $১২০। বাস্তবে নতুন VM চালু হতে সময় লাগে, তাই সামান্য আগেই বাড়াতে হয়; চাহিদা দেখে VM নিজে থেকে বাড়ানো-কমানোর এই ব্যবস্থাকে বলে autoscaling, যা পর্ব ১৭-এর বিষয়।

এবার সাধারণ নিয়মটি লিখি। Fixed ক্ষমতার ঘণ্টাপ্রতি দাম p_f, elastic-এর p_e, আর সময় T ঘণ্টা।

Fixed = Peak × T × p_f   Elastic = Avg × T × p_e
Elastic সস্তা যখন Peak / Avg > p_e / p_f

উদাহরণ: ধরে নিই নিজের ক্ষমতা ঘণ্টায় $০.৩০, cloud ঘণ্টায় $০.৬০, অর্থাৎ cloud দ্বিগুণ দামি। Peak ১০, গড় ৪, মাসে ৭২০ ঘণ্টা। Fixed: 10 × 720 × 0.30 = $2,160. Elastic: 4 × 720 × 0.60 = $1,728. PAR ২.৫ দামের অনুপাত ২-এর চেয়ে বড়, তাই দামি হয়েও cloud সস্তা। Cloud-এ স্থির খরচ থাকলে সীমাটি সরে যায়। অংশ ৬-এর উদাহরণে সমান হওয়ার বিন্দু U = ৫৮.৩%, মানে PAR প্রায় ১.৭১।

নিচের সিমুলেটরে একটি পুরো মাসের ৭২০ ঘণ্টা আছে: রাত, দিন, সন্ধ্যা, আর শেষ ৫ দিন ঈদের বিক্রি। Seed বদলালে নতুন চাহিদা তৈরি হবে, কিন্তু একই seed-এ ফল একই থাকবে।

// One 30-day month of hourly demand: fixed capacity vs elastic (assumed prices)
const HOURS = 720, PRICE = 0.50;     // $ per server-hour, same price for both
let seed = 7;
function rand() {                    // mulberry32: same numbers on every run
  seed = (seed + 0x6D2B79F5) | 0; let t = Math.imul(seed ^ (seed >>> 15), 1 | seed);
  t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
}
const demand = [];
for (let h = 0; h < HOURS; h++) {
  const hod = h % 24, day = Math.floor(h / 24);
  let d = hod < 8 ? 1 : hod < 18 ? 3 : hod < 23 ? 6 : 2;   // night, day, evening
  if (day >= 25) d *= 3;                                   // last 5 days: Eid sale
  demand.push(Math.ceil(d * (0.85 + 0.3 * rand())));       // whole servers
}
const sum = demand.reduce((a, b) => a + b, 0);
const peak = Math.max(...demand), avg = sum / HOURS;
console.log("peak " + peak + "  average " + avg.toFixed(2) + "  peak-to-average "
  + (peak / avg).toFixed(2));

function fixed(cap) {                // cap servers, all month, whatever the demand
  let idle = 0, short = 0;
  for (const d of demand) { idle += Math.max(0, cap - d); short += Math.max(0, d - cap); }
  return { cost: cap * HOURS * PRICE, idle, short, late: 100 * short / sum };
}
console.log("capacity   cost   idle srv-h  unserved srv-h");
for (const cap of [peak, Math.ceil(avg)]) {
  const f = fixed(cap);
  console.log(("fixed " + cap).padEnd(9) + ("$" + f.cost).padStart(7) + String(f.idle).padStart(12)
    + String(f.short).padStart(10) + "  (" + f.late.toFixed(1) + "%)");
}
console.log("elastic  " + ("$" + sum * PRICE).padStart(7) + "           0         0  (0.0%)");
const saved = 1 - (sum * PRICE) / (peak * HOURS * PRICE);
console.log("elastic saves " + (saved * 100).toFixed(1) + "% against fixed-at-peak");
console.log("elastic still wins if its price is up to " + (peak / avg).toFixed(2) + " times higher");
peak 20  average 4.41  peak-to-average 4.54
capacity   cost   idle srv-h  unserved srv-h
fixed 20   $7200       11225         0  (0.0%)
fixed 5    $1800        1167       742  (23.4%)
elastic  $1587.5           0         0  (0.0%)
elastic saves 78.0% against fixed-at-peak
elastic still wins if its price is up to 4.54 times higher

দুটি ভুলের দাম আলাদা। Peak-এর মাপে fixed ক্ষমতা রাখলে কেউ ফিরে যায় না, কিন্তু ১১,২২৫ server-ঘণ্টা অলস থাকে। একে বলে overprovisioning. গড়ের মাপে রাখলে বিল ছোট হয়, কিন্তু ২৩.৪% কাজ সামলানো যায় না। একে বলে underprovisioning, যার দাম বিলে দেখা যায় না, দেখা যায় হারানো বিক্রিতে। Elastic পথে খরচ $১,৫৮৭.৫, অর্থাৎ peak-এর fixed খরচের চেয়ে ৭৮% কম। শেষ লাইনটি আগের সূত্রই বলছে: PAR ৪.৫৪ হলে elastic-এর দাম ৪.৫৪ গুণ পর্যন্ত বেশি হলেও সে সমান থাকে।

৮ · কখন cloud বেশি খরচের

“Cloud সবসময় সস্তা” কথাটি যেমন ভুল, “Cloud সবসময় দামি” কথাটিও তেমন ভুল। এই পর্বের সংখ্যাগুলো পাশাপাশি রাখুন:

পরিস্থিতিCloud/মাসনিজের চলতি খরচ/মাসBreak-even
গড় ৪০% load, VM নিজে থেকে বাড়ে-কমে$২,৮৪০$২,৫০০৬০,০০০ / ৩৪০ ≈ ১৭৭ মাস, hardware-এর আয়ুর অনেক বাইরে
দিনরাত ১০০% load$৫,০০০$২,৫০০২৪ মাস
১০০% load, compute-এ ৩০% ছাড়ের অঙ্গীকার (অনুমিত)$৩,৯২০$২,৫০০৬০,০০০ / ১,৪২০ ≈ ৪২.৩, অর্থাৎ মাস ৪৩

তিন বছরে প্রথম সারিতে cloud-এর TCO $১০২,২৪০, যেখানে নিজের server-এ $১৫০,০০০। দ্বিতীয় সারিতে ফল উল্টো: $১৮০,০০০ বনাম $১৫০,০০০। অর্থাৎ স্থির, উঁচু, দীর্ঘদিনের load-এ cloud প্রায়ই বেশি খরচের। কিছু সাধারণ লক্ষণ:

  • অনুমানযোগ্য load: সারাদিন প্রায় সমান ব্যস্ততা, ওঠানামা নেই।
  • বিপুল data transfer: ভিডিও বা বড় ফাইল বিতরণে বাইরে যাওয়া ডেটার বিল বড় হয়ে যায়।
  • দক্ষ নিজস্ব দল: Hardware আগে থেকেই সামলাতে পারেন, তাই staff-এর বাড়তি খরচ কম।
  • লম্বা আয়ু: Hardware-টি ৫ বছর বা বেশি কাজ করবে বলে ভরসা আছে।

তবে শুধু সংখ্যাই সব নয়। Cloud দেয় গতি: নতুন region, managed service আর দ্রুত পরীক্ষা। নিজের server দেয় নিয়ন্ত্রণ, কিন্তু backup site আর availability zone-এর মতো নিরাপত্তা নিজেকেই বানাতে হয়। সেই খরচ উপরের টেবিলে নেই। একটি মাঝের পথও আছে: স্থির অংশ নিজের server বা অঙ্গীকারে, আর ওঠানামার অংশ on-demand cloud-এ। Hybrid নকশার কথা পর্ব ৩-এ আছে, আর স্থানান্তরের পথ পর্ব ৭৫-এ।

আরও গভীরে: Armbrust ও সহ-লেখকদের “Above the Clouds” (Berkeley, ২০০৯) প্রতিবেদন cloud-এর অর্থনীতিকে দুটি ধারণায় বেঁধেছিল। একটি cost associativity: ১,০০০টি মেশিন ১ ঘণ্টা আর ১টি মেশিন ১,০০০ ঘণ্টার দাম সমান। অন্যটি ঝুঁকির স্থানান্তর: ভুল ক্ষমতা অনুমানের দাম গ্রাহকের কাঁধ থেকে provider-এর কাঁধে যায়। প্রতিবেদনটি বড় আর মাঝারি ডেটা সেন্টারের মধ্যে কিছু খরচে প্রায় ৫–৭ গুণ পার্থক্যের অনুমানও উদ্ধৃত করে। সংখ্যাগুলো পুরোনো, কিন্তু যুক্তি আজও প্রাসঙ্গিক।

৯ · বিলের তিন মাত্রা — compute, storage, network

প্রায় সব cloud বিলকে তিনটি মাত্রায় ভাঙা যায়। বিদ্যুৎ বিলে যেমন ইউনিট গুনে দাম হয়, এখানেও প্রতিটি মাত্রার নিজস্ব “মিটার” আছে।

মাত্রামিটার কী গোনেউদাহরণ সূত্র (অনুমিত দাম)সাধারণ ফাঁদ
ComputeVM-ঘণ্টা বা সেকেন্ড, function-এর সময়10 VM × 720 h × $0.50রাতে বন্ধ না করা পরীক্ষার VM
Storageপ্রতি মাসে GB, অনেক সময় request-ও2,000 GB × $0.10পুরোনো snapshot আর ঝুলে থাকা disk
Networkবাইরে যাওয়া GB, zone বা region পার হওয়া3,000 GB × $0.10একে অপরকে অনবরত ডাকা সার্ভিস, CDN না থাকা

টেবিলের দ্বিতীয় আর তৃতীয় সারিই অংশ ৩-এর $২০০ আর $৩০০। Pay-as-you-go মানে এই মিটারগুলো যতটুকু ঘোরে, ততটুকুরই বিল। Provider-ভেদে নাম আলাদা, যেমন AWS EC2, Azure Virtual Machines আর Google Compute Engine; কিন্তু ধারণা একই। সাধারণত ভেতরে আসা ডেটা (ingress) অনেক ক্ষেত্রে বিনা খরচে বা কম খরচে হয়, আর বাইরে যাওয়া ডেটায় (egress) বিল বেশি পড়ে। শর্ত provider-ভেদে আলাদা, তাই pricing পাতা দেখে নিন।

কেনার ধরনও তিন রকম: on-demand (যখন খুশি, দাম বেশি), commitment বা reserved (অঙ্গীকারে ছাড়), আর spot (ফাঁকা ক্ষমতা, ছাড় বেশি, কিন্তু যেকোনো সময় ফেরত নেওয়া হতে পারে)। এখানে শুধু নাম চিনে রাখুন। পর্ব ৭২-এ বিলের প্রতিটি সারি, আর পর্ব ৭৩-এ FinOps অভ্যাস নিয়ে গভীরে যাব।

পরীক্ষা ও ইন্টারভিউতে:

  • CapEx আর OpEx-এর পার্থক্য? CapEx দীর্ঘস্থায়ী সম্পদ কেনার আগাম খরচ; OpEx চলতি খরচ।
  • TCO-তে কী কী ধরবেন? Hardware, বিদ্যুৎ, cooling, জায়গা, staff, বাড়তি ক্ষমতা; cloud-এ compute, storage, transfer, support, অলস resource.
  • Break-even কীভাবে বের করবেন? CapEx-কে মাসিক সাশ্রয় দিয়ে ভাগ করে।
  • Peak ২০, গড় ৫ হলে কেনা ক্ষমতার utilisation? ১ / ৪ = ২৫%.
  • কখন cloud-ছাড়া পথ ভালো? স্থির, উঁচু, দীর্ঘ load আর সক্ষম দল থাকলে।

একটি ঐচ্ছিক কাজ: বড় provider-দের pricing calculator সাধারণত account ছাড়াই খোলা যায় (লেখার সময়ে)। এই পর্বের ১০টি VM-এর হিসাব সেখানে বসিয়ে দেখতে পারেন। শুধু হিসাব করলে কোনো খরচ হয় না। আসল resource চালু করবেন না, করলে টাকা কাটতে পারে; পরীক্ষা শেষে সব বন্ধ করে মুছে ফেলতে হবে।

১০ · AI-এর যুগে cloud-এর খরচ আর নিরাপত্তা

AI কয়েক সেকেন্ডে সুন্দর একটি খরচের টেবিল বা পুরো Terraform ফাইল বানিয়ে দেয়। বিপদ হলো সেটি দেখতে খুব বিশ্বাসযোগ্য। AI আপনার আসল load, চুক্তি বা আজকের দাম জানে না, আর পুরোনো দাম আত্মবিশ্বাসের সাথে লিখে দিতে পারে।

AI সাধারণত যেসব ভুল করে

AI-এর ভুলকেন বিপজ্জনকযাচাই
শুধু VM-এর দাম ধরে “৪০% সাশ্রয়” দেখানোStaff, transfer, support বাদTCO-র প্রতিটি সারি চেয়ে নিন
স্মৃতি থেকে পুরোনো দাম লেখাসিদ্ধান্ত ভুল সংখ্যায় হয়Provider-এর pricing পাতা
বড় instance আর বেশি replica প্রস্তাবখরচ উপেক্ষা করা হয়Plan দেখে মাসিক খরচ হিসাব, budget alert
* permission দেওয়াএকটি ফাঁসে পুরো account ঝুঁকিতেLeast privilege, policy পর্যালোচনা
0.0.0.0/0 খোলা, storage public করাInternet থেকে সবার প্রবেশDiff পড়া, পরীক্ষার পরিবেশে যাচাই
Secret কোডে লেখাGit history-তে থেকে যায়Secret manager; prompt-এও secret নয়
latest tag, বাতিল API version, বানানো flagআজ চলে, কাল ভাঙে, বা শুরুতেই ভুলঅফিসিয়াল ডকুমেন্টেশন, --dry-run
terraform destroy, kubectl delete, rm -rf সতর্কতা ছাড়াআসল ডেটা মুছে যেতে পারেআগে terraform plan, throwaway পরিবেশ

AI-কে সিদ্ধান্ত নিতে দেবেন না, হিসাব গুছাতে দিন। নিচের prompt-এ নিজের অনুমিত সংখ্যা দিয়ে দেওয়া হয়েছে, আর অনুমানগুলো আলাদা করে দেখাতে বলা হয়েছে:

আমি একটি ছোট অ্যাপের জন্য নিজের server আর cloud VM-এর ৩ বছরের TCO তুলনা করছি। আমার অনুমিত সংখ্যা: [server সংখ্যা ও দাম], [মাসিক বিদ্যুৎ, জায়গা, staff], [VM-এর ঘণ্টাপ্রতি দাম], [মাসিক storage ও data transfer], peak আর গড় load. ১. দুই পক্ষের সব খরচের সারি টেবিলে দেখাও। কোনো সারি আমি বাদ দিলে সেটি বলো। ২. Break-even মাস আর break-even utilisation-এর পুরো হিসাব দেখাও। ৩. তুমি নিজে যে সংখ্যা ধরেছ, তা আলাদা তালিকায় লেখো। কোনো দাম আসল বলে দাবি করো না। ৪. কোন দুটি সংখ্যা বদলালে সিদ্ধান্ত উল্টে যাবে, সেটি বলো।

AI-এর হিসাব বা cloud কোড হাতে পেলে — চেকলিস্ট

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন, তারপর “→ উত্তর” চাপুন। এগুলোই আপনাকে বিল-পড়া মানুষ থেকে সিদ্ধান্ত-নেওয়া প্রকৌশলী বানাবে।

প্র ০১Provider-ও তো server কিনে লাভ রেখে ভাড়া দেন। তাহলে অনেক গ্রাহকের কাছে সেই ভাড়া সস্তা হয় কীভাবে?

প্রশ্নটির উত্তর লুকিয়ে আছে দুই পক্ষের খরচের কাঠামোয়। ভাড়া সস্তা হওয়ার জন্য provider-এর খরচ আপনার খরচের চেয়ে অনেক কম হতে হবে, আর সেটি হয় কয়েকটি কারণে।

  • কেনাকাটার আকার: Armbrust ও সহ-লেখকদের ২০০৯ সালের “Above the Clouds” প্রতিবেদন James Hamilton-এর একটি বিশ্লেষণ উদ্ধৃত করে দেখায়, খুব বড় ডেটা সেন্টারে network, storage আর পরিচালনার একক খরচ মাঝারি আকারের তুলনায় প্রায় ৫ থেকে ৭ গুণ কম হতে পারে। সংখ্যাটি সেই সময়ের, আজ হুবহু ধরে নেওয়া যাবে না।
  • নিজস্ব নকশা: বড় provider-রা নিজেদের server, switch, এমনকি chip পর্যন্ত নকশা করেন, যা তাঁদের প্রকাশ্য লেখায় বর্ণিত। অপ্রয়োজনীয় অংশ বাদ যায়, আর একক খরচ কমে।
  • Staff-এর অনুপাত: Automation থাকায় অল্প মানুষ অনেক মেশিন সামলান। ছোট server room-এ এই সুবিধা নেই।
  • Statistical multiplexing: সবার peak একসাথে পড়ে না, তাই মোট চাহিদা তুলনামূলক মসৃণ থাকে, আর utilisation বেশি রাখা যায়। রমজানে ঢাকার একটি দোকানের ভিড় আর ইউরোপের অফিসের ভিড় একই সময়ে আসে না।

একটি প্রচলিত গল্প হলো, Amazon নাকি নিজের অতিরিক্ত server ভাড়া দিতেই AWS বানিয়েছিল। Amazon-এর কর্মকর্তারা প্রকাশ্যে এই গল্প নাকচ করেছেন; তাঁদের ভাষ্যে এটি শুরু থেকেই আলাদা ব্যবসা হিসেবে ভাবা হয়েছিল। উল্টো দিকে এটিও মনে রাখুন, provider-এর সাশ্রয়ের পুরোটা আপনি পান না। তিনি মুনাফা রাখেন, আর managed service, উচ্চ নির্ভরযোগ্যতা ও নমনীয়তার দাম নেন। তাই ছোট দলের কাছে cloud সস্তা হতে পারে, কিন্তু খুব বড় স্থির load-এর মালিকের কাছে নয়।

মূল উপলব্ধি: Cloud-এর দাম হলো provider-এর আকারের সুবিধা বিয়োগ তাঁর মুনাফা। আপনার নিজের আকার আর utilisation যত বড়, এই বিয়োগফল আপনার কাছে তত কম আকর্ষণীয় হয়।

প্র ০২আর্থিক ব্যবস্থাপকেরা OpEx পছন্দ করেন কেন? OpEx কি সবসময় ভালো খবর?

OpEx-এর আকর্ষণ মূলত ঝুঁকি আর নগদ টাকায়, শুধু মোট খরচে নয়।

  • নগদ বাঁচে: শুরুতে যে $৬০,০০০ server-এ আটকে যেত, সেটি পণ্য বা বিক্রিতে খাটানো যায়। ধার করা টাকায় সুদ চড়া হলে এই সুবিধা আরও বড়, যা অংশ ৫-এর discount rate দেখিয়েছে। অর্থনীতিতে একে বলে opportunity cost.
  • ভুল অনুমানের দাম কম: ব্যবসা না চললে বিল বন্ধ, কিন্তু কেনা server-এর দাম ফেরত আসে না।
  • অনুমোদন সহজ: অনেক প্রতিষ্ঠানে বড় কেনাকাটা অনেক ধাপের অনুমোদন চায়, আর ছোট মাসিক বিল সহজে পাশ হয়। এতে গতি আসে।

কিন্তু উল্টো দিকও আছে। OpEx-এর বিল পরিবর্তনশীল। CapEx-এ বিল জানা থাকে, cloud-এ একটি ভুল script বা হঠাৎ জনপ্রিয়তা এক রাতে বিল বাড়িয়ে দিতে পারে। তাই এই বিপদ ঠেকাতে budget alert আর খরচ সীমা নিয়ে পর্ব ৬-এ আলাদা আলোচনা আছে। দ্বিতীয়ত, মোট টাকা অনেক সময় বেশি হয়, ঠিক যেমন বিশ বছর ভাড়া দেওয়া। তৃতীয়ত, বাংলাদেশের দলের জন্য একটি বাড়তি বিষয় আছে: বিল সাধারণত ডলারে আসে। টাকার মান পড়লে একই ব্যবহারে খরচ বাড়ে। বিদেশি লেনদেনের সীমা আর কর-সংক্রান্ত নিয়মও সময়ের সাথে বদলায়, তাই ব্যাংক ও হিসাবরক্ষকের কাছে হালনাগাদ তথ্য জেনে নিন।

আর “OpEx” শব্দটিও সবসময় খাঁটি নয়। তিন বছরের অঙ্গীকার নিলে আপনি ছাড় পান, কিন্তু নমনীয়তার একটি অংশ ছেড়ে দেন। তখন cloud আবার CapEx-এর আচরণ করে। Lease হিসাবরক্ষণের আন্তর্জাতিক নিয়মগুলোও বেশ জটিল, তাই চুক্তির ধরন অনুযায়ী আর্থিক প্রতিবেদনে ভিন্নভাবে দেখানো লাগতে পারে।

মূল উপলব্ধি: OpEx মানে কম খরচ নয়। OpEx মানে ঝুঁকি আগাম কেনা থেকে সরে চলতি নজরদারিতে যাওয়া। নজরদারি না থাকলে এই সুবিধাই বিপদে বদলে যায়।

প্র ০৩কিছু প্রতিষ্ঠান cloud ছেড়ে নিজের hardware-এ ফিরে গেছে। এই “repatriation” কি প্রমাণ করে cloud একটি ভুল ছিল?

Cloud থেকে নিজের ডেটা সেন্টারে ফেরাকে বলে cloud repatriation. কয়েকটি প্রকাশ্য আলোচিত ঘটনা এই বিতর্ককে সামনে এনেছে।

  • Dropbox: ২০১৬ সালে তাদের engineering ব্লগে জানায় যে ব্যবহারকারীর ডেটার বেশিরভাগ তারা নিজেদের তৈরি storage ব্যবস্থায় সরিয়ে এনেছে। তাদের কাজ ছিল বিপুল, প্রায় একই ধরনের storage, যা নিজে বানানোর মতো আকারে পৌঁছেছিল।
  • 37signals: ২০২২–২৩ সালে প্রতিষ্ঠানটির প্রতিষ্ঠাতারা প্রকাশ্যে লেখেন যে স্থির load-এর জন্য তারা cloud ছেড়ে নিজের কেনা hardware-এ যাচ্ছেন, আর তাতে সাশ্রয়ের দাবি করেন।
  • “The Cost of Cloud”: ২০২১ সালে Andreessen Horowitz-এর এক প্রবন্ধ যুক্তি দেয়, বড় হয়ে যাওয়া সফটওয়্যার কোম্পানির মুনাফায় cloud বিল বড় চাপ ফেলতে পারে।

এগুলো কি cloud-এর ব্যর্থতা? এই পর্বের সংখ্যায় ভাবলে নয়। সবাই বড়, স্থির, অনুমানযোগ্য load-এর মালিক, আর তাঁদের হাতে দক্ষ দল আছে। এটি ঠিক সেই সারি, যেখানে break-even দ্রুত আসে। অথচ এই প্রতিষ্ঠানগুলোর অনেকেই শুরুর দিকে cloud-এর গতি থেকে উপকৃত হয়েছে। তখন peak অজানা ছিল, আর হাতে ছিল সীমিত মূলধন।

ফেরারও দাম আছে: বাইরে ডেটা নেওয়ার খরচ, নতুন hardware, on-call দল, আর provider-এর managed service-এর বদল বানানো। ২০২৪ সালের দিকে কয়েকটি বড় provider ঘোষণা করেন, cloud ছেড়ে যাওয়া গ্রাহকের জন্য কিছু শর্তে egress ফি মওকুফ করবেন, আর ইউরোপের Data Act-ও এই দিকে চাপ তৈরি করেছে। শর্তগুলো সরাসরি provider-এর পাতায় দেখে নিতে হবে। এই তালিকায় প্রতিষ্ঠানগুলোর নিজের দাবি এসেছে, স্বাধীনভাবে যাচাই করা হিসাব নয়।

মূল উপলব্ধি: Cloud বা নিজের server কোনোটিই চিরকালের সিদ্ধান্ত নয়। প্রতিষ্ঠানের জীবনচক্রে load-এর আকার আর ধরন বদলায়, তাই হিসাবটিও মাঝে মাঝে আবার করতে হয়।

প্র ০৪Server-এর আয়ু ৩ বছর ধরবেন, না ৬ বছর? শুধু একটি অনুমান কতটা বদলে দিতে পারে সিদ্ধান্ত?

এই পর্বের সিমুলেটর থেকে সরাসরি উত্তর পাওয়া যায়। একই খরচে শুধু useful life বদলালে break-even utilisation হয়: ৩ বছরে ৭৬.৯%, ৪ বছরে ৬৫.৩%, ৫ বছরে ৫৮.৩%, ৬ বছরে ৫৩.৭%. মানে ৬০% utilisation-এর একটি অ্যাপের জন্য ৩ বছর ধরলে cloud জেতে, আর ৫ বছর ধরলে নিজের server. একটি মাত্র অনুমান ফল উল্টে দিল।

তাহলে কোনটি ঠিক? আয়ু আসলে তিন রকম।

  • ভৌত আয়ু: Server সাধারণত বহু বছর চলতে পারে, তবে পুরোনো হলে disk আর power supply-র ব্যর্থতা বাড়তে পারে।
  • অর্থনৈতিক আয়ু: নতুন hardware একই বিদ্যুতে বেশি কাজ করে। পুরোনো মেশিন চললেও বিদ্যুৎ ও জায়গার হিসাবে লোকসান হতে পারে।
  • হিসাবের আয়ু: হিসাব বইয়ে ধরা বছর। এটি নীতিগত সিদ্ধান্ত, আর দেশের কর-নিয়মও প্রভাব ফেলে।

মজার ব্যাপার হলো, বড় কয়েকটি প্রযুক্তি কোম্পানির প্রকাশ্য আর্থিক প্রতিবেদনে গত কয়েক বছরে server-এর useful life বাড়ানোর ঘোষণা দেখা গেছে, প্রায় ৩–৪ বছর থেকে ৫–৬ বছরের দিকে। এতে তাদের হিসাবকৃত বার্ষিক খরচ কমেছে, যদিও মেশিনের কোনো পরিবর্তন হয়নি। আবার AI-এর জন্য GPU খুব দ্রুত পুরোনো হলে সেই দিকটি উল্টেও যেতে পারে, আর এ নিয়ে বিনিয়োগকারীদের মধ্যেও বিতর্ক আছে।

বাংলাদেশের প্রেক্ষাপটে আরও কিছু ভাবতে হয়। আমদানি করা যন্ত্রাংশ পেতে সময় লাগতে পারে। গরম আর ধুলো বেশি হলে hardware-এর চাপ বাড়ে। অস্থির বিদ্যুতে UPS আর generator-এর খরচ যোগ হয়। এগুলো সবই অনুমানকে কম আশাবাদী করার যুক্তি।

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

মূল উপলব্ধি: TCO কোনো নির্ভুল সত্য নয়, অনুমান দিয়ে বানানো একটি মডেল। মডেলের ফলের চেয়ে তার সংবেদনশীল অনুমানগুলো চেনা বেশি মূল্যবান।

প্র ০৫Elasticity কি অসীম? সবার ভিড় একসাথে হলে provider কী করেন, আর এর দাম কে দেয়?

“সীমাহীন ক্ষমতা” cloud-এর বিজ্ঞাপনের ভাষা, প্রকৌশলের সত্য নয়। Provider-ও শেষ পর্যন্ত নির্দিষ্ট সংখ্যক মেশিনই চালান। Elasticity দাঁড়িয়ে আছে একটি বাজির ওপর: সব গ্রাহকের peak একসাথে পড়বে না।

এই বাজি মাঝেমধ্যে চাপে পড়ে। ২০২০ সালের মার্চে কোভিডের শুরুতে হঠাৎ ঘরে বসে কাজের চাহিদায় কিছু region-এ cloud ক্ষমতায় সাময়িক টান পড়ার কথা Microsoft প্রকাশ্যে স্বীকার করে, আর তাদের ব্লগে অগ্রাধিকার নির্ধারণের কথা জানায়। সবার peak একসাথে হলে একটি ঘটনাই সব গ্রাহককে একই দিকে ঠেলে দেয়। AI-এর জন্য GPU-র চাহিদাও অনেক সময় এমন চাপ তৈরি করেছে।

গ্রাহকের দিক থেকে elasticity-র কয়েকটি বাস্তব সীমা আছে:

  • Quota: Account-এ কতগুলো VM চালানো যাবে তার সীমা থাকে। ঈদের ঠিক আগে quota বাড়ানোর আবেদন করলে দেরি হতে পারে।
  • চালু হওয়ার সময়: নতুন VM আর অ্যাপ প্রস্তুত হতে সময় লাগে। ভিড় হঠাৎ এলে autoscaling পিছিয়ে পড়ে, যা পর্ব ১৭-এ দেখবেন।
  • Database: Web server বাড়ানো সহজ, কিন্তু stateful database সহজে বাড়ানো-কমানো যায় না। পুরো সিস্টেমের গতি প্রায়ই সেখানেই আটকে যায়।
  • ক্ষমতা না পাওয়া: কোনো zone-এ নির্দিষ্ট instance type সাময়িক ফুরিয়ে যেতে পারে।

তাই গুরুত্বপূর্ণ ঘটনার আগে দলগুলো আগেই ক্ষমতা নিশ্চিত করে রাখেন। অনেক provider-এর এমন ক্ষমতা সংরক্ষণের ব্যবস্থা আছে, যার জন্য ব্যবহার না করলেও টাকা দিতে হয়। অর্থাৎ নিশ্চয়তা চাইলে elasticity-র একটি অংশ আবার fixed খরচে ফেরে।

এর দাম কে দেয়? সবাই ভাগ করে। অলস থাকা ক্ষমতার খরচ on-demand দামের ভেতরেই থাকে। Spot ভাড়া হলো সেই অলস ক্ষমতা সস্তায় বেচার পথ, আর তাতে provider-এর utilisation বাড়ে।

মূল উপলব্ধি: Elasticity হলো ঝুঁকির বিমা, প্রকৃতির নিয়ম নয়। Provider ঝুঁকি অনেক গ্রাহকের মধ্যে ভাগ করে দেন, আর আপনি on-demand দামে সেই বিমার কিস্তি দেন।

অনুশীলন

কলম-কাগজ নিন, বা উপরের সিমুলেটরে সংখ্যা বসান। সব দাম অনুমিত। কোনো cloud account লাগবে না।

  1. Break-even হিসাব: ৫টি server, প্রতিটি $৮,০০০ (অনুমিত)। নিজের চলতি খরচ মাসে $১,০০০, cloud-এর মোট খরচ মাসে $৩,০০০। (ক) break-even মাস, (খ) ৩ বছরের দুই পক্ষের TCO, (গ) ৪ বছর useful life ধরে মাসিক depreciation বের করুন।

    (ক) CapEx = ৫ × $৮,০০০ = $৪০,০০০। মাসিক সাশ্রয় = $৩,০০০ − $১,০০০ = $২,০০০। Break-even = ৪০,০০০ / ২,০০০ = ২০ মাস.

    (খ) নিজের: $৪০,০০০ + ৩৬ × $১,০০০ = $৭৬,০০০. Cloud: ৩৬ × $৩,০০০ = $১০৮,০০০.

    (গ) ৪০,০০০ / ৪৮ ≈ $৮৩৩.৩৩ প্রতি মাসে।

  2. নকশা ও সমালোচনা: একজন সহকর্মী বললেন: “VM-এর মাসিক বিল $৩,৬০০। $৬০,০০০-এর server কিনলে ১৭ মাসেই টাকা উঠে যাবে। কাজেই আজই কিনুন।” আমাদের অ্যাপের গড় utilisation ৩৫%. এই যুক্তিতে কী কী ভুল? আপনি কী প্রস্তাব করবেন?
    • ৬০,০০০ / ৩,৬০০ ≈ ১৬.৭ হিসাবটি নিজের server-এর চলতি খরচ শূন্য ধরেছে। বিদ্যুৎ, জায়গা, staff আর মেরামত বাদ।
    • Cloud-এর পাশের storage, transfer আর support-ও হিসাবে নেই, তাই দুই পক্ষই অসম্পূর্ণ।
    • $৩,৬০০ বিল পূর্ণ ১০ VM-এর। ৩৫% utilisation-এ ক্ষমতা কমিয়ে বা autoscaling দিয়ে বিল নিজেই কমানো যায়।
    • ৩৫% utilisation break-even utilisation-এর (উদাহরণে ৫৮.৩%) অনেক নিচে, তাই কেনাই সম্ভবত ভুল।

    প্রস্তাব: আগে rightsizing আর autoscaling করুন, অলস resource মুছুন, তারপর পূর্ণ TCO আর sensitivity analysis করুন। মাত্র কয়েক মাসের ডেটায় নয়, এক বছরের load দেখে সিদ্ধান্ত নিন।

  3. Predict the output: নিচের কোড না চালিয়ে বলুন কী ছাপা হবে। তারপর own > cloud-কে own >= cloud করলে কী বদলাবে?
    let own = 30000, cloud = 0, m = 0;
    while (own > cloud) {
      m++;
      own += 1500;
      cloud += 3500;
    }
    console.log(m, own, cloud);

    প্রতি মাসে ব্যবধান $২,০০০ কমে, তাই ৩০,০০০ / ২,০০০ = ১৫ মাসে দুটি সমান হয়। ছাপা হবে 15 52500 52500. শর্ত >= করলে সমান হওয়াতেও লুপ চলবে, তাই ছাপা হবে 16 54000 56000. Break-even আসলে কোন মাসকে ধরবেন, এই এক অক্ষরের পার্থক্য সেটিই ঠিক করে।

  4. উৎসবের টিকিট সাইট: একটি সাইটে গড়ে ৩টি server লাগে, peak-এ ৩০টি। নিজের ক্ষমতা ঘণ্টায় $০.৩০, cloud ঘণ্টায় $০.৬০ (অনুমিত), মাস ৭২০ ঘণ্টা। PAR, peak-এর মাপে কেনা ক্ষমতার utilisation, আর দুই পক্ষের মাসিক খরচ বের করুন। কোনটি বাছবেন?

    PAR = ৩০ / ৩ = ১০. Utilisation = ১ / ১০ = ১০%. Fixed: ৩০ × ৭২০ × $০.৩০ = $৬,৪৮০. Elastic: ৩ × ৭২০ × $০.৬০ = $১,২৯৬, অর্থাৎ fixed-এর মাত্র ২০%. PAR ১০ দামের অনুপাত ২-এর চেয়ে অনেক বড়, তাই elastic-ই বাছাই। তবে টিকিট ছাড়ার মুহূর্তে ভিড় আসে হঠাৎ, তাই autoscaling-এ পুরো ভরসা না করে ঘোষিত সময়ের আগেই ক্ষমতা বাড়িয়ে রাখা উচিত।

নিজেকে যাচাই করুন

ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।

ক্রমনিজের server বনাম cloud-এর সিদ্ধান্ত নেওয়ার ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)

  1. আসল load মাপা: peak, গড় আর ওঠানামার ধরন
  2. দুই পক্ষের সব খরচের সারি লেখা, লুকানোগুলোসহ
  3. একই সময়সীমায় দুই পক্ষের TCO যোগ করা
  4. Break-even মাস আর break-even utilisation বের করা
  5. অনুমান বদলে দেখা, কোন সংখ্যায় সিদ্ধান্ত উল্টে যায়

Server বনাম cloud-এর TCO তুলনায় cloud পক্ষে কোন খরচ সবচেয়ে সহজে বাদ পড়ে?

  • VM-এর ঘণ্টাপ্রতি ভাড়া
  • ডেটা সেন্টারের বিদ্যুৎ বিল
  • Data transfer, support আর অলস resource
  • পুরোনো server বদলানোর খরচ

Server কিনতে একবার $২০,০০০ লাগে, আর চালাতে মাসে $৫০০। একই কাজ cloud-এ মাসে $১,৫০০। সব দাম অনুমিত। Break-even কত মাসে?

  • প্রায় ১৩ মাস
  • ২০ মাস
  • ৪০ মাস
  • কখনোই নয়

একটি মেশিনের মাসিক খরচ স্থির $২,০০০ আর পূর্ণ ক্ষমতা মাসে ৫,০০০ server-ঘণ্টা। Utilisation ২৫% হলে কাজে লাগা প্রতি server-ঘণ্টার খরচ কত?

  • $০.৪০
  • $০.৩০
  • $০.৮০
  • $১.৬০

একটি সিস্টেমে peak চাহিদা ৩০টি server, গড় ৬টি। Peak-to-average ratio আর peak-এর মাপে কেনা ক্ষমতার গড় utilisation কত?

  • ৫ এবং ২০%
  • ৫ এবং ৫০%
  • ২৪ এবং ৮০%
  • ০.২ এবং ৫%

বছরে ১০% discount rate ধরলে, এক বছর পরে পাওয়া $১,১০০-এর আজকের মূল্য (present value) কত?

  • $১,১০০
  • $৯৯০
  • $১,০০০
  • $১,২১০

নিচের কোন কাজে on-demand cloud-এ চালানো সবচেয়ে বেশি খরচের হওয়ার সম্ভাবনা, যদি সক্ষম একটি দল আগে থেকেই hardware সামলাতে পারে?

  • চাহিদা অজানা, একদম নতুন একটি পণ্য
  • তিন বছর ধরে দিনরাত প্রায় ৯০% ব্যস্ত, অনুমানযোগ্য একটি সার্ভিস
  • বছরে দুবার বিশাল ভিড় হয় এমন একটি টিকিট সাইট
  • মাত্র দুই দিনের একটি ডেটা বিশ্লেষণ

শব্দকোষ

লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন, অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:

মনে রাখুন

  1. CapEx আগাম সম্পদ কেনা, OpEx চলতি বিল; depreciation সম্পদের দাম বছরে ভাগ করে।
  2. TCO সব সারির যোগফল: বিদ্যুৎ, staff, বাড়তি ক্ষমতা, transfer, support আর অলস resource-সহ।
  3. Break-even = CapEx / মাসিক সাশ্রয়; টাকার সময়মূল্য ধরলে সেটি একটু পিছিয়ে যায়।
  4. Utilisation সিদ্ধান্তের কেন্দ্র; peak-এর মাপে কিনলে U = 1 / PAR.
  5. স্থির, উঁচু load-এ cloud প্রায়ই বেশি দামি; ওঠানামার load-এ elasticity জেতে। সব দামই যাচাই করে নিন।

পরের পর্বে: খরচের হিসাব শেষ, এবার ভূগোল। Cloud আসলে কোথায় থাকে? Region, availability zone, edge আর data residency কীভাবে আপনার গতি, নির্ভরযোগ্যতা আর আইনি দায় ঠিক করে, সেটি দেখব।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

এই পর্বটি শেয়ার করুন:
এই পর্বে ভুল পেয়েছেন? জানান