কম্পিউটার

অ্যাপসিগন্যালে সিটাডেল আর্কিটেকচার

DHH সবেমাত্র "সিটাডেল" শব্দটি তৈরি করেছে, যা অবশেষে আমরা অ্যাপসিগন্যালে প্রযুক্তির সাথে কীভাবে যোগাযোগ করি তা উল্লেখ করার একটি চমৎকার উপায় দেয়। আমরা বললাম, "আরে, এই আমরা! আমাদের জিনিসের এখন একটি নাম আছে।"

অ্যাপসিগন্যাল কীভাবে সিটাডেল প্যাটার্ন ব্যবহার করে তা ব্যাখ্যা করার জন্য, আমরা আমাদের সিস্টেম কীভাবে কাজ করে সে সম্পর্কে কিছুটা শেয়ার করব। AppSignal হল একটি মনিটরিং পণ্য যার একটি ব্যবহারকারী-মুখী অ্যাপ্লিকেশন এবং একটি API রয়েছে যা পর্যবেক্ষণ এজেন্ট ডেটা পাঠায়। এই ডেটা তারপর প্রক্রিয়া করা হয় এবং গ্রাফ এবং অন্তর্দৃষ্টিতে পরিণত হয়৷

মনোলিথ

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

আমরা যখন এই Rails অ্যাপটি শুরু করি তখন আমাদের মনিটরিং এজেন্ট থেকেও ইনকামিং ডেটা প্রসেস করা হয়, আমরা আগে থেকেই দেখেছিলাম যে ডেটা ইনজেশন একটি বাধা হয়ে দাঁড়াবে। তাই আমরা একটি সাবডোমেনে চলমান একটি সিনাট্রা অ্যাপ ব্যবহার করেছি যা ডেটা ইনজেস্ট করে এবং Sidekiq কাজ তৈরি করে যা Rails অ্যাপ দ্বারা প্রক্রিয়া করা হয়েছিল।

ক্রমবর্ধমান ব্যথা

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

একটি ফাঁড়ি

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

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

অ্যাপসিগন্যালে কাফকা কীভাবে কাজ করে সে সম্পর্কে আপনি যদি আরও জানতে চান তবে এই সম্পর্কে আমি যে Railsconf আলোচনাটি দিয়েছিলাম তা দেখুন।

সিটাডেলের জীবন

এটি আমাদের বর্তমান পরিস্থিতিতে নিয়ে আসে যেখানে আমরা আমাদের দুর্গে খুব খুশি। যেমন DHH বলেছেন:

একটি একক ম্যাজেস্টিক মনোলিথ অত্যন্ত বিশেষায়িত এবং ভিন্ন ভিন্ন প্রয়োজনের জন্য কয়েকটি সহায়ক আউটপোস্ট অ্যাপের মাধ্যমে অ্যাপের সংখ্যাগরিষ্ঠ অংশকে ক্যাপচার করে।

আমাদের ক্ষেত্রে, আমাদের অত্যন্ত বিশেষায়িত প্রয়োজনের জন্য আমাদের একটি একক ফাঁড়ি পরিষেবা রয়েছে। যদি এই বছর একটি RailsConf থাকত, তাহলে আমরা DHH কে কিছু অতিরিক্ত স্ট্রোপওয়াফেল দিতাম এটিকে একটি নাম দেওয়ার জন্য প্রশংসা হিসেবে। 🍪


  1. ডেটাবেসলেস (ডিবিলেস) আর্কিটেকচার কী—এবং কেন এটি ভবিষ্যত

  2. ভিউ কম্পোনেন্ট রত্ন একটি ভূমিকা

  3. পরিবেশের ভেরিয়েবলের জন্য রুবিস্ট গাইড

  4. ছদ্মবেশী মোড:একটি মিথ