System Design শেখো
শেখো / ডিপ্লয়মেন্ট ও ইনফ্রা

Multi-region ও Edge

12 মিনিট Module 9 · Deployment & Infrastructure
এক নজরে
  • Multi-region deployment একাধিক ভৌগোলিক অঞ্চলে অ্যাপ চালায় — কম latency ও disaster recovery-র জন্য।
  • Active-active-এ সব region traffic নেয়; active-passive-এ একটি প্রধান, অন্যটি backup; পছন্দ নির্ভর করে data consistency ও খরচের উপর।
  • Cross-region data replication ও geo-routing জটিল; edge/CDN ব্যবহারকারীর কাছাকাছি content দিয়ে latency আরও কমায়।

সমস্যাটা কী?

ধরো তোমার অ্যাপের server শুধু সিঙ্গাপুরে। ঢাকার ব্যবহারকারীর জন্য মোটামুটি ঠিক, কিন্তু লন্ডন বা নিউইয়র্কের ব্যবহারকারীর প্রতিটি request-কে হাজার হাজার কিলোমিটার পাড়ি দিতে হয়। আলো যত দ্রুতই হোক, এই দূরত্ব মানে অতিরিক্ত latency — পৃষ্ঠা ধীরে লোড হয়, ব্যবহারকারী বিরক্ত হয়।

আরও বড় বিপদ — যদি সিঙ্গাপুরের পুরো data center কোনো দুর্যোগে (বিদ্যুৎ, আগুন, network কাটা) বন্ধ হয়ে যায়? তোমার পুরো অ্যাপ বিশ্বজুড়ে ডাউন। একটিমাত্র region মানে একটিমাত্র single point of failure

এই দুটি সমস্যা — দূরবর্তী ব্যবহারকারীর latency আর একক region-এর ঝুঁকি — সমাধান করতে অ্যাপকে একাধিক ভৌগোলিক অঞ্চলে চালানো হয়, যাকে বলে multi-region deployment

মূল ধারণা

Multi-region deployment হলো একটি অ্যাপ্লিকেশনকে একাধিক ভৌগোলিক region-এ (যেমন এশিয়া, ইউরোপ, আমেরিকা) একসাথে চালানো, যাতে কম latency ও উচ্চ availability নিশ্চিত হয়।

দুটি মূল চালিকাশক্তি:

  • Latency: ব্যবহারকারীকে তার কাছের region থেকে সেবা দিলে দ্রুত।
  • Disaster Recovery (DR): একটি region পুরো বন্ধ হলেও অন্য region সেবা চালু রাখে।

কিন্তু এর সবচেয়ে কঠিন অংশ — একাধিক region-এ data কীভাবে synchronize রাখা যায়। এখানেই আসল চ্যালেঞ্জ।

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

Geo-routing

ব্যবহারকারীকে সঠিক (সাধারণত কাছের) region-এ পাঠানোর কাজ করে geo-routing — সাধারণত DNS-level-এ (যেমন AWS Route 53, Cloudflare)। ব্যবহারকারীর IP/অবস্থান দেখে নিকটতম বা সুস্থ region-এর server-এ পাঠানো হয়।

Architecture-র দুটি ধরন

বৈশিষ্ট্যActive-PassiveActive-Active
Trafficশুধু primary region নেয়সব region নেয়
Backup regionstandby, ব্যর্থতায় চালুসবসময় সক্রিয়
Latency সুবিধাসীমিতসব অঞ্চলে ভালো
জটিলতাকমবেশি (data sync কঠিন)
খরচতুলনামূলক কমবেশি
Failoverকিছুটা সময় লাগেপ্রায় তাৎক্ষণিক
  • Active-Passive: একটি region প্রধান (traffic নেয়), অন্যটি standby। primary ব্যর্থ হলে passive-এ failover হয়। সরল, কিন্তু passive region-এর resource বেশিরভাগ সময় অলস।
  • Active-Active: সব region একসাথে traffic নেয়। সর্বোচ্চ availability ও সব অঞ্চলে কম latency, কিন্তু data সব region-এ একসাথে ঠিক রাখা অত্যন্ত কঠিন।

Cross-region data replication

এটাই multi-region-এর সবচেয়ে কঠিন অংশ। data এক region-এ লেখা হলে অন্য region-এ পৌঁছাতে network-এর কারণে দেরি হয়। এখানে CAP theorem-এর বাস্তব প্রভাব দেখা যায়:

  • Synchronous replication: লেখা সব region-এ নিশ্চিত হওয়ার পর confirm — strong consistency, কিন্তু ধীর।
  • Asynchronous replication: লেখা এক region-এ হয়ে confirm, পরে অন্য region-এ যায় — দ্রুত, কিন্তু সাময়িক অসংগতি (eventual consistency)।

Active-active-এ একই data দুই region-এ একসাথে বদলালে conflict হতে পারে, যা সমাধান করতে আলাদা কৌশল (last-write-wins, CRDT ইত্যাদি) লাগে।

সহজ উদাহরণ

ভাবো একটা দেশজুড়ে চেইন রেস্তোরাঁ। আগে শুধু ঢাকায় একটা শাখা ছিল — চট্টগ্রামের কেউ খেতে চাইলে ঢাকায় আসতে হতো (high latency), আর ঢাকার শাখা বন্ধ হলে কেউ খেতেই পারত না (single point of failure)। এখন তারা ঢাকা, চট্টগ্রাম, সিলেটে শাখা খুলেছে (multi-region) — যে যার কাছের শাখায় যায় (geo-routing)। Active-active হলো — সব শাখা একসাথে খোলা, সবাই সেবা দেয়। Active-passive হলো — মূল শাখা ঢাকায়, কিন্তু একটা backup শাখা শুধু জরুরি অবস্থায় খোলে। আর প্রতিটি শাখায় মেনু/দাম একই রাখতে (data replication) head office থেকে নিয়মিত update পাঠাতে হয় — সেই update পৌঁছাতে দেরি হলেই অসংগতি।

কৌশল

Edge Computing ও CDN

multi-region-এর আরেক ধাপ এগিয়ে হলো edge। ব্যবহারকারীর আরও কাছে — শত শত ছোট location-এ (edge node) — content বা compute রাখা হয়।

  • CDN (Content Delivery Network): ছবি, video, CSS, JS-এর মতো static content ব্যবহারকারীর কাছের edge থেকে পরিবেশন করে। যেমন Cloudflare, Akamai, CloudFront।
  • Edge computing: শুধু content নয়, ছোট ছোট compute (যেমন Cloudflare Workers, Lambda@Edge)-ও edge-এ চালানো হয় — authentication, redirect, personalization ইত্যাদি ব্যবহারকারীর কাছেই হয়, central server-এ যেতে হয় না।

এর ফলে latency নাটকীয়ভাবে কমে, কারণ অনেক কাজ আর দূরের data center পর্যন্ত পৌঁছায় না।

কখন ব্যবহার করবে / করবে না

ব্যবহার করবে যখন:

  • ব্যবহারকারী বিশ্বজুড়ে ছড়ানো এবং low latency জরুরি।
  • উচ্চ availability/DR প্রয়োজন (একটি region বন্ধ হলেও চলবে)।
  • নিয়ন্ত্রক প্রয়োজন (data residency — নির্দিষ্ট দেশের data সেই দেশেই রাখতে হবে)।

করবে না যখন:

  • ব্যবহারকারী একটি অঞ্চলেই কেন্দ্রীভূত (যেমন শুধু বাংলাদেশের জন্য অ্যাপ — তখন static content-এ CDN যথেষ্ট, full multi-region নয়)।
  • দল ও বাজেট ছোট, কারণ multi-region-এর জটিলতা ও খরচ অনেক।
সাবধান

Multi-region অনেকের কাছে "বেশি server = বেশি নির্ভরযোগ্য" মনে হয়, কিন্তু এটি বিপুল জটিলতা যোগ করে — বিশেষ করে data consistency। Active-active-এ দুই region-এ একই data একসাথে বদলালে conflict হয়, আর asynchronous replication-এ ব্যবহারকারী এক region-এ লেখা data অন্য region-এ সাথে সাথে নাও দেখতে পারে। প্রকৃত প্রয়োজন (global user বা কঠোর DR) না থাকলে multi-region-এ ঝাঁপিয়ে পড়া উল্টো নতুন bug ও খরচ ডেকে আনে।

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

Netflix বিশ্বজুড়ে multi-region active-active চালায়। তাদের video content বিশ্বজুড়ে হাজার হাজার CDN edge node (Open Connect)-এ রাখা — তুমি যখন কোনো সিনেমা দেখো, সেটি তোমার ISP-র কাছের একটা edge থেকে আসে, সুদূর আমেরিকা থেকে নয়। এতে buffering কমে। আর কোনো একটা AWS region পুরো বন্ধ হলে তারা সেই region-এর traffic অন্য region-এ সরিয়ে দেয় — ব্যবহারকারী টেরও পায় না।

অন্যদিকে একটা বাংলাদেশভিত্তিক e-commerce, যাদের প্রায় সব ব্যবহারকারী দেশের ভেতরে, full multi-region করার দরকার নেই। তারা একটি প্রধান region (যেমন সিঙ্গাপুর) ব্যবহার করে, কিন্তু ছবি ও static asset-এর জন্য CDN ব্যবহার করে যা ঢাকার কাছের edge থেকে দ্রুত পরিবেশন করে। এতে অপেক্ষাকৃত কম খরচে ভালো performance পায়।

টিপস

Interview-তে "globally distributed system কীভাবে ডিজাইন করবে?" প্রশ্নে latency আর availability — এই দুই কারণ আলাদা করে বলো। তারপর active-active বনাম active-passive-এর trade-off (consistency বনাম খরচ) আলোচনা করো, আর জোর দাও যে আসল কঠিন সমস্যা হলো cross-region data replication ও consistency (এখানে CAP theorem টানো)। শেষে edge/CDN-এর কথা বললে দেখাবে তুমি latency-কে stack-এর সব স্তরে ভাবো।

মূল শব্দ (Key Terms)

মিনি কুইজ

1. Multi-region deployment-এর প্রধান দুটি কারণ কী?

2. Active-active আর active-passive-এর মূল পার্থক্য কী?

3. Edge computing / CDN কীভাবে latency কমায়?