Part 1 · নেটওয়ার্কিং 📖 ১২ মিনিট পড়া 📝 ২০টি কুইজ

CDN — কন্টেন্ট ডেলিভারি নেটওয়ার্ক

user-এর কাছাকাছি content পৌঁছানোর বিশ্বব্যাপী নেটওয়ার্ক।

📝 কুইজে যান

ভাবুন — Netflix-এর সব ভিডিও যদি শুধু আমেরিকার একটি data center-এ থাকত, বাংলাদেশ থেকে দেখলে প্রতি সেকেন্ডে packet ১৫,০০০ কিমি যাত্রা করত। বাফারিং-এর কষ্ট, slow loading। কিন্তু বাস্তবে Netflix বাংলাদেশের ISP-এর কাছেই রাখা সার্ভার থেকে stream করে। এটাই CDN-এর জাদু।

CDN কী?

CDN (Content Delivery Network) = বিশ্বের বিভিন্ন প্রান্তে বিতরণকৃত সার্ভারের নেটওয়ার্ক যা user-এর ভৌগোলিকভাবে নিকটতম সার্ভার থেকে static content (HTML, CSS, JS, image, video) সার্ভ করে।

💡 অ্যানালজি: Domino's Pizza-র একটিমাত্র দোকান থাকলে — সারা শহর থেকে অর্ডার এক জায়গায় যেত। কিন্তু প্রতি এলাকায় ব্রাঞ্চ থাকায় ৩০ মিনিটে delivery হয়। CDN-ও তেমন — edge ব্রাঞ্চে content রাখে।

CDN কীভাবে কাজ করে?

  1. User image.jpg request করে।
  2. DNS user-এর geographic location অনুযায়ী নিকটতম edge server-এর IP দেয়।
  3. Edge server-এ image থাকলে (cache hit) — সরাসরি দেয়।
  4. না থাকলে (cache miss) — origin server থেকে আনে, cache করে, user-কে দেয়।
  5. পরের user-এর জন্য edge-এই থাকে — fast।

কেন CDN ব্যবহার করবেন?

  • Latency কমে: User-এর কাছাকাছি = দ্রুত response।
  • Origin offload: Origin server-এ trafic কম, cost কম।
  • High availability: Origin down হলেও edge cache দেয়।
  • DDoS protection: Edge layer attack absorb করে।
  • Bandwidth saving: Origin থেকে কম data পাঠাতে হয়।
  • Global reach: Asia, Europe, Africa — সব জায়গায় same speed।

Push vs Pull CDN

Push CDN

  • আপনি content আগে থেকে CDN-এ upload করেন
  • সব edge-এ pre-populate
  • সুবিধা: প্রথম request-ও fast
  • অসুবিধা: storage খরচ, sync complexity
  • ব্যবহার: কম-update content

Pull CDN

  • প্রথম request-এ origin থেকে fetch ও cache
  • সুবিধা: সরল, auto-update
  • অসুবিধা: প্রথম request slow
  • ব্যবহার: dynamic site, normal use case
  • সবচেয়ে কমন

কী cache হয়?

Static content (সহজ)

HTML, CSS, JS, image, video, PDF — পরিবর্তন কম। সরাসরি cache।

Dynamic content (কঠিন)

User-specific data (যেমন logged-in dashboard)। কিন্তু modern CDN edge compute (Cloudflare Workers, AWS Lambda@Edge) দিয়ে dynamic content-ও edge-এ generate করতে পারে।

Cache Invalidation

Origin-এ file update হলে CDN edge-এর পুরাতন version সরাতে হবে।

  • TTL expiry: সবচেয়ে সরল — set TTL, auto-expire।
  • Manual purge: CDN dashboard থেকে specific URL purge।
  • Cache busting: URL-এ version (app.v2.css, app.css?v=123)।
  • Stale-while-revalidate: Stale serve, background-এ refresh।
  • Cloudflare: Free tier আছে, DDoS protection, 300+ city POP।
  • AWS CloudFront: AWS ecosystem-এর সাথে integrated।
  • Akamai: Enterprise leader, biggest network।
  • Fastly: Real-time configuration, developer-friendly।
  • Bunny CDN: Affordable, performance-focused।

বাস্তব উদাহরণ

  • Netflix: Open Connect — ISP-এর ভিতরে server install।
  • YouTube: Google Global Cache (GGC) ISP-এ।
  • Wikipedia: Multiple data center + Varnish।
  • Facebook: Edge POP নেটওয়ার্ক।

সাধারণ ভুল ধারণা

  1. "CDN শুধু image-এর জন্য": না, video, JS, HTML, এমনকি API response-ও cache করা যায়।
  2. "CDN setup মানেই সব fast": না, cache hit ratio গুরুত্বপূর্ণ। Wrong cache header-এ low hit হয়।
  3. "CDN ছাড়া modern site চলবে": চলবে — কিন্তু প্রতিযোগিতায় টিকবে না।

Best Practices

  • Versioned URL — app.[hash].js — long TTL দেওয়া যায়।
  • Cache-Control: public, max-age=31536000, immutable static asset-এ।
  • HTML page-এ কম TTL (5min) বা no-cache
  • HTTPS অবশ্যই — modern CDN HTTPS দেয়।
  • Gzip/Brotli compression enable করুন।

📌 চ্যাপ্টার সারমর্ম

  • CDN বিশ্বব্যাপী edge server-এ content cache করে।
  • User-এর কাছাকাছি = দ্রুত delivery।
  • Push CDN pre-populate; Pull CDN on-demand fetch।
  • Cache invalidation TTL, manual purge, বা versioned URL দিয়ে।
  • Cloudflare, AWS CloudFront, Akamai — top providers।