আমরা কিভাবে Roblox এর পরিকাঠামোকে আরও দক্ষ এবং স্থিতিস্থাপক করে তুলছি - Roblox Blog

আমরা কিভাবে Roblox এর পরিকাঠামোকে আরো দক্ষ এবং স্থিতিস্থাপক করে তুলছি – Roblox Blog

উত্স নোড: 2998456

গত 16+ বছরে Roblox যেমন বেড়েছে, তেমনি প্রযুক্তিগত পরিকাঠামোর স্কেল এবং জটিলতা রয়েছে যা লক্ষ লক্ষ নিমজ্জিত 3D সহ-অভিজ্ঞতাকে সমর্থন করে। আমরা যে মেশিনগুলিকে সমর্থন করি তা গত দুই বছরে তিনগুণেরও বেশি বেড়েছে, 36,000 জুন, 30 পর্যন্ত আনুমানিক 2021 থেকে আজ প্রায় 145,000 হয়েছে৷ সারা বিশ্বের লোকেদের জন্য এই সর্বদা-অভিজ্ঞতাগুলিকে সমর্থন করার জন্য 1,000টিরও বেশি অভ্যন্তরীণ পরিষেবার প্রয়োজন৷ খরচ এবং নেটওয়ার্ক লেটেন্সি নিয়ন্ত্রণে আমাদের সাহায্য করার জন্য, আমরা এই মেশিনগুলিকে একটি কাস্টম-বিল্ট এবং হাইব্রিড প্রাইভেট ক্লাউড অবকাঠামোর অংশ হিসাবে স্থাপন এবং পরিচালনা করি যা প্রাথমিকভাবে প্রাঙ্গনে চলে।  

আমাদের পরিকাঠামো বর্তমানে সারা বিশ্ব জুড়ে 70 মিলিয়নেরও বেশি দৈনিক সক্রিয় ব্যবহারকারীদের সমর্থন করে, যার মধ্যে সেই নির্মাতারা যারা রবলক্সের উপর নির্ভর করে অর্থনীতি তাদের ব্যবসার জন্য। এই লক্ষাধিক লোকের সবকটিই খুব উচ্চ স্তরের নির্ভরযোগ্যতা আশা করে। আমাদের অভিজ্ঞতার নিমগ্ন প্রকৃতির পরিপ্রেক্ষিতে, ল্যাগ বা বিলম্বের জন্য অত্যন্ত কম সহনশীলতা রয়েছে, বিভ্রাটের কথাই ছেড়ে দিন। Roblox হল যোগাযোগ এবং সংযোগের জন্য একটি প্ল্যাটফর্ম, যেখানে লোকেরা নিমজ্জিত 3D অভিজ্ঞতায় একত্রিত হয়। লোকেরা যখন একটি নিমজ্জিত স্থানে তাদের অবতার হিসাবে যোগাযোগ করে, এমনকি ছোটখাটো বিলম্ব বা ত্রুটিগুলি পাঠ্য থ্রেড বা কনফারেন্স কলের চেয়ে বেশি লক্ষণীয়।

2021 সালের অক্টোবরে, আমরা একটি সিস্টেম-ব্যাপী বিভ্রাটের অভিজ্ঞতা পেয়েছি। একটি ডেটা সেন্টারে একটি উপাদানে একটি সমস্যা সহ এটি ছোট শুরু হয়েছিল। কিন্তু আমরা তদন্ত করার সাথে সাথে এটি দ্রুত ছড়িয়ে পড়ে এবং শেষ পর্যন্ত 73 ঘন্টা বিভ্রাটের ফলে। সেই সময়, আমরা উভয় ভাগ করেছিলাম কি ঘটেছে সম্পর্কে বিস্তারিত এবং সমস্যা থেকে আমাদের কিছু প্রাথমিক শিক্ষা। সেই থেকে, আমরা সেই শিক্ষাগুলি অধ্যয়ন করে চলেছি এবং চরম ট্র্যাফিক স্পাইক, আবহাওয়া, হার্ডওয়্যার ব্যর্থতা, সফ্টওয়্যার বাগগুলির মতো কারণগুলির কারণে সমস্ত বৃহৎ-স্কেল সিস্টেমে ঘটে যাওয়া ব্যর্থতার ধরনগুলির জন্য আমাদের অবকাঠামোর স্থিতিস্থাপকতা বাড়ানোর জন্য কাজ করছি। মানুষ ভুল করে। যখন এই ব্যর্থতাগুলি ঘটে, তখন আমরা কীভাবে নিশ্চিত করব যে একটি একক উপাদান, বা উপাদানগুলির গোষ্ঠীতে একটি সমস্যা সম্পূর্ণ সিস্টেমে ছড়িয়ে পড়ে না? এই প্রশ্নটি গত দুই বছর ধরে আমাদের ফোকাস হয়েছে এবং কাজটি চলমান থাকার সময়, আমরা এখন পর্যন্ত যা করেছি তা ইতিমধ্যেই পরিশোধ করছে। উদাহরণস্বরূপ, 2023 সালের প্রথমার্ধে, 125 সালের প্রথমার্ধের তুলনায় আমরা প্রতি মাসে 2022 মিলিয়ন ব্যস্ততার ঘন্টা বাঁচিয়েছি। আজ, আমরা ইতিমধ্যেই করা কাজগুলি ভাগ করে নিচ্ছি, সেইসাথে নির্মাণের জন্য আমাদের দীর্ঘমেয়াদী দৃষ্টিভঙ্গি। আরও স্থিতিস্থাপক অবকাঠামো ব্যবস্থা।

একটি ব্যাকস্টপ নির্মাণ

বড় আকারের অবকাঠামো ব্যবস্থার মধ্যে, ছোট আকারের ব্যর্থতা দিনে অনেকবার ঘটে। যদি একটি মেশিনে একটি সমস্যা থাকে এবং পরিষেবার বাইরে নিয়ে যেতে হয়, তবে এটি পরিচালনাযোগ্য কারণ বেশিরভাগ কোম্পানি তাদের ব্যাক-এন্ড পরিষেবাগুলির একাধিক উদাহরণ বজায় রাখে। তাই যখন একটি একক দৃষ্টান্ত ব্যর্থ হয়, অন্যরা কাজের চাপ তুলে নেয়। এই ঘন ঘন ব্যর্থতার সমাধান করার জন্য, অনুরোধগুলি সাধারণত স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করার জন্য সেট করা হয় যদি তারা একটি ত্রুটি পায়।

এটি চ্যালেঞ্জিং হয়ে ওঠে যখন একটি সিস্টেম বা ব্যক্তি খুব আক্রমনাত্মকভাবে পুনরায় চেষ্টা করে, যা অন্যান্য পরিষেবা এবং সিস্টেমে অবকাঠামো জুড়ে প্রচার করার জন্য সেই ছোট-মাপের ব্যর্থতার জন্য একটি উপায় হয়ে উঠতে পারে। যদি নেটওয়ার্ক বা ব্যবহারকারী ক্রমাগতভাবে পর্যাপ্ত পরিমাণে পুনরায় চেষ্টা করে, তবে এটি অবশেষে সেই পরিষেবার প্রতিটি দৃষ্টান্ত এবং বিশ্বব্যাপী সম্ভাব্য অন্যান্য সিস্টেমগুলিকে ওভারলোড করবে। আমাদের 2021 বিভ্রাট এমন কিছুর ফলাফল ছিল যা বৃহৎ স্কেল সিস্টেমে মোটামুটি সাধারণ: একটি ব্যর্থতা ছোট শুরু হয় তারপর সিস্টেমের মাধ্যমে প্রচারিত হয়, এত দ্রুত বড় হয়ে গেলে সবকিছু নিচে নামার আগে সমাধান করা কঠিন। 

আমাদের বিভ্রাটের সময়, আমাদের একটি সক্রিয় ডেটা সেন্টার ছিল (এর মধ্যে থাকা উপাদানগুলি ব্যাকআপ হিসাবে কাজ করে)। আমাদের একটি নতুন ডেটা সেন্টারে ম্যানুয়ালি ব্যর্থ হওয়ার ক্ষমতা দরকার ছিল যখন একটি সমস্যা বিদ্যমানটিকে নিচে নিয়ে আসে। আমাদের প্রথম অগ্রাধিকার ছিল Roblox-এর একটি ব্যাকআপ স্থাপনা নিশ্চিত করা, তাই আমরা সেই ব্যাকআপটি একটি ভিন্ন ভৌগলিক অঞ্চলে অবস্থিত একটি নতুন ডেটা সেন্টারে তৈরি করেছি৷ এটি সবচেয়ে খারাপ পরিস্থিতির জন্য সুরক্ষা যোগ করেছে: একটি আউটেজ একটি ডেটা সেন্টারের মধ্যে যথেষ্ট উপাদানগুলিতে ছড়িয়ে পড়ে যে এটি সম্পূর্ণরূপে অকার্যকর হয়ে পড়ে। আমাদের কাছে এখন একটি ডেটা সেন্টার রয়েছে যা কাজের চাপ (সক্রিয়) পরিচালনা করে এবং একটি স্ট্যান্ডবাইতে, ব্যাকআপ (প্যাসিভ) হিসাবে পরিবেশন করে। আমাদের দীর্ঘমেয়াদী লক্ষ্য হল এই সক্রিয়-প্যাসিভ কনফিগারেশন থেকে একটি সক্রিয়-সক্রিয় কনফিগারেশনে চলে যাওয়া, যেখানে উভয় ডেটা সেন্টারই কাজের লোডগুলি পরিচালনা করে, একটি লোড ব্যালেন্সার সহ তাদের মধ্যে বিলম্ব, ক্ষমতা এবং স্বাস্থ্যের উপর ভিত্তি করে অনুরোধগুলি বিতরণ করে। একবার এটি হয়ে গেলে, আমরা আশা করি যে সমস্ত রোবলক্সের জন্য আরও বেশি নির্ভরযোগ্যতা থাকবে এবং কয়েক ঘন্টার চেয়ে প্রায় তাত্ক্ষণিকভাবে ব্যর্থ হতে সক্ষম হব।

একটি সেলুলার ইনফ্রাস্ট্রাকচারে চলে যাওয়া

আমাদের পরবর্তী অগ্রাধিকার ছিল প্রতিটি ডেটা সেন্টারের ভিতরে শক্তিশালী বিস্ফোরণ দেয়াল তৈরি করা যাতে পুরো ডেটা সেন্টারের ব্যর্থতার সম্ভাবনা কমানো যায়। কোষ (কিছু কোম্পানি তাদের ক্লাস্টার বলে) মূলত মেশিনের একটি সেট এবং আমরা কীভাবে এই দেয়ালগুলি তৈরি করছি। অতিরিক্ত অপ্রয়োজনীয়তার জন্য আমরা কক্ষের মধ্যে এবং জুড়ে উভয় পরিষেবার প্রতিলিপি করি৷ পরিশেষে, আমরা চাই Roblox-এর সমস্ত পরিষেবা সেলে চলবে যাতে তারা শক্তিশালী ব্লাস্ট দেয়াল এবং অপ্রয়োজনীয়তা উভয় থেকে উপকৃত হতে পারে। যদি একটি সেল আর কার্যকরী না হয়, তবে এটি নিরাপদে নিষ্ক্রিয় করা যেতে পারে। কক্ষ জুড়ে প্রতিলিপি সেল মেরামত করার সময় পরিষেবা চালু রাখতে সক্ষম করে। কিছু ক্ষেত্রে, সেল মেরামতের অর্থ ঘরের সম্পূর্ণ পুনর্বিন্যাস করা হতে পারে। শিল্প জুড়ে, একটি পৃথক মেশিন, বা মেশিনের একটি ছোট সেট মোছা এবং পুনর্বিন্যাস করা মোটামুটি সাধারণ, কিন্তু একটি সম্পূর্ণ সেলের জন্য এটি করা, যার মধ্যে ~1,400টি মেশিন রয়েছে, তা নয়। 

এটি কাজ করার জন্য, এই কোষগুলিকে অনেকাংশে অভিন্ন হতে হবে, যাতে আমরা দ্রুত এবং দক্ষতার সাথে কাজের চাপগুলি এক কোষ থেকে অন্য কোষে স্থানান্তর করতে পারি। আমরা নির্দিষ্ট কিছু প্রয়োজনীয়তা সেট করেছি যা পরিষেবাগুলি একটি কক্ষে চলার আগে পূরণ করতে হবে৷ উদাহরণস্বরূপ, পরিষেবাগুলি অবশ্যই কন্টেইনারাইজড হতে হবে, যা তাদের অনেক বেশি বহনযোগ্য করে তোলে এবং OS স্তরে কনফিগারেশন পরিবর্তন করতে কাউকে বাধা দেয়। আমরা কোষের জন্য একটি অবকাঠামো-কোড দর্শন গ্রহণ করেছি: আমাদের সোর্স কোড সংগ্রহস্থলে, আমরা একটি কক্ষে থাকা সমস্ত কিছুর সংজ্ঞা অন্তর্ভুক্ত করি যাতে আমরা স্বয়ংক্রিয় সরঞ্জাম ব্যবহার করে স্ক্র্যাচ থেকে দ্রুত পুনর্নির্মাণ করতে পারি। 

সমস্ত পরিষেবা বর্তমানে এই প্রয়োজনীয়তাগুলি পূরণ করে না, তাই আমরা পরিষেবার মালিকদের যেখানে সম্ভব সেগুলি পূরণ করতে সহায়তা করার জন্য কাজ করেছি, এবং প্রস্তুত হলে পরিষেবাগুলিকে কোষে স্থানান্তর করা সহজ করার জন্য আমরা নতুন সরঞ্জাম তৈরি করেছি৷ উদাহরণ স্বরূপ, আমাদের নতুন স্থাপনার টুল স্বয়ংক্রিয়ভাবে সেল জুড়ে একটি পরিষেবার স্থাপনাকে "স্ট্রাইপ" করে, তাই পরিষেবা মালিকদের প্রতিলিপি কৌশল সম্পর্কে চিন্তা করতে হবে না। কঠোরতার এই স্তরটি মাইগ্রেশন প্রক্রিয়াটিকে অনেক বেশি চ্যালেঞ্জিং এবং সময়সাপেক্ষ করে তোলে, তবে দীর্ঘমেয়াদী অর্থ প্রদান একটি সিস্টেম হবে যেখানে: 

  • এটি একটি ব্যর্থতা ধারণ করা অনেক সহজ এবং এটি অন্যান্য কোষে ছড়িয়ে পড়া থেকে প্রতিরোধ করা; 
  • আমাদের অবকাঠামো প্রকৌশলীরা আরও দক্ষ হতে পারে এবং আরও দ্রুত অগ্রসর হতে পারে; এবং 
  • প্রকৌশলী যারা পণ্য-স্তরের পরিষেবাগুলি তৈরি করে যা শেষ পর্যন্ত সেলগুলিতে মোতায়েন করা হয় তাদের পরিষেবাগুলি কোন কোষগুলিতে চলছে তা জানতে বা চিন্তা করার দরকার নেই৷

বড় চ্যালেঞ্জ সমাধান

আগুনের দরজাগুলি যেভাবে অগ্নিশিখা ধারণ করার জন্য ব্যবহার করা হয় তার অনুরূপ, কোষগুলি আমাদের পরিকাঠামোর মধ্যে শক্তিশালী বিস্ফোরণ প্রাচীর হিসাবে কাজ করে যা একটি একক কোষের মধ্যে যে কোনও সমস্যাকে ট্রিগার করে তা ধারণ করতে সহায়তা করে। অবশেষে, Roblox তৈরি করা সমস্ত পরিষেবাগুলি অপ্রয়োজনীয়ভাবে কোষের ভিতরে এবং জুড়ে স্থাপন করা হবে। একবার এই কাজটি সম্পূর্ণ হয়ে গেলে, সমস্যাগুলি এখনও একটি সম্পূর্ণ কোষকে অকার্যকর করার জন্য যথেষ্ট পরিমাণে প্রচার করতে পারে, কিন্তু একটি সমস্যার জন্য সেই কোষের বাইরে প্রচার করা অত্যন্ত কঠিন হবে। এবং যদি আমরা কোষগুলিকে বিনিময়যোগ্য করে তুলতে সফল হয় তবে পুনরুদ্ধার উল্লেখযোগ্যভাবে দ্রুত হবে কারণ আমরা একটি ভিন্ন কক্ষে ব্যর্থ হতে পারব এবং সমস্যাটিকে শেষ ব্যবহারকারীদের প্রভাবিত করা থেকে রক্ষা করতে পারব। 

যেখানে এটি কঠিন হয়ে যায় সেখানে এই কোষগুলিকে যথেষ্ট পরিমাণে আলাদা করা হয় যাতে ত্রুটিগুলি প্রচারের সুযোগ কমানো যায়, পাশাপাশি জিনিসগুলিকে কার্যকরী এবং কার্যকরী রাখা হয়। একটি জটিল অবকাঠামো ব্যবস্থায়, পরিষেবাগুলিকে প্রশ্ন, তথ্য, কাজের চাপ ইত্যাদি ভাগ করে নেওয়ার জন্য একে অপরের সাথে যোগাযোগ করতে হবে৷ যখন আমরা এই পরিষেবাগুলিকে কোষে প্রতিলিপি করি, তখন আমরা কীভাবে ক্রস-যোগাযোগ পরিচালনা করি সে সম্পর্কে আমাদের চিন্তাশীল হওয়া দরকার৷ একটি আদর্শ বিশ্বে, আমরা একটি অস্বাস্থ্যকর কোষ থেকে অন্য সুস্থ কোষে ট্রাফিককে পুনঃনির্দেশ করি। কিন্তু কিভাবে আমরা একটি "মৃত্যুর প্রশ্ন" পরিচালনা করব - এটি একটি যার ফলে একটি কোষ অস্বাস্থ্যকর হতে? যদি আমরা সেই ক্যোয়ারীটিকে অন্য কক্ষে পুনঃনির্দেশিত করি, তাহলে এটি সেই কোষটিকে অস্বাস্থ্যকর হয়ে উঠতে পারে যেভাবে আমরা এড়ানোর চেষ্টা করছি৷ অস্বাস্থ্যকর কোষ থেকে "ভাল" ট্র্যাফিক স্থানান্তর করার জন্য আমাদের এমন প্রক্রিয়া খুঁজে বের করতে হবে যখন কোষগুলি অস্বাস্থ্যকর হয়ে উঠছে এমন ট্র্যাফিক শনাক্ত করা এবং squelching করার সময়। 

স্বল্পমেয়াদে, আমরা প্রতিটি কম্পিউট কক্ষে কম্পিউটিং পরিষেবার অনুলিপি স্থাপন করেছি যাতে ডেটা সেন্টারে বেশিরভাগ অনুরোধ একটি একক সেল দ্বারা পরিবেশন করা যায়। এছাড়াও আমরা সেল জুড়ে ভারসাম্যপূর্ণ ট্রাফিক লোড করছি। আরও খোঁজ নিয়ে, আমরা একটি পরবর্তী-প্রজন্মের পরিষেবা আবিষ্কার প্রক্রিয়া তৈরি করা শুরু করেছি যা একটি পরিষেবা জাল দ্বারা লিভারেজ করা হবে, যা আমরা 2024 সালে সম্পূর্ণ করতে আশা করি। এটি আমাদের পরিশীলিত নীতিগুলি বাস্তবায়নের অনুমতি দেবে যা শুধুমাত্র ক্রস-সেল যোগাযোগের অনুমতি দেবে যখন এটা নেতিবাচকভাবে ব্যর্থ কোষ প্রভাবিত করবে না. এছাড়াও 2024 সালে আসছে একই কক্ষের একটি পরিষেবা সংস্করণে নির্ভরশীল অনুরোধগুলিকে নির্দেশ করার একটি পদ্ধতি, যা ক্রস-সেল ট্র্যাফিককে কমিয়ে দেবে এবং এর ফলে ব্যর্থতার ক্রস-সেল প্রচারের ঝুঁকি হ্রাস করবে।

সর্বোচ্চ পর্যায়ে, আমাদের ব্যাক-এন্ড পরিষেবার ট্র্যাফিকের 70 শতাংশেরও বেশি সেলের বাইরে পরিবেশন করা হচ্ছে এবং আমরা কীভাবে সেল তৈরি করতে হয় সে সম্পর্কে অনেক কিছু শিখেছি, কিন্তু আমরা 2024 সালের মধ্যে আমাদের পরিষেবাগুলিকে স্থানান্তরিত করার জন্য আরও গবেষণা এবং পরীক্ষার প্রত্যাশা করছি এবং তার পরেও. আমরা যতই এগিয়ে যাব, এই বিস্ফোরণ দেয়ালগুলি ক্রমশ শক্তিশালী হবে।

একটি সর্বদা চালু পরিকাঠামো স্থানান্তর

Roblox হল একটি গ্লোবাল প্ল্যাটফর্ম যা সারা বিশ্বে ব্যবহারকারীদের সমর্থন করে, তাই আমরা অফ-পিক বা "ডাউন টাইম" এর সময় পরিষেবাগুলিকে স্থানান্তর করতে পারি না, যা আমাদের সমস্ত মেশিনকে কোষে স্থানান্তরিত করার প্রক্রিয়াকে আরও জটিল করে তোলে এবং সেই কোষগুলিতে চালানোর জন্য আমাদের পরিষেবাগুলিকে আরও জটিল করে তোলে৷ . আমাদের লক্ষ লক্ষ সর্বদা-অন অভিজ্ঞতা রয়েছে যেগুলিকে সমর্থন করা চালিয়ে যেতে হবে, এমনকি আমরা যখন তারা চালিত মেশিনগুলি এবং তাদের সমর্থনকারী পরিষেবাগুলিকে সরিয়ে দিই। যখন আমরা এই প্রক্রিয়াটি শুরু করি, তখন আমাদের কাছে কয়েক হাজার মেশিন ছিল না যা অব্যবহৃত এবং এই কাজের চাপগুলিকে স্থানান্তর করার জন্য উপলব্ধ ছিল। 

তবে, আমাদের কাছে অল্প সংখ্যক অতিরিক্ত মেশিন রয়েছে যা ভবিষ্যতের বৃদ্ধির প্রত্যাশায় কেনা হয়েছিল। শুরু করার জন্য, আমরা সেই মেশিনগুলি ব্যবহার করে নতুন সেল তৈরি করেছি, তারপরে কাজের লোডগুলিকে স্থানান্তরিত করেছি৷ আমরা দক্ষতার পাশাপাশি নির্ভরযোগ্যতাকে গুরুত্ব দিই, তাই "অতিরিক্ত" মেশিনগুলি শেষ হয়ে গেলে বাইরে গিয়ে আরও বেশি মেশিন কেনার পরিবর্তে আমরা যে মেশিনগুলি থেকে স্থানান্তরিত হয়েছি সেগুলিকে মুছে এবং পুনর্বিন্যাস করার মাধ্যমে আমরা আরও সেল তৈরি করেছি। তারপরে আমরা সেই পুনর্বিন্যাস করা মেশিনগুলিতে কাজের চাপ স্থানান্তরিত করেছি এবং আবার প্রক্রিয়াটি শুরু করেছি। এই প্রক্রিয়াটি জটিল - যেহেতু মেশিনগুলিকে প্রতিস্থাপিত করা হয় এবং কোষে তৈরি করা যায়, সেগুলি একটি আদর্শ, সুশৃঙ্খল ফ্যাশনে মুক্ত হয় না। এগুলি শারীরিকভাবে ডেটা হল জুড়ে খণ্ডিত, আমাদেরকে সেগুলিকে টুকরো টুকরো করে দেওয়ার জন্য ছেড়ে দেয়, যার জন্য হার্ডওয়্যার অবস্থানগুলিকে বড় আকারের শারীরিক ব্যর্থতা ডোমেনের সাথে সারিবদ্ধ রাখতে একটি হার্ডওয়্যার-স্তরের ডিফ্র্যাগমেন্টেশন প্রক্রিয়ার প্রয়োজন হয়৷ 

আমাদের ইনফ্রাস্ট্রাকচার ইঞ্জিনিয়ারিং টিমের একটি অংশ আমাদের উত্তরাধিকার বা "প্রি-সেল" পরিবেশ থেকে বিদ্যমান ওয়ার্কলোডগুলিকে কোষে স্থানান্তরিত করার উপর দৃষ্টি নিবদ্ধ করে৷ এই কাজটি চলতে থাকবে যতক্ষণ না আমরা হাজার হাজার বিভিন্ন অবকাঠামো পরিষেবা এবং হাজার হাজার ব্যাক-এন্ড পরিষেবাগুলিকে নতুন নির্মিত কক্ষে স্থানান্তরিত করি। আমরা আশা করি যে কিছু জটিল কারণের কারণে এটি পরের বছর এবং সম্ভবত 2025 সাল পর্যন্ত লাগবে। প্রথমত, এই কাজের জন্য শক্তিশালী টুলিং তৈরি করা প্রয়োজন। উদাহরণস্বরূপ, যখন আমরা একটি নতুন সেল স্থাপন করি—আমাদের ব্যবহারকারীদের প্রভাবিত না করেই স্বয়ংক্রিয়ভাবে অনেক সংখ্যক পরিষেবার ভারসাম্য বজায় রাখতে আমাদের টুলিং প্রয়োজন। আমরা এমন পরিষেবাগুলিও দেখেছি যা আমাদের পরিকাঠামো সম্পর্কে অনুমান নিয়ে তৈরি করা হয়েছিল৷ আমাদের এই পরিষেবাগুলিকে সংশোধন করতে হবে যাতে সেগুলি এমন জিনিসগুলির উপর নির্ভর না করে যা আমরা কোষে যাওয়ার সাথে সাথে ভবিষ্যতে পরিবর্তিত হতে পারে। আমরা সেলুলার আর্কিটেকচারের সাথে ভালভাবে কাজ করে না এমন পরিচিত ডিজাইনের প্যাটার্নগুলি অনুসন্ধান করার উপায় এবং সেইসাথে স্থানান্তরিত প্রতিটি পরিষেবার জন্য একটি পদ্ধতিগত পরীক্ষা প্রক্রিয়া উভয়ই প্রয়োগ করেছি। এই প্রক্রিয়াগুলি আমাদেরকে পরিষেবার সাথে বেমানান হওয়ার কারণে ব্যবহারকারী-মুখী সমস্যাগুলি সমাধান করতে সহায়তা করে।

আজ, প্রায় 30,000 মেশিন কোষ দ্বারা পরিচালিত হচ্ছে। এটি আমাদের মোট বহরের একটি ভগ্নাংশ মাত্র, কিন্তু এটি এখন পর্যন্ত একটি খুব মসৃণ পরিবর্তন হয়েছে যার কোনো নেতিবাচক প্রভাব নেই। আমাদের চূড়ান্ত লক্ষ্য হল আমাদের সিস্টেমের জন্য প্রতি মাসে 99.99 শতাংশ ব্যবহারকারী আপটাইম অর্জন করা, যার অর্থ আমরা 0.01 শতাংশের বেশি ব্যস্ততার সময় ব্যাহত করব না। ইন্ডাস্ট্রি জুড়ে, ডাউনটাইম সম্পূর্ণভাবে বাদ দেওয়া যায় না, তবে আমাদের লক্ষ্য হল যে কোনও রোবলক্স ডাউনটাইমকে এমন একটি ডিগ্রীতে হ্রাস করা যাতে এটি প্রায় চোখে পড়ে না।

আমরা স্কেল হিসাবে ভবিষ্যত-প্রুফিং

যদিও আমাদের প্রাথমিক প্রচেষ্টা সফল প্রমাণিত হচ্ছে, কোষগুলিতে আমাদের কাজ করা অনেক দূরে। Roblox যেমন স্কেল করতে চলেছে, আমরা এই এবং অন্যান্য প্রযুক্তির মাধ্যমে আমাদের সিস্টেমের দক্ষতা এবং স্থিতিস্থাপকতা উন্নত করতে কাজ চালিয়ে যাব। আমরা যতই যাব, প্ল্যাটফর্মটি সমস্যাগুলির জন্য ক্রমশ স্থিতিস্থাপক হয়ে উঠবে এবং যে কোনও সমস্যা ঘটলে তা আমাদের প্ল্যাটফর্মের লোকেদের কাছে ধীরে ধীরে কম দৃশ্যমান এবং বিঘ্নিত হওয়া উচিত।

সংক্ষেপে, আজ পর্যন্ত, আমাদের আছে: 

  • একটি দ্বিতীয় ডেটা সেন্টার তৈরি করেছেন এবং সফলভাবে সক্রিয়/প্যাসিভ স্ট্যাটাস অর্জন করেছেন। 
  • আমাদের সক্রিয় এবং প্যাসিভ ডেটা সেন্টারে সেল তৈরি করেছি এবং আমাদের ব্যাক-এন্ড পরিষেবা ট্র্যাফিকের 70 শতাংশের বেশি সফলভাবে এই কক্ষগুলিতে স্থানান্তরিত করেছে৷
  • আমাদের বাকি অবকাঠামো স্থানান্তর করা চালিয়ে যাওয়ার সাথে সাথে সমস্ত কক্ষকে অভিন্ন রাখতে আমাদের অনুসরণ করতে হবে এমন প্রয়োজনীয়তা এবং সর্বোত্তম অনুশীলনগুলি সেট করুন৷ 
  • কোষগুলির মধ্যে শক্তিশালী "বিস্ফোরণ দেয়াল" নির্মাণের একটি ক্রমাগত প্রক্রিয়া শুরু করে। 

এই কোষগুলি আরও বিনিময়যোগ্য হয়ে উঠলে, কোষগুলির মধ্যে কম ক্রসস্টাল থাকবে। এটি মনিটরিং, সমস্যা সমাধান এবং এমনকি কাজের চাপ স্বয়ংক্রিয়ভাবে স্থানান্তরিত করার ক্ষেত্রে অটোমেশন বাড়ানোর ক্ষেত্রে আমাদের জন্য কিছু আকর্ষণীয় সুযোগ আনলক করে। 

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

প্ল্যাটফর্মে আরও দক্ষতা এবং স্থিতিস্থাপকতা আনতে আমরা এই কাজটিকে এগিয়ে নিয়ে যেতে উত্তেজিত। কোষ এবং সক্রিয়-সক্রিয় অবকাঠামোর উপর এই কাজটি, আমাদের অন্যান্য প্রচেষ্টার সাথে, লক্ষ লক্ষ মানুষের জন্য একটি নির্ভরযোগ্য, উচ্চ কার্যসম্পাদনকারী ইউটিলিটিতে পরিণত হওয়া এবং আমরা বাস্তবে এক বিলিয়ন লোককে সংযুক্ত করার জন্য কাজ করার সময় স্কেল চালিয়ে যেতে পারি। সময়

সময় স্ট্যাম্প:

থেকে আরো Roblox