Cloudflare Just Took Down the Internet—And It Wasn’t Even a Hack. How Did a Permissions Change Cause a Global Outage?
ক্লাউডফ্লেয়ার ইন্টারনেট বন্ধ করে দিল—অথচ হ্যাক নয়! শুধু একটা 'পারমিশন পরিবর্তন' কীভাবে গোটা বিশ্বজুড়ে আউটেজ ঘটালো?

তাহলেই কি ইন্টারনেট রক্ষা করার জন্য তৈরি ক্লাউডফ্লেয়ারই শুধু একটি টাইপো-জাতীয় ভুলে সারা জগৎকে মাটিতে নামিয়ে আনল? কিন্তু টাইপো ছিল না। এটা ছিল ডেটাবেসের পারমিশন আপডেট—এতটাই ছোট যে দলটি এটিকে উচ্চ-ঝুঁকির হিসাবেও চিহ্নিত করেনি। একটি ছোট কোয়েরি পথভ্রষ্ট হয়ে একটি কনফিগ ফাইল দ্বিগুণ করে দেয়, আর ধামাকা: সর্বত্র 5xx এরর। এটা DDoS ছিল না। এটা কোনো ব্রিচ ছিল না। এটা ছিল একটি নাজুক কাঠামোয় আত্মবিশ্বাসের ধাক্কা।
আরও কথা হলো? তথ্য দেওয়ার জন্য যে স্ট্যাটাস পেজ ছিল, সেটিও অফলাইন হয়ে গেল। কারণ তা নিজেদের সার্ভারে চলছিল না—কিন্তু ভাগ্যের কালো আনন্দবোধের কারণে। প্রকৃত ভয়: আমরা এমন একটি প্রযুক্তিগত বাস্তুতন্ত্র গড়ে তুলেছি যেখানে একটি কোম্পানির 'ছোট ডেটাবেস পরিবর্তন' টিকটক, চ্যাটজিপিটি এমনকি আপনার ব্যাংক লগইন পৃষ্ঠাকেও বন্ধ করে দিতে পারে। আর হ্যাঁ, তাদের এখনও গোলকীয় 'কিল সুইচ' নেই। এরপর আর কী হতে পারে?
২০২৫-এ কোনো গ্লোবাল কিল সুইচ নেই? প্রকৃতপক্ষে? প্রতিটি গুরুত্বপূর্ণ সিস্টেমে একটি লাল বোতাম থাকা উচিত যা লিখবে 'আগুন বন্ধ করো এখনই'। কিন্তু না, বরং আমাদের আছে একটি বিতরিত কনফিগ সিস্টেম যা একটি ফাইলের মাত্র পাঁচটি লাইনে ভেঙে যেতে পারে। এটি ইঞ্জিনিয়ারিং নয়—এটা YAML-এর সাথে রাশিয়ান রুলেট।
এমন তিনটি আউটেজ এর মধ্যে কাজ করার পর বলতে হয়—আতঙ্ক দুশমন। যখন আপনার মস্তিষ্ক 'যুদ্ধ-না-পলায়ন' মোডে থাকে, তখন কোড ঠিক করা যায় না। প্রকৃত শিক্ষা কিল সুইচ নিয়ে নয়। এটা SRE দলে মানসিক সুরক্ষা নিয়ে: মানুষ যেন 'আমি এটা ভাঙছি' বলতে পারে ভয় ছাড়া। কারণ যদি না পারে, তবে পরের বার দ্বিগুণ সময় লাগবে।
হ্যাঁ, আমরা ভুল করেছি। একটি পারমিশন পরিবর্তন প্রতিক্রিয়ার স্রোত শুরু করেছে। কিন্তু আমরা এটি চিহ্নিত করেছি, সংশোধন করেছি এবং মূল প্রক্রিয়া ঠিক করছি। আমরা কনফিগ ফাইলগুলোর জন্য কঠোর বৈধতা যুক্ত করছি এবং হ্যাঁ, আপনি অনুমান করেছেন—একটি গ্লোবাল রোলব্যাক সুইচ। এটা খারাপ ছিল, আর আমরা তা মেনে নিচ্ছি।
আমার সময়ে, আমরা স্টেজিং সার্ভারে 48 ঘন্টা ধরে কনফিগ পরিবর্তনের পরীক্ষা করতাম। তোমরা শিশুরা ১১:০৫ এ ডেটাবেস পরিবর্তন করে ইন্টারনেট চালু রাখার আশা কর? অকাল্পনিক।
পুরনো ধরনের সিস্টেম প্রশাসকের উদ্দেশ্যে: স্টেজিংয়ে পরীক্ষা ভালো, কিন্তু ক্লাউডফ্লেয়ারের ট্র্যাফিক প্যাটার্ন স্টেজিংয়ে অনুকরণ করা যায় না। এটাই বড় প্রতিষ্ঠানের অভিশাপ। আমরা প্রডাকশনেই পরীক্ষা করি—ক্যানারি এবং নীল/সবুজ মাধ্যমে। আসল সমস্যা ছিল না রোলআউটের গতি। ছিল ফিচার পাইপলাইনে সার্কিট ব্রেকারের অনুপস্থিতি।
এই ছবি আগেও দেখেছি। খলনায়ক কোড বা ফায়ারওয়াল নয়। মানুষ, যারা সহনশীলতার চেয়ে গতি বেছে নেয়। আমরা নিরাপত্তার আগেই নতুন ফিচার যোগ করি। আর এরপর আশ্চর্য হই কেন প্রতি 18 মাসে ইন্টারনেট ভেঙে পড়ে।
এই কারণে আমাদের জিরো-ট্রাস্ট কাঠামো দরকার—অভ্যন্তরীণ কোয়েরির জন্যও। ব্রিচকে ধরে নাও। ভুল কনফিগারেশনকে ধরে নাও। ব্যর্থতার জন্য ডিজাইন করো। যদি প্রতিটি অভ্যন্তরীণ মাইক্রোসার্ভিসে রেট লিমিটিং এবং কনফিগ গ্রহণে স্কিমা যাচাই থাকত, তাহলে এটা হত না।
আমি আমার বিশৃঙ্খলা পরীক্ষার হস্তপাঠে 'ডুপ্লিকেট মেটাডেটা প্রবেশ' যুক্ত করছি। যদি আপনার সিস্টেম এটি সামলাতে না পারে, তবে আপনি যথেষ্ট পরীক্ষা করেননি।