Mehedi Imun
Back to Blog

ট্রিলিয়ন ট্রিলিয়ন অথরাইজেশন: গুগল কীভাবে Zanzibar দিয়ে পারমিশন ম্যানেজ করে?

Mehedi Imun2 min read
ZanzibarSystem ArchitectureGoogleAuthorizationBackend
গুগল Zanzibar অথরাইজেশন সিস্টেম

ট্রিলিয়ন ট্রিলিয়ন অথরাইজেশন: গুগল কীভাবে Zanzibar দিয়ে পারমিশন ম্যানেজ করে?

আপনি যখন গুগলে একটি ফাইল শেয়ার করেন বা ইউটিউবে কোনো ভিডিওর এক্সেস কাউকে দেন, তখন ব্যাকএন্ডে একটি বিশাল ইনফ্রাস্ট্রাকচার কাজ করে। এর নাম Zanzibar। এটি গুগলের একটি গ্লোবাল অথরাইজেশন সিস্টেম যা প্রতি সেকেন্ডে ১০ মিলিয়নেরও বেশি পারমিশন চেক হ্যান্ডেল করে। ড্রাইভ, ইউটিউব, ম্যাপস এবং ফটোসের মতো সার্ভিসগুলো এর ওপর নির্ভরশীল।

অথরাইজেশন সিস্টেমে একটি বড় সমস্যা হলো Stale Data বা পুরনো ডেটা। ধরুন, আপনি একজনকে একটি সেনসিটিভ ফাইল থেকে রিমুভ করলেন এবং সাথে সাথে নতুন কিছু কন্টেন্ট যোগ করলেন। যদি পারমিশন আপডেট হতে কয়েক সেকেন্ড দেরি হয়, তবে ওই ইউজার রিমুভ হওয়ার পরেও সেই নতুন তথ্য দেখে ফেলতে পারে। গুগল একে বলে "New Enemy" প্রবলেম।

Zanzibar ওয়ার্ল্ডওয়াইড ১০,০০০-এর বেশি সার্ভারে চলে। এর বিশাল লোড সামলাতে তিনটি বিশেষ স্ট্রাটেজি ব্যবহার করা হয়:

1. ডিস্ট্রিবিউটেড ক্যাশিং Zanzibar সব পারমিশন চেক ক্যাশ করে রাখে। Consistent Hashing ব্যবহার করে একই ধরণের চেক একই সার্ভারে পাঠানো হয়, যাতে মেমোরি থেকে দ্রুত রেজাল্ট দেওয়া যায়।

2. রিকোয়েস্ট ডিডুপ্লিকেশন যদি একই সাথে ১০০০ জন ইউজার একটি ভিডিওর পারমিশন চেক করতে চায়, তবে Zanzibar ১০০০টি আলাদা কুয়েরি চালায় না। সে শুধু ১টি কুয়েরি রান করে এবং সেই রেজাল্ট সবার মাঝে ডিস্ট্রিবিউট করে দেয়। এতে ডাটাবেজের ওপর চাপ কমে।

3. লিওপার্ড ইনডেক্সিং অনেক সময় গ্রুপ মেম্বারশিপ অনেক ডিপ হতে পারে (যেমন: গ্রুপ A-র মেম্বার গ্রুপ B, তার মেম্বার গ্রুপ C)। এই চেইন খুঁজে বের করা সময়সাপেক্ষ। Leopard এই পুরো চেইনটিকে আগেই Pre-compute করে রাখে যাতে সার্চ রেজাল্ট মিলিসেকেন্ডে পাওয়া যায়।

গুগলের ইঞ্জিনিয়ারিং টিম জানিয়েছে যে Zanzibar:

  • ৯৯% পারমিশন চেক সম্পন্ন করে মাত্র ৩-৯ মিলিসেকেন্ডে।
  • এর অ্যাভেইলেবিলিটি ৯৯.৯৯৯% গত ৩ বছরে এটি মাত্র কয়েক মিনিটের জন্য ডাউন ছিল। রাইট অপারেশন, পারমিশন আপডেট, কিছুটা স্লো ১২৭ মিলি সেকেন্ড, কারণ এটি ওয়ার্ল্ডওয়াইড ডেটা কনসিস্টেন্সি নিশ্চিত করে।

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

বর্তমানে কিছু ওপেন-সোর্স প্রজেক্ট যেমন: SpiceDB, Ory Keto Zanzibar-এর এই ফিলোসফির ওপর ভিত্তি করেই তৈরি হয়েছে।

গুগলের এই অসাধারণ সিস্টেমটি সম্পর্কে আরও বিস্তারিত জানতে নিচের অফিশিয়াল পেপার এবং রিসোর্স ফলো করতে পারেন: https://research.google/pubs/zanzibar-googles-consistent-global-authorization-system

Mehedi Imun

Mehedi Imun

Full Stack Web Developer

Full stack web developer in Dhaka, Bangladesh building web products end to end with React, Next.js, Node and PostgreSQL. API design, Docker and CI/CD.

More about Mehedi

Get new posts by email

No spam. Unsubscribe anytime.

Comments