একাধিক ফ্রন্ট এন্ড সার্ভারে কোড স্থাপন করা


8

আমাদের এমন একটি পরিস্থিতি রয়েছে যেখানে আমাদের একাধিক লোড ভারসাম্য সার্ভার রয়েছে যা একটি সাধারণ ডাটাবেসের দিকে ইঙ্গিত করে।

জিনিসগুলির স্বাভাবিক দৌড়ে এটি সূক্ষ্মভাবে কাজ করে এবং অতিরিক্ত কাজ, স্কেলাবিলিটি ইত্যাদি দেয় etc.

তবে আমরা কিছুটা কাজকর্ম হতে মোতায়েনের সন্ধান করছি।

আমরা বৈশিষ্ট্যগুলি ব্যাপকভাবে ব্যবহার করছি এবং স্থাপনার স্বয়ংক্রিয় করার চেষ্টা করছি। এই মুহূর্তে মোতায়েন খুব নির্ভরযোগ্য নয়।

সরলীকৃত ফর্মটিতে প্রতিটি সার্ভারের জন্য দু'টি স্তর রয়েছে script

  1. ফাইল আপডেট করুন

  2. বৈশিষ্ট্যগুলি রিভার্ট করুন (যা নির্ভরতা, সেটিংস পরিবর্তনগুলি ইত্যাদি পরিচালনা করবে)

একাধিক সার্ভারগুলিকে অসম্পূর্ণ অবস্থায় না ফেলে কোনও ডিভাইস মোতায়েন করার জন্য কি সেরা অনুশীলন রয়েছে?

আমি যতদূর দেখতে পাচ্ছি যে আপনি সার্ভার এ 1 এবং 2 পদক্ষেপ স্থাপন করছেন কিনা তা সার্ভার বি কে ভেঙে দেবে, আপনি যদি পদক্ষেপ 2 এ যাওয়ার আগে উভয় সার্ভারে এক ধাপ চেষ্টা করেন তবে তারা উভয় কিছু সময়ের জন্য ভেঙে যাবে।

উত্তর:


6

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

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

আপনি #aegir আইআরসি চ্যানেলেও ভাল সমর্থন পেতে পারেন।

এটি একটি ওয়ার্কফ্লো পরিবর্তনের কিছুটা হবে, যা আপনার মাথা ঘিরে ফেলার জন্য অবশ্যই কিছুটা সময় নিতে পারে, তবে আপনি একবার সেখানে গেলে আপনি আর ফিরে তাকাবেন না।


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

ধন্যবাদ আমরা জানি না আমরা এই কাজটি শেষ করব কিনা তবে এটি একটি খুব ভাল বিকল্প বলে মনে হচ্ছে।
জেরেমি ফরাসী

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

4

আমাদের সংস্থায় আমরা প্রচুর দ্রুপাল সাইটগুলি বজায় রাখি, আমাদের বর্তমান সেটআপটি এরকম কিছু হয়:

  • প্রতিটি সাইটের কোডবেসের নিজস্ব গিট রেপো রয়েছে
  • নতুন বৈশিষ্ট্যগুলি পরের রিলিজের জন্য যথেষ্ট স্থিতিশীল না হওয়ার সম্ভাবনা রয়েছে তাদের গিটের নিজস্ব বৈশিষ্ট্য শাখা

উপরের আমি বলব বেশিরভাগ দ্রুপাল সাইটগুলির জন্য মোটামুটি সাধারণ।

আমরা আমাদের সংস্থায় বিশেষ যা করি তা হ'ল কাস্টম ড্রাশ কমান্ড - ' ড্রশ দেবিয়ান প্যাকেজিং ' ব্যবহার করে স্থাপনার জন্য সাইটগুলি ডিবিয়ান প্যাকেজ

ড্রুশ দেবিয়ান প্যাকেজিং ড্রুপাল সাইটগুলি ডেবিয়ান বা উবুন্টু সার্ভারগুলিতে স্থাপন করার মাধ্যম হিসাবে ড্রুপাল সাইটগুলির ডেবিয়ান প্যাকেজ তৈরির জন্য একটি ড্রশ কমান্ড সরবরাহ করে।

ড্রশ দেবিয়ান প্যাকেজিং আপনার সাইটগুলির প্রয়োজন অনুসারে একটি দেবিয়ান প্যাকেজ তৈরি করতে ড্রুপাল হুক সিস্টেম ব্যবহার করে। বৈশিষ্ট্য অন্তর্ভুক্ত:

  • অ্যাপাচি 2 এবং এনগিনেক্স ওয়েব সার্ভারগুলির জন্য স্বয়ংক্রিয় ভার্চুয়াল হোস্ট কনফিগারেশন
  • /Etc/cron.d এ ক্রোন সেটআপ
  • সাইট / ডিফল্ট / ফাইলগুলির জন্য পার্টিশন বিভাজনের সাথে অটোমেটেড কোড মোতায়েন
  • Dpkg ডিবাঙ্কফ সেটিংস সরঞ্জামের মাধ্যমে স্বয়ংক্রিয় কনফিগারেশন
  • স্বয়ংক্রিয় স্থাপনা প্রক্রিয়া
  • গিট থেকে প্যাকেজ তৈরির জন্য কাস্টম গিট ভিসিএস হ্যান্ডলার

এটার মানে কি?

একটি রিলিজ তৈরি করতে:

cd /path/to/drupal-root
drush dh-make

একটি রিলিজ স্থাপন করতে, প্রথমে ক্লাস্টারের সমস্ত ওয়েব সার্ভারে .deb এসসিপি করুন। তারপরে সমস্ত ওয়েব সার্ভারে রান করুন ( একই সাথে ফার্মের সমস্ত সার্ভারে কমান্ডটি টাইপ করতে আপনি লিনাক্স প্যাকেজ সিএসএসএইচ ব্যবহার করতে পারেন ):

sudo dpkg -i drupal-site-yoursitehere.2011.05.25-1.all.deb

একটি ওয়েব সার্ভারে রান করুন:

cd /path/to/drupal-root
sudo -u drupal-site-yoursitehere drush updb && drush fra -y && drush cron

সম্পন্ন

অবশ্যই এটি এখন কোডবেসের দৃষ্টিকোণ থেকে তুচ্ছ, কেবলমাত্র সমস্ত ওয়েব সার্ভারে .deb এর পূর্ববর্তী সংস্করণটি ইনস্টল করুন এবং ডাটাবেসটি রোলব্যাক করুন।

এ সম্পর্কে যে কোনও প্রশ্নের উত্তর দিতে পেরে খুশি


এটি একটি দুর্দান্ত উপায়! এই ওয়ার্কফ্লোটি সেট আপ করার আগে আপনি কি আদৌ জিগারে সন্ধান করেছেন?
অ্যান্ডি

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

3

মোতায়েনের প্রক্রিয়াটির কোন অংশটি এককীয় / বিশ্বাসযোগ্য নয়?

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

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

  1. কেবল পঠন মোড চালু আছে
  2. নতুন_ডিবিতে কারেন্ট_ডিবি নির্বাচন করুন
  3. সিপি -আর কারেন্ট_ডোক্রুট নতুন_ডোক্রুট
  4. new.yourdomain.com ==> / new_docroot
  5. নতুন_ডোক্রোটে কোড আপডেট করুন
  6. update.php
  7. syMLink / new_docroot ==> বর্তমান_ডোক্রোট
  8. কেবল পঠন মোড বন্ধ।

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

এটি সমস্ত কি আপনি স্থাপন করছেন তার উপর নির্ভর করে। উদাহরণস্বরূপ সিএসএস পরিবর্তনগুলি ন্যূনতম প্রভাব সহ লাইভ মোতায়েন করা যেতে পারে (যে ক্যাশে আপডেটগুলি ঘটে থাকে তা বাদে)।
এন্টেন্দু

উফফ, লাইন ব্রেক করতে বোঝানো। উপরের বিকল্প # 2 টি স্ক্রিপ্ট করা যাবে এবং হাডসন / জেনকিন্সের সাথে কোয়ার্টারব্যাক করা যাবে। কোন ধরণের উপর নির্ভর করে এটি কোন ধরণের সাইট (100% ব্যবহারকারীগণ লগ ইন করেছেন? বেশিরভাগ আনন?) এবং এটি আপনার দর্শকদের উপর প্রত্যাশিত প্রভাব ফেলবে।
এন্টেন্দু

2

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

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

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

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

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


0

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

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

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

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

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.