আমাদের একটি বড় রুবি অন রেলস অ্যাপ্লিকেশন রয়েছে (২৫ মিলিয়ন মাসিক ব্যবহারকারী), আমাদের ব্যবস্থাপনার নোড.জেএস-এ পুনরায় লেখার সিদ্ধান্ত নিয়েছে, আমি কি পাগল?


24

দয়া করে আমাকে বলুন:

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

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

বিদ্যমান আর্কিটেকচার সম্পর্কে আরও বিশদ:

  • Memcached এইচটিএমএল partials ক্যাশে জন্য
  • Redis সেশনের জন্য, এবং কিছু কাঠামোবদ্ধ ডেটা ক্যাশে
  • মাইএসকিউএল একক মাস্টার, একাধিক ক্রীতদাস
    • একটি বড় টেবিল রয়েছে যা প্রচুর লেখাকে গ্রহণ করে (একটি সমীক্ষার কল্পনা করুন)
    • নাহলে বেশিরভাগই পড়ে।
  • কিছু মেটাডেটার জন্য মঙ্গোডিবি
  • রুবেল রেল 3.0
  • nginx এবং ইউনিকর্ন

33
শীশ, এই সমস্ত হিপস্টার ভাষা। একটি ভাল লিখিত পিএইচপি অ্যাপ্লিকেশন সহজেই স্কেল করবে, traditionalতিহ্যবাহী সরঞ্জামগুলি কাজ করে those এই হিপস্টারদের অন্যথায় আপনাকে বলার অনুমতি দেবেন না।
অন্ধকাররাত্রি

5
প্রশ্নটি আরও হওয়া উচিত "উন্নতিগুলি কি ব্যবসায়কে উপযুক্ত করে তুলতে পর্যাপ্ত অর্থ সাশ্রয় করবে?" এটি 5 বছরেরও বেশি সময় ধরে অর্থ সাশ্রয় করতে পারে তবে পুনর্লিখনটি ব্যয়বহুল এবং সময়সাপেক্ষ - যদি আপনার কোডটি একটি ভয়াবহ ভয়ঙ্কর জগাখিচুড়ি না হয় তবে আমি মনে করি যে আপনার পরিচালকরা পাগল হচ্ছে
মিকি সি

4
যদি পুনরায় লেখাগুলি বিবেচনা করা হয়, আপনি নিজের ফ্রন্ট-এন্ডটিকে ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্টে স্থানান্তরিত করতেও বিবেচনা করতে পারেন, যার অর্থ আপনার আর ডায়নামিক ফ্রন্ট-এন্ড সার্ভার নেই, কেবল স্থির ফাইল।
জোয়েরি সেব্রেচটস

11
@ ডার্কনাইট মনে রাখবেন যে এক পর্যায়ে পিএইচপি হিপস্টার ভাষা ছিল এবং এটি সফল পণ্যগুলিতে স্থাপন করা হতে পারে এমন লোকেরা এটির গ্রহণের প্রচার করে — যখন পার্ল ওয়েব বিকাশকারীরা পিএইচপি হিপস্টারগুলিতে স্ন্যগার করে চলেছিল।

9
আমি খুব আশ্চর্য হয়েছি যে কেউ জোল স্পলস্কি নিবন্ধটি আপনার সামনে কখনই করা উচিত নয় । আমি বলছি না যে সমস্ত পুনর্লিখনগুলি খারাপ, তবে আমি @ মাইকেসি-র সাথে একমত যে তাদের চূড়ান্ত সতর্কতার সাথে যোগাযোগ করা উচিত।
ড্যান পিচেলম্যান

উত্তর:


22

আপনার জিজ্ঞাসা করা বেশিরভাগ প্রশ্ন প্রসঙ্গ ছাড়াই জবাবদিহী নয়, এবং কমবেশি প্রদত্ত পরিচালন ইতিমধ্যে আপনার জন্য বেছে নিয়েছে ... আপনি যদি না জিজ্ঞাসা করেন তবে 'আমাকে কি এই ছেড়ে দেওয়া উচিত এবং এই সমস্ত পরিবর্তনের সামনে একটি নতুন চাকরি খুঁজে পাওয়া উচিত নয়? ? '

আপনার যদি এটি শক্ত হয়ে যায় তবে আমি আপনাকে এই বিষয়টি এই পোস্টটি পড়ার পরামর্শ দিচ্ছি: কীভাবে আপনার সত্যতা হারানো ছাড়াই গ্রাউন্ড-আপ পুনর্লিখনকে বেঁচে থাকতে হয়

আমি সম্প্রতি node.js. এ সার্ভার লজিকের কিছুটা পুনর্লিখনের পথটি শুরু করেছি started মূল কারণ এটি বর্তমানে .NET- এ লেখা রয়েছে এবং আমরা এমএস পরিবেশ থেকে দূরে সরে যেতে চাইছি।

আমার অভিজ্ঞতা এখন পর্যন্ত ইতিবাচক হয়েছে, এটির সমস্ত অ-ব্লকিং-নেস সহ আপনার প্রাথমিক শিক্ষার বক্ররেখা থাকবে তবে আপনি যদি অতীত হয়ে যান তবে এটি কোড করা বেশ মজাদার .. আমি জানি, মজা!

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

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

যারা সামনের দিকে এবং পিছনে উভয়ই করেছেন - এবং উভয়ই উপভোগ করেছেন - সামনে থেকে শেষ প্রান্তের ভাষাগুলিতে মানসিক প্রসঙ্গে স্যুইচ না করা একটি আসল বোনাস যা আমি মনে করি চূড়ান্তভাবে আমাদের টিমকে ট্র্যাকের নিচে উত্পাদনশীলতা বাড়িয়ে তুলবে।


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

হ্যাঁ, এই বক্তব্যটির সাথে আমার মূল বক্তব্যটি ছিল কেবলমাত্র বিকাশকারীরা সাধারণত ব্যতিক্রম হ্যান্ডেলিংয়ের ক্ষেত্রে বিশেষ উদ্রেক হয় না। আসুন, এটি প্রায় 2017 ইতিমধ্যে!
ডেভ.জ্যাপ

8

ভাল, আমি মনে করি না যে অ্যাপ্লিকেশনটি খারাপভাবে সম্পাদন করা না হলে পুনরায় লেখাই ভাল ধারণা ছিল। আপনার প্রশ্নের উত্তর দিতে:

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

  2. হ্যাঁ, নোড.জেএস আসলে সার্ভারের কম সংস্থান গ্রহণ করে। সুতরাং আপনি কেবল সংস্থানগুলিতে অর্থ সঞ্চয় করতে পারবেন না, আপনি বিদ্যমানগুলি দিয়ে আরও কিছু করতে পারেন। এটি বেশিরভাগই নোড.জেএস এর একক থ্রেডযুক্ত প্রকৃতির কারণে is অতিরিক্ত থ্রেডের ওভারহেড নেই।

  3. আবার নোড.জেএস জাদু নয়। এটা বলার পরে, কিছু সত্য হতে পারে। নোড.জেএস এর একটি খুব সক্রিয় সম্প্রদায় রয়েছে যা প্রতিটি সম্ভাব্য কাজের জন্য কয়েকশ মডিউল তৈরি করেছে। সুতরাং এটি বেশ সম্ভবত আপনার পক্ষে বেশিরভাগ কাজ করা হয়েছে for আপনার কেবল টুকরাগুলি একসাথে ফিট করতে হবে।

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

যেহেতু নোড.জেএস একক থ্রেডেড, স্পষ্টভাবে এটি করার জন্য কনফিগার না করা হলে, এটি একাধিক সিপিইউগুলির সুবিধা নিতে পারে না ।

মন্তব্যগুলি একবার দেখুন। তারা নোড.জেএস-এর কার্যকারিতা সম্পর্কে কিছুটা অন্তর্দৃষ্টি দেয়


16
একক থ্রেডের কারণে কম সংস্থান আছে? আপনার কি মনে হয় যে অতিরিক্ত থ্রেডগুলি কী করবে?
জো

@ জো যতদূর আমি বুঝতে পেরেছি তারা যুক্ত করে দেবে n নোড জেএসে একটি অনুরোধ যত তাড়াতাড়ি সম্ভব নিষ্পত্তি করা সেরা অভ্যাস E হয় এটি একবারে সম্পন্ন করে next অথবা পরের বার পুনরায় চালু করে। সত্যিকারের নোড জেএস হতে হবে আমি একমাত্র প্রযুক্তি যা আমি প্রযোজনা অ্যাপ্লিকেশন তৈরি করেছি o সুতরাং এটি অন্য সার্ভার সাইড প্রযুক্তিগুলির সাথে তুলনা করার জন্য আমি সেরা ব্যক্তি নাও হতে পারি W তবে কেন আমি তুলনা করা থেকে বিরত হয়েছি এবং নোড জেএস সম্পর্কে আমি যা জানি তা কেবল তাই রাখি put আমার উত্তর.
অক্ষত জিওয়ান শর্মা

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

আমি কী বলতে চাইছি তা আমি দেখতে পেয়েছি shortly আমি শীঘ্রই উত্তরটি আপডেট করব (কিছু গবেষণার পরে পড়ুন)
অক্ষত জিওয়ান শর্মা

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