ট্রিলিয়ন ট্রিলিয়ন অথরাইজেশন: গুগল কীভাবে 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
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 MehediGet new posts by email
No spam. Unsubscribe anytime.
Related posts
- মাইক্রোসার্ভিস প্যাটার্ন: সিস্টেমকে পানির মতো সহজ করার ৪টি উপায়!মাইক্রোসার্ভিস বানানো মানে শুধু কোড আলাদা করা নয়, বরং ডাটা আর লজিককে বুদ্ধি খাটিয়ে সাজানো। আপনার সিস্টেমকে পানির মতো সহজ করার ৪টি উপায় জেনে নিন। - 3 min read
- নেটফ্লিক্স কীভাবে ৮০০ কোটি নোড আর ১৫০০০ কোটি এজ হ্যান্ডেল করে?নেটফ্লিক্সের মতো বিশাল কোম্পানিতে আপনার মুভি দেখার সব প্রেফারেন্স রিয়েল টাইমে কানেক্ট করে একটা পারফেক্ট জার্নি তৈরি করা ছিল এক পাহাড় সমান কাজ। এই সমস্যা সমাধানের জন্যই নেটফ্লিক্স তৈরি করেছে তাদের Real Time Distributed Graph (RDG)। - 3 min read
- Forward Deployed Engineering (FDE): এআই-ড্রাইভেন সফটওয়্যার ইন্ডাস্ট্রির মোস্ট ডিমান্ডিং রোলসফটওয়্যার ডেভেলপমেন্টের ভবিষ্যৎ আর ল্যাপটপের স্ক্রিনে কোড টাইপ করার মধ্যে সীমাবদ্ধ নেই। অটোমেটেড কোড জেনারেশন ও রিয়েল ওয়ার্ল্ড ডেপ্লয়মেন্ট-এর এই যুগে সবচেয়ে পাওয়ারফুল রোল হতে যাচ্ছে FDE। - 1 min read


Comments