রুবি অন রেল সার্ভার অপশন [বন্ধ]


578

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

আমি ওয়েইব্রিক ব্যবহার শুরু করেছি এবং এখন আমি উন্নয়নের জন্য মংগ্রেল ব্যবহার করছি। এই সার্ভারগুলি কি একা দাঁড়িয়ে আছে, না তারা অ্যাপাচের সামনে বসে আছে?

আমি যাত্রীবাহী সম্পর্কে পড়েছি এবং এটি আসলে কী তা আমি সত্যিই বুঝতে পারি না, সাইটটি বলেছে "রুবি ওয়েব অ্যাপ্লিকেশন স্থাপনাকে একটি বাতাস বানিয়েছে", এটি কি মংরলেসকে প্রতিস্থাপন করে? এটি কি ক্যাপিস্ট্রানোর মতো, যা ওয়েব অ্যাপ্লিকেশনগুলিও স্থাপন করে?

মনে রেখে আমি এসএসএল পরীক্ষা করতে চাই, এবং আমি বিশ্বাস করি যে এটি মোংরেল দ্বারা সমর্থিত নয়, সেরা বিকাশ সার্ভার সেটআপ কী?

ধন্যবাদ


2
আপনি কি ফিউশন প্যাসেঞ্জারের স্ক্রিনকাস্ট দেখেছেন? এটি আপনার রেল অ্যাপ্লিকেশন অনলাইনে রাখার জন্য প্রয়োজনীয় সমস্ত 5 মিনিটের মধ্যে বর্ণনা করে।
হংলি

27
একটি সংবিধানমূলক প্রশ্নের জন্য, এটি নিশ্চিতভাবে প্রচুর পরিমাণে উন্নতি করেছে এবং এর উত্তরও রয়েছে।
তিমু লেইস্তি

32
আমি জানি এই প্রশ্নটি এসও এর নিয়মগুলি ভঙ্গ করে তবে আমি ভাবছি যে প্রচুর ব্যবহারকারী এই প্রশ্নটি দরকারী মনে করেন সম্ভবত কিছু নিয়ম সংশোধন করার সময় এসেছে?
হার্ডিক

উত্তর:


1263

"স্থাপনা" শব্দের প্রসঙ্গের উপর নির্ভর করে দুটি অর্থ হতে পারে। আপনি অন্যান্য উপাদানগুলির ভূমিকা সহ অ্যাপাচি / এনগিনেক্সের ভূমিকা গুলিয়ে ফেলছেন।

Noteতিহাসিক দ্রষ্টব্য: এই নিবন্ধটি মূলত রবি অ্যাপ্লিকেশন সার্ভার ইকোসিস্টেমটি সীমাবদ্ধ থাকাকালীন ২০১০ সালের নভেম্বর মাসে লেখা হয়েছিল। আমি এই নিবন্ধটি ইকোসিস্টেমের সমস্ত সর্বশেষ আপডেটের সাথে 15 ই মার্চ 2013 এ আপডেট করেছি।

দাবি অস্বীকার: আমি অ্যাপ সার্ভারগুলির মধ্যে অন্যতম ফিউশন প্যাসেঞ্জারের অন্যতম লেখক।

অ্যাপাচি বনাম এনগিনেক্স

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

অ্যাপাচি বা এনগিনেক্স কেউই রুবি ওয়েব অ্যাপ্লিকেশনগুলিকে বাক্সের বাইরে পরিবেশন করতে পারে না, এটি করার জন্য আপনাকে পরে বর্ণিত কিছু প্রকারের অ্যাড-অনের সাথে অ্যাপাচি / এনগিনেক্স ব্যবহার করতে হবে।

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

মোংরেল এবং অন্যান্য প্রযোজনা অ্যাপ্লিকেশন সার্ভার বনাম ডব্লিউইব্রিক

মংগ্রেল হ'ল একটি রুবি "অ্যাপ্লিকেশন সার্ভার": কংক্রিটের পরিভাষায় এর অর্থ মঙ্গরেল একটি অ্যাপ্লিকেশন যা:

  1. আপনার রুবি অ্যাপ্লিকেশনটিকে তার নিজস্ব প্রক্রিয়া জায়গার ভিতরে লোড করে।
  2. একটি টিসিপি সকেট সেট আপ করুন, এটি বাইরের বিশ্বের সাথে যোগাযোগের অনুমতি দেয় (যেমন ইন্টারনেট)। মংগ্রেল এই সকেটে এইচটিটিপি অনুরোধের জন্য শোনায় এবং অনুরোধের ডেটা রুবি ওয়েব অ্যাপ্লিকেশনটিতে দেয়।
  3. এরপরে রুবি ওয়েব অ্যাপ্লিকেশনটি প্রত্যাবর্তন করে, যা HTTP প্রতিক্রিয়াটি কেমন হওয়া উচিত তা বর্ণনা করে এবং মংগ্রেল এটিকে সত্যিকারের এইচটিটিপি প্রতিক্রিয়াতে (প্রকৃত বাইটস) রূপান্তরিত করার যত্ন নেয় এবং সকেটের উপরে এটি আবার প্রেরণ করে।

তবে মঙ্গরেল বেশ তারিখের, আজকাল আর এটি রক্ষণ করা হয় না। আরও নতুন বিকল্প অ্যাপ্লিকেশন সার্ভারগুলি হ'ল:

  • ফিউশন যাত্রী
  • ইউনিকর্ন
  • পাতলা
  • বনবিড়াল
  • ত্রিনিদাদ (কেবল জে আরবি)
  • টর্কবক্স (কেবল জেআরবি)

আমি সেগুলি পরে আচ্ছাদন করব এবং বর্ণনা করব যে তারা কীভাবে একে অপরের থেকে এবং মংগ্রেলের থেকে আলাদা।

ওয়েবারিক মংগ্রেলের মতো একই কাজ করে তবে পার্থক্যগুলি হ'ল:

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

অ্যাপ্লিকেশন সার্ভার এবং বিশ্ব

সমস্ত বর্তমান রুবি অ্যাপ্লিকেশন সার্ভারগুলি এইচটিটিপি কথা বলে, তবে কিছু অ্যাপ সার্ভারগুলি সরাসরি 80 এর বন্দরে ইন্টারনেটে প্রকাশিত হতে পারে, অন্যরা নাও পারে।

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

কিছু অ্যাপ্লিকেশন সার্ভারকে কেন বিপরীত প্রক্সিের পিছনে রাখা উচিত?

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

কিছু অ্যাপ সার্ভার কেন সরাসরি ইন্টারনেটে প্রকাশিত হতে পারে?

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

অ্যাপ্লিকেশন সার্ভারগুলির সাথে তুলনা করা

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

  • মঙ্গরেল বেশ খালি হাড় ছিল। পূর্বে উল্লিখিত হিসাবে, মংগ্রেল সম্পূর্ণরূপে একক থ্রেডযুক্ত বহু-প্রক্রিয়া, সুতরাং এটি কেবল একটি ক্লাস্টারে কার্যকর। কোনও প্রক্রিয়া পর্যবেক্ষণ নেই: যদি ক্লাস্টারে কোনও প্রক্রিয়া ক্র্যাশ হয়ে যায় (যেমন অ্যাপ্লিকেশনে কোনও বাগের কারণে) তবে এটি ম্যানুয়ালি পুনরায় চালু করা দরকার। লোকেরা মনিট এবং গডের মতো বাহ্যিক প্রক্রিয়া পর্যবেক্ষণ সরঞ্জামগুলি ব্যবহার করার প্রবণতা রাখে।
  • ইউনিকর্ন মোংরেলের একটি কাঁটাচামচ। এটি সীমিত প্রক্রিয়া পর্যবেক্ষণকে সমর্থন করে: যদি কোনও প্রক্রিয়া ক্রাশ হয় তবে তা স্বয়ংক্রিয়ভাবে মাস্টার প্রক্রিয়া দ্বারা পুনরায় শুরু হবে। এটি প্রতিটি প্রক্রিয়াটির জন্য পৃথক সকেটের পরিবর্তে সমস্ত প্রক্রিয়াগুলি একটি একক ভাগ করা সকেটে শুনতে পারে make এটি বিপরীত প্রক্সি কনফিগারেশনকে সহজতর করে। মংগ্রেলের মতো এটি খাঁটি একক থ্রেডযুক্ত মাল্টি-প্রক্রিয়া।
  • পাতলা ইভেন্ট ইভেন্টের লাইব্রেরিটি ব্যবহার করে সজ্জিত I / O মডেলটি ব্যবহার করে। মংগ্রেল এইচটিটিপি পার্সার ব্যবহার করা ব্যতীত, এটি কোনওভাবেই মোংরলে ভিত্তিক নয়। এর ক্লাস্টার মোডে কোনও প্রক্রিয়া পর্যবেক্ষণ নেই সুতরাং আপনার ক্র্যাশগুলি নিরীক্ষণ করা দরকার etc. তত্ত্ব অনুসারে, থিনের আই / ও মডেল উচ্চ সম্মিলনকে মঞ্জুরি দেয় তবে বেশিরভাগ ব্যবহারিক পরিস্থিতিতে যে পাতলা ব্যবহার করা হয় তার মধ্যে একটি পাতলা প্রক্রিয়া কেবলমাত্র 1 টি সমবর্তী অনুরোধ পরিচালনা করতে পারে, সুতরাং আপনার এখনও একটি ক্লাস্টারের প্রয়োজন। "I / O সম্মতিযুক্ত মডেল" বিভাগে এই অদ্ভুত সম্পত্তি সম্পর্কে আরও।
  • পুমাকেও মোংরেল থেকে কাঁটাচামচ করা হয়েছিল, তবে ইউনিকর্নের মতো নয়, পুমাকে একেবারে বহু-থ্রেডযুক্ত করা হয়েছে। অতএব বর্তমানে কোনও বিল্টিন ক্লাস্টার সমর্থন নেই। আপনি একাধিক কোর ব্যবহার করতে পারেন তা নিশ্চিত করার জন্য আপনাকে বিশেষ যত্ন নিতে হবে ("I / O সমাবর্তন মডেল" বিভাগে এটি সম্পর্কে আরও)।
  • বিভিন্ন লাইব্রেরি ব্যবহারের মাধ্যমে রেইনবোগুলি একাধিক সম্মতিযুক্ত মডেলগুলিকে সমর্থন করে।

ফিউশন যাত্রী

ফিউশন যাত্রীবাহী অন্য সকলের থেকে খুব আলাদাভাবে কাজ করে। ফিউশন যাত্রীবাহী সরাসরি অ্যাপাচি বা এনগিনেক্সে সংহত করে এবং তাই অ্যাপাচি-র জন্য মোড_এফপি তুলনা করা যায়। যেমন Mod_php অ্যাপাচি পিএইচপি অ্যাপ্লিকেশনগুলিকে পরিবেশন করতে দেয়, প্রায় যাদুতে, ফিউশন প্যাসেঞ্জার অ্যাপাচি (এবং এনগিনেক্সও) রুবি অ্যাপ্লিকেশনগুলিকে প্রায় যাদুতে পরিবেশন করার অনুমতি দেয়। ফিউশন যাত্রীর লক্ষ্য হ'ল যতটা সম্ভব ঝামেলা করে সবকিছুকে জাস্ট ওয়ার্ক (টিএম) তৈরি করা।

আপনার অ্যাপ্লিকেশনটির জন্য কোনও প্রক্রিয়া বা ক্লাস্টার শুরু করার পরিবর্তে এবং স্ট্যাটিক ফাইলগুলি পরিবেশন করতে আপাচি / এনগিনেক্স কনফিগার করা এবং / অথবা ফিউশন যাত্রীর সাহায্যে প্রসেস / ক্লাস্টারে প্রক্সিং অনুরোধগুলি উল্টো করা উচিত:

  1. আপনি ওয়েব সার্ভার কনফিগারেশন ফাইল সম্পাদনা করুন এবং আপনার রুবি অ্যাপ্লিকেশনটির 'সর্বজনীন' ডিরেক্টরিটির অবস্থান নির্দিষ্ট করে দিন।
  2. কোনও পদক্ষেপ 2 নেই।

সমস্ত কনফিগারেশন ওয়েব সার্ভার কনফিগারেশন ফাইলের মধ্যে সম্পন্ন হয়। ফিউশন যাত্রীবাহী বেশ কিছু সবকিছু স্বয়ংক্রিয়ভাবে সরিয়ে দেয়। একটি ক্লাস্টার শুরু করার এবং প্রক্রিয়াগুলি পরিচালনা করার দরকার নেই। প্রক্রিয়াগুলি শুরু / থামানো, ক্র্যাশ হয়ে যাওয়ার পরে এগুলি পুনরায় চালু করা ইত্যাদি all সব স্বয়ংক্রিয় ted অন্যান্য অ্যাপ্লিকেশন সার্ভারের সাথে তুলনা করে, ফিউশন প্যাসেঞ্জারের অনেক কম চলন্ত অংশ রয়েছে। লোকেরা ফিউশন যাত্রী ব্যবহার করার প্রাথমিক কারণগুলির মধ্যে এই ব্যবহারের সহজতা ease

অন্যান্য অ্যাপ্লিকেশন সার্ভারগুলি থেকে পৃথক, ফিউশন প্যাসেঞ্জার প্রাথমিকভাবে সি ++ তে রচিত, এটি খুব দ্রুত তৈরি করে।

আরও বেশি বৈশিষ্ট্যযুক্ত ফিউশন প্যাসেঞ্জারের একটি এন্টারপ্রাইজ বৈকল্পিক রয়েছে যেমন স্বয়ংক্রিয় রোলিং পুনঃসূচনা, মাল্টিথ্রেডিং সমর্থন, স্থাপনার ত্রুটি প্রতিরোধ ইত্যাদি etc.

উপরের কারণগুলির জন্য, ফিউশন প্যাসেঞ্জার বর্তমানে সর্বাধিক জনপ্রিয় রুবি অ্যাপ্লিকেশন সার্ভার, নিউ ইয়র্ক টাইমস, পিক্সার, এয়ারবিএনবি ইত্যাদির মতো বৃহত্তরগুলি সহ দেড় হাজার ওয়েবসাইটকে পাওয়ার করছে ing

ফিউশন যাত্রী বনাম অন্যান্য অ্যাপ্লিকেশন সার্ভারগুলি

ফিউশন যাত্রীবাহী আরও অনেকগুলি বৈশিষ্ট্য সরবরাহ করে এবং অন্যান্য অ্যাপ্লিকেশন সার্ভারগুলিতে অনেক সুবিধা সরবরাহ করে যেমন:

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

ইউনিকর্ন যে ওয়ার্কলোডগুলি ভাল নয় তা হ'ল:

  • স্ট্রিমিং কাজের চাপ (যেমন রেলস 4 লাইভ স্ট্রিমিং বা 4 টি টেম্পলেট স্ট্রিমিং)।
  • অ্যাপ্লিকেশনটি HTTP API কলগুলি করে এমন ওয়ার্কলোড।

ফিউশন প্যাসেঞ্জার এন্টারপ্রাইজ 4 বা তার পরে হাইব্রিড আই / ও মডেল এটিকে এই ধরণের কাজের চাপের জন্য একটি দুর্দান্ত পছন্দ করে তোলে।

  • অন্যান্য অ্যাপ্লিকেশন সার্ভারগুলির জন্য প্রতি অ্যাপ্লিকেশনটিতে কমপক্ষে একটি ইভেন্ট চালানো প্রয়োজন। বিপরীতে, ফিউশন প্যাসেঞ্জার একক দৃষ্টিতে একাধিক অ্যাপ্লিকেশন সমর্থন করে। এটি প্রশাসনের ওভারহেডকে ব্যাপকভাবে হ্রাস করে।
  • স্বয়ংক্রিয় ব্যবহারকারী স্যুইচিং, একটি সুবিধাজনক সুরক্ষা বৈশিষ্ট্য।
  • ফিউশন যাত্রী অনেক এমআরআই রুবি, জে আরবি এবং রুবিনিয়াসকে সমর্থন করে। মোংরেল, ইউনিকর্ন এবং থিন কেবল এমআরআই সমর্থন করে। পুমাও সব 3 সমর্থন করে।
  • ফিউশন যাত্রী প্রকৃতপক্ষে কেবল রুবির চেয়ে বেশি সমর্থন করে! এটি পাইথন ডাব্লুএসজিআই সমর্থন করে, সুতরাং এটি উদাহরণস্বরূপ জাঙ্গো এবং ফ্লাস্ক অ্যাপ্লিকেশনগুলি চালাতে পারে। আসলে ফিউশন যাত্রীবাহী একটি বহুভুজ সার্ভার হওয়ার দিকে এগিয়ে চলেছে। টোড তালিকায় নোড.জেএস সমর্থন করে।
  • বাইরে ব্যান্ড আবর্জনা সংগ্রহ। ফিউশন যাত্রীবাহী স্বাভাবিক অনুরোধ / প্রতিক্রিয়া চক্রের বাইরে রুবি আবর্জনা সংগ্রহকারী চালনা করতে পারেন, কয়েক মিলি সেকেন্ডে সম্ভাব্যভাবে অনুরোধের সময়কে হ্রাস করে। ইউনিকর্ন-তেও একই বৈশিষ্ট্য রয়েছে তবে ফিউশন প্যাসেঞ্জারের সংস্করণটি আরও নমনীয় কারণ 1) এটি সিসির মধ্যে সীমাবদ্ধ নয় এবং এটি নির্বিচারে কাজের জন্য ব্যবহার করা যেতে পারে। 2) ফিউশন প্যাসেঞ্জারের সংস্করণ মাল্টিথ্রেডেড অ্যাপ্লিকেশনগুলির সাথে ভালভাবে কাজ করে, যখন ইউনিকর্নের এটি হয় না।
  • স্বয়ংক্রিয় রোলিং পুনরায় আরম্ভ হয়। ইউনিকর্ন এবং অন্যান্য সার্ভারগুলিতে রোলিং পুনঃসূচনা করতে কিছু স্ক্রিপ্টিং কাজ প্রয়োজন। ফিউশন যাত্রীবাহী এন্টারপ্রাইজ আপনার জন্য পুরোপুরি এইভাবে স্বয়ংক্রিয়ভাবে সজ্জিত।

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

আই / ও কনক্রুঞ্জি মডেল

  • একক থ্রেডযুক্ত মাল্টি-প্রক্রিয়া। এটি রুবি অ্যাপ সার্ভারগুলির জন্য traditionতিহ্যগতভাবে সর্বাধিক জনপ্রিয় আই / ও মডেল, আংশিক কারণ রুবি ইকোসিস্টেমটিতে মাল্টিথ্রেডিং সমর্থন খুব খারাপ ছিল। প্রতিটি প্রক্রিয়া একবারে ঠিক 1 অনুরোধ পরিচালনা করতে পারে। ওয়েব সার্ভার প্রক্রিয়াগুলির মধ্যে ভারসাম্য লোড করে। এই মডেলটি খুব মজবুত এবং প্রোগ্রামারের পক্ষে একত্রে বাগগুলি প্রবর্তনের খুব কম সুযোগ রয়েছে। তবে এর আই / ও সম্মতিটি অত্যন্ত সীমাবদ্ধ (প্রক্রিয়া সংখ্যার দ্বারা সীমাবদ্ধ)। এই মডেলটি দ্রুত, স্বল্প-চলমান কাজের চাপের জন্য খুব উপযুক্ত। ধীর, দীর্ঘ-চলমান ব্লকিং I / O ওয়ার্কলোডগুলি, যেমন এইচটিটিপি এপিআইয়ের কলিংয়ের সাথে জড়িত কাজের চাপের জন্য এটি অত্যন্ত অনুপযুক্ত।
  • খাঁটি মাল্টি থ্রেডেড। আজকাল রুবি বাস্তুতন্ত্রের দুর্দান্ত মাল্টিথ্রেডিং সমর্থন রয়েছে, সুতরাং এই আই / ও মডেলটি খুব কার্যকর হয়ে উঠেছে। মাল্টিথ্রেডিং উচ্চ I / O সম্মতি দেয়, এটি স্বল্প-চলমান এবং দীর্ঘ-চলমান ব্লকিং I / O কাজের চাপ উভয়ের জন্যই উপযুক্ত করে তোলে। প্রোগ্রামার একযোগে বাগগুলি প্রবর্তন করার সম্ভাবনা বেশি, তবে ভাগ্যক্রমে বেশিরভাগ ওয়েব ফ্রেমওয়ার্কগুলি এমনভাবে ডিজাইন করা হয়েছে যে এটি এখনও খুব অসম্ভব। তবে একটি বিষয় লক্ষণীয় যে এমআরআই রুবি ইন্টারলিটার গ্লোবাল ইন্টারপ্রিটার লক (জিআইএল) ব্যবহারের কারণে একাধিক থ্রেড থাকা সত্ত্বেও একাধিক সিপিইউ কোর সরবরাহ করতে পারে না। আপনি একাধিক মাল্টি-থ্রেডযুক্ত প্রক্রিয়াগুলি ব্যবহার করে এটি ঘিরে কাজ করতে পারেন, কারণ প্রতিটি প্রক্রিয়া একটি সিপিইউ কোর উপার্জন করতে পারে। জেরুবি এবং রুবিনিয়াসের কোনও জিআইএল নেই, তাই তারা একক প্রক্রিয়াতে একাধিক কোরকে পুরোপুরিভাবে লাভ করতে পারে।
  • হাইব্রিড মাল্টি-থ্রেডড মাল্টি-প্রক্রিয়া। প্রাথমিকভাবে ফিউশন যাত্রীবাহী এন্টারপ্রাইজ 4 এবং তারপরে প্রয়োগ করা হয়েছে। আপনি একক থ্রেডযুক্ত মাল্টি-প্রসেস, খাঁটি মাল্টিথ্রেডেড, বা একাধিক থ্রেড সহ প্রতিটি একাধিক প্রক্রিয়াও সহজেই স্যুইচ করতে পারেন। এই মডেল উভয় বিশ্বের সেরা দেয়।
  • Evented। এই মডেলটি পূর্বে উল্লিখিত মডেল থেকে সম্পূর্ণ পৃথক। এটি খুব উচ্চ আই / ও সমঝোতার অনুমতি দেয় এবং তাই দীর্ঘস্থায়ী ব্লকিং I / O কাজের চাপের জন্য দুর্দান্ত। এটি ব্যবহার করতে, অ্যাপ্লিকেশন এবং ফ্রেমওয়ার্ক থেকে সুস্পষ্ট সমর্থন প্রয়োজন। তবে রেলস এবং সিনট্রার মতো সমস্ত বড় ফ্রেমওয়ার্কগুলি সচ্ছল কোডটিকে সমর্থন করে না। এই কারণেই অনুশীলনে একটি পাতলা প্রক্রিয়া এখনও একবারে 1 টিরও বেশি অনুরোধ পরিচালনা করতে পারে না, এটি কার্যকরভাবে একক থ্রেডযুক্ত মাল্টি-প্রক্রিয়া মডেলের মতো আচরণ করে। এখানে বিশেষায়িত ফ্রেমওয়ার্ক রয়েছে যা ক্র্যাম্পের মতো সন্নিবিষ্ট I / O এর সুবিধা নিতে পারে।

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

capistrano

ক্যাপিস্ট্রানো সম্পূর্ণ আলাদা কিছু। পূর্ববর্তী সমস্ত বিভাগে, "ডিপ্লোয়মেন্ট" বলতে আপনার অ্যাপ্লিকেশন সার্ভারে আপনার রুবি অ্যাপ্লিকেশনটি শুরু করার কাজটিকে বোঝায়, যাতে এটি দর্শকদের কাছে অ্যাক্সেসযোগ্য হয়ে যায়, তবে এর আগে যা হওয়ার আগে সাধারণত কিছু প্রস্তুতিমূলক কাজ করা দরকার যেমন:

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

ক্যাপিস্ট্রানো প্রসঙ্গে, "স্থাপনা" বলতে এই সমস্ত প্রস্তুতির কাজ করা বোঝায়। ক্যাপিস্ট্রানো কোনও অ্যাপ্লিকেশন সার্ভার নয়। পরিবর্তে, এটি প্রস্তুতির সমস্ত কাজ স্বয়ংক্রিয় করার জন্য একটি সরঞ্জাম। আপনি ক্যাপিস্ট্রানোকে বলুন যে আপনার সার্ভারটি কোথায় এবং আপনার অ্যাপ্লিকেশনটির নতুন সংস্করণ স্থাপন করার সময় কোন আদেশগুলি চালানো দরকার এবং ক্যাপিস্ট্রানো আপনার জন্য সার্ভারে রেল অ্যাপগুলি আপলোড এবং আপনার নির্দিষ্ট আদেশগুলি চালানোর জন্য যত্ন নেবে।

ক্যাপিস্ট্রানো সর্বদা একটি অ্যাপ্লিকেশন সার্ভারের সাথে একত্রে ব্যবহৃত হয়। এটি অ্যাপ্লিকেশন সার্ভারগুলি প্রতিস্থাপন করে না। তদ্বিপরীত, অ্যাপ্লিকেশন সার্ভারগুলি ক্যাপিস্ট্রানো প্রতিস্থাপন করে না, সেগুলি ক্যাপিস্ট্রানোয়ের সাথে সংমিশ্রণে ব্যবহার করা যেতে পারে।

অবশ্যই আপনি না আছে Capistrano ব্যবহার করতে। আপনি যদি নিজের রুবি অ্যাপ্লিকেশনটি এফটিপি দিয়ে আপলোড করতে এবং ম্যানুয়ালি প্রতিবার একই পদক্ষেপের আদেশগুলি চালনা করতে চান তবে আপনি এটি করতে পারেন। অন্যান্য লোকেরা এতে ক্লান্ত হয়ে পড়েছিল, তাই তারা ক্যাপিস্ট্রানোতে এই পদক্ষেপগুলি স্বয়ংক্রিয় করে তোলে।


74
আপনার এটি কোথাও প্রকাশ করা উচিত। এটি এখন সবই সহজ তবে যখন আমি প্রথম রেল দিয়ে শুরু করেছি তখন কোনও দরকারী তথ্য পাওয়া শক্ত ছিল।
স্পিগোরোর

9
দুর্দান্ত পোস্ট! আমার জন্যও অনেক কিছু সাফ করে দিয়েছে। আপনার কিছু অন্যান্য উপাদান যেমন বান্ডলার এবং আরভিএম যুক্ত করা উচিত এবং এটিকে একটি ভারী-হিট ব্লগ পোস্ট করা উচিত! :)
ড্যামিয়েন রোচে

37
এটি রেল গাইডগুলিতে থাকা দরকার।
ডোরিয়ান

4
"উত্পাদনের পরিবেশে কেউই ওয়েব্রিক ব্যবহার করে না।" এই সব সত্য নয়। হিরকুতে রুবি অ্যাপ্লিকেশনগুলিকে ধাকানোর সময় ডিফল্ট অ্যাপ্লিকেশন সার্ভার হ'ল ওয়েব্রিক।
জন ডাউনে

37
এই পোস্টটি ফিউশন যাত্রীর পক্ষে অত্যন্ত অনুকূল @ উদ্দেশ্যমূলকতার জন্য প্রকল্পে (সিটিও, ফিউশন.এনএল / আউটআউট ) আপনার অধিভুক্তি যুক্ত করা বুদ্ধিমানের কাজ হতে পারে ?
বার্ট গোথালস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.