Skip Ribbon Commands
Skip to main content

​​​​​​​​​

অ্যাপ সার্ভারের স্লটগুলির মধ্যে সোয়্যাপ করার সময় ডেটাবেস সংযোজন স্ট্রিং


 

মনে করুন আপনার কাছে একটি অ্যাজার সার্ভিস ওয়েব অ্যাপ আছে যেটির আর্কিটেকচার ফিগার 1 এ দেখানো অনুযায়ী যেটি বৃহৎ পরিমানে ট্রাফিক পরিচালনা করে এবং ডেটাবেস এক্সেস করে| যখন আপনি কোন ডিপ্লয়মেন্ট করবেন তখন আপনি নতুন রিলিজে বাগ ডিপ্লয় হওয়ার অথবা খুব বেশি ডাউনটাইমের ঝুঁকি নিতে চাইবেন না, এবং সেইজন্যেই আপনি ডিপ্লয়মেন্ট স্লট রাখতে চাইবেন| একটি ডিপ্লউমেন্ট স্লট হল একটি অতিরিক্ত অ্যাজার অ্যাপ সার্ভিস ওয়েব অ্যাপের ইনস্ট্যান্স (W3WP) যেটি~প্রডাকশনে আপনার একই নামের অ্যাজার অ্যাপ সার্ভিস ওয়েব অ্যাপ এর সাথে বাইন্ড করা আছে এবং একই অ্যাপ সার্ভিস প্ল্যান (ASP)-এর মধ্যে রান করে যেটি আমি এখানে  আলোচনা করছি| এই ডেভেলপমেন্ট স্লট টি আপনাকে আপনার টেস্ট অথবা প্রডাকশনের জন্য অপ্রস্তুত কোডের, লাইভ ওয়েব অ্যাপে রিলিজ করার আগে পরীক্ষণ করার সুযোগ দেয়| ডিপ্লয়মেন্ট স্লটের সৌন্দর্য এটি যে আপনি একটি বোতাম লাগাতে পারেন যার মাধ্যমে ডিপ্লয়মেন্ট স্লটের নতুন সংস্করণ প্রডাকশনের সাথে সোয়্যাপ হয়ে যায় যার ফলে একটি ক্লিকের মাধ্যমে নতুন সংস্করণটি লাইভ হয়ে যায়|  

ফিগার 1 টি লক্ষ্য করুন যাতে একটি SQL সার্ভার আছে যেটিতে 2 টি SQL অ্যাজার ডেটাবেস আছে, একটিকে stickyslot-pro এবং অন্যটিকে stickyslot-tst বলা হয়| উপরন্তু, STICKYSLOT-ASP নামের একটি অ্যাপ সার্ভিস প্ল্যান (ASP)  আছে যেটি stickyslot নামের অ্যাজার অ্যাপ সার্ভিস ওয়েব অ্যাপের সাথে testing নামের ডিপ্লয়মেন্ট স্লট রান করে| এই সব একটি রিসোর্স গ্রুপের অভ্যন্তরে আছে যেটির নাম হল STICKSLOT-RG|

 

 

ফিগার 1, সর্বোত্তম কেস, অ্যাপ সার্ভিস আর্কিটেকচার ডায়াগ্রাম

এখানে হল একটি খুব ভালো প্রবন্ধ যেটি স্টিকি স্লটগুলির সম্পর্কে আলোচনা করে|

এই প্রবন্ধে আমি PRO (প্রডাকশন) থেকে TST (একটি টেস্ট ইনস্ট্যান্স)-এ অ্যাজার অ্যাপ সার্ভিস ওয়েব অ্যাপ ডিপ্লয়মেন্ট স্লটের সোয়্যাপিং সম্পর্কে বিচার করছি| ডিফল্ট রূপে, অ্যাপ সেটিংস এবং ডেটাবেস সংযুক্তি স্ট্রিং স্লটের সাথে যুক্ত হয় না এবং টেস্ট স্লট প্রডাকশন স্লটের সাথে অদলবদল করার সময় এটি ওয়েব অ্যাপ কে অনুসরণ করবে| এই পরিস্থিতিতে, এটির অর্থ হল যে যখন আমি আমার testing ডিপ্লয়মেন্ট স্লট, যেটি stickslot-tst ডেটাবেস থেকে ডেটা অর্জন করছে, সেটিকে প্রডাকশনের সাথে সোয়্যাপ করব তখন সোয়্যাপ করা ওয়েব অ্যাপ টি stickyslot-pro ডেটাবেসের পরিবর্তে stickyslot-tst ডেটাবেসে নির্দেশ করবে| তাই, আমাকে ওয়েব অ্যাপ ডেভিলপমেন্ট স্লটগুলি সোয়্যাপ করার এরূপ উপায় খুঁজতে হবে যার মাধ্যমে বর্তমান প্রডাকশন ওয়েব অ্যাপের ডেটাবেস সংযুক্তি স্ট্রিং-টি প্রডাকশনে নির্দেশ করবে এবং টেস্টিং টি টেস্টিং ডেটাবেসে নির্দেশ করবে| সেটিং কে ‘sticky to the slot’ করে এটি অর্জন করা হয়|  

ধরে নিন আমার প্রডাকশন ওয়েব অ্যাপের জন্য আমার 2টি মান আছে যেটি আমি সোয়্যাপ করার সময় ‘প্রডাকশন’ রাখতে চাই| ফিগার 2 দেখুন|  


 
#160;

ফিগার 2, স্টিকি স্লট সেটিং যেটি টেস্টিং স্লটের সাথে সোয়্যাপ করার পরও প্রডাকশন থাকে

লক্ষ্য করুন স্টিকস্লট নামের একটি অ্যাপ সেটিং আছে যেটির মান Value = ProductionEnvironment আছে এবং StickySlotConnectionString নামের একটি সংযুক্তি স্ট্রিং আছে যেটিতে প্রডাকশন ডেটাবেস নাম, ব্যবহারকারী এবং পাসওয়ার্ড-এর মত মান রয়েছে| সবচেয়ে গুরুত্বপূর্ণভাবে, লক্ষ্য করুন যে স্লট সেটিং চেক বক্স টি নির্বাচিত রয়েছে যার অর্থ হল যে এটি ওয়েব অ্যাপের সাথে থাকবে এবং সোয়্যাপ করার পর স্থানান্তরিত হবে না| আরো লক্ষ্য করুন যে টেস্টিং ডেভিলপমেন্ট স্লটে, ফিগার 3 এ দেখুন, আমি একই অ্যাপ সেটিং এবং সংযুক্তির স্ট্রিং (কি এবং নাম) রেখেছি, কিন্তু সেগুলির মান ভিন্ন আছে, এছাড়াও স্লট সেটিং চেকবক্স চেক করা আছে যার ফলে এটি টেস্টিং ওয়েব অ্যাপে থেকে যাচ্ছে, কোনো রকমেই আমি কখনো চাইব না যে আমার টেস্টিং ওয়েব অ্যাপ কখনো প্রডাকশন বাতাবরণে নির্দেশ করে| ​


 
 

 

ফিগার 3, স্টিকি স্লট সেটিং যেটি প্রডাকশন স্লটে সোয়্যাপ করার পরও টেস্টিং এ অপরিবর্তিত থেকে যায়

আমি MoveWhenSwapped নামের একটি অতিরিক্ত অ্যাপ সেটিং সংযুক্ত করেছি, যেটি আমি স্টিকি বানাই নি, যার অর্থ হল যে এটি সোয়্যাপ করার সাথে স্থানান্তর করবে| কাজেই, যখন আমি প্রডাকশন এবং টেস্ট কে সোয়্যাপ করব, তখন ঐ অ্যাপ সেটিং টি প্রডাকশন ওয়েব অ্যাপ কনফিগারেশনে পরিবর্তিত হবে এবং টেস্টিং অ্যাপে থাকবে না| চল আমরা দেখি, যখন টেস্টিং বাতাবরণে সবকিছু টেস্ট করে প্রডাকশনের জন্য তৈরি হয়ে যায়, টেস্টিং ওয়েব অ্যাপে নেভিগেট করে সোয়্যাপ লিঙ্কে ক্লিক করুন, যেরূপ ফিগার 4 এ দেখানো হয়েছে|

 
 

ফিগার 4, অ্যাজার অ্যাপ সার্ভিস ওয়েব অ্যাপকে স্লট, এবং স্টিকি স্লট-গুলির মধ্যে সোয়্যাপ করুন

 “swap with preview” নামের একটি বৈশিষ্ট্য আছে যেটির সম্পর্কে এখানে একটি উৎকৃষ্ট লেখা আছে| মূলতঃ, এই বৈশিষ্ট্য টি আপনাকে আপনার টেস্টিং বাতাবরণকে প্রডাকশনে নির্দেশ করতে  দেবে যাতে আপনি সুনিশ্চিত হতে পারেন যে আপনি প্রকৃত ট্রাফিক টিতে রুট করার আগে সব কিছু প্রত্যাশার অনুরূপ কাজ করছে| সুনিশ্চিত হন যে আপনি সোয়্যাপ করা সম্পূর্ণ করেছেন বা এটিকে রোলব্যাক করে দিয়েছেন কারণ খুব বেশি দেরী পর্যন্ত টেস্টিং কর প্রডাকশনে নির্দেশিত করাতে চাইবেন না| এটি সমস্ত পরিপ্রেক্ষিতে কাজ করবে না যেমন যদি ডেটাবেস স্ট্রাকচার পরিবর্তিত হয় যেটি প্রডাকশনে ডিপ্লয় করলে প্রডাকশন বাতাবরণ ব্যাঘাত (ব্রেক)হয়ে যাবে এবং যদি টেস্টিং ইনস্ট্যান্স বর্তমান প্রডাকশন ডেটাবেসে আপগ্রেড ছাড়া রান না করে| তথাপি, এটির স্লটকে JIC দিন| তবু, সোয়্যাপ করে তারপর প্রডাকশন ওয়েব অ্যাপ কে যাচাই করুন যে অ্যাপ সেটিং এবং সংযুক্তির স্ট্রিং প্রত্যাশিত পরিনামের অনুরূপ| প্রকৃতপক্ষে সেগুলি ফিগার 5 এ প্রদর্শন করা অনুযায়ী আছে|


 
 

 

ফিগার 5, স্টিকি স্লট অ্যাজার অ্যাপ সার্ভিস ওয়েব অ্যাপের অ্যাপ সেটিংস এবং সংযুক্তির স্ট্রিং

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

আমরা একটু আরো গভীরে যাব

আমার কিছু প্রশ্ন আছে:

  • আমি কোড থেকে কিভাবে সংযুক্তির স্ট্রিং এবং অ্যাপ সেটিং এক্সেস করব
  • যদি আমার web.config  ফাইলে সংযুক্তির স্ট্রিং থাকে তাহলে কি ঘটবে এবং যদি উভয়ই থাকে তাহলে কি ঘটবে

চলুন আমরা ঐ প্রশ্নগুলির উত্তর দিই|

আমি আমার কোড থেকে সংযুক্তির স্ট্রিং এবং অ্যাপ সেটিং-গুলি কিভাবে এক্সেস করব

পোর্টালে বা web.config-এ কনফিগার করা মান থেকে সংযুক্তির স্ট্রিং এক্সেস করার জন্য আপনি নিম্নলিখিত কোড ব্যবহার করেন|

ConfigurationManager.ConnectionStrings["StickySlotConnectionString"]?.ConnectionString;

 
সংযুক্তি স্ট্রিং-টির নামটি পাস করলে মানটি রিটার্ন করা হবে|

অ্যাপ সেটিং মান এক্সেস করার জন্য, নিম্নটি ব্যবহার করুন|

ConfigurationManager.AppSettings["STICKYSLOT"];

 
আমার web.config ফাইলে যদি কোন সংযুক্তির স্ট্রিং থাকে তাহলে কি ঘটবে এবং যদি উভয়ই থাকে তাহলে কি ঘটবে  

প্রকৃতপক্ষে কিছুই ঘটে না, যতক্ষণ পর্যন্ত নামটি অদ্বিতীয়, যদি মানটি web.config এ থাকে তাহলে এটি পাওয়া যাবে এবং যদি মানটি পোর্টালে থাকে, তাহলে ও এটি পাওয়া যাবে| লক্ষ্য রাখুন যে কোন সংযুক্তির স্ট্রিং অথবা অ্যাপ সেটিং এর জন্য আপনি যেন এক নাম না দিয়ে ফেলেন| যদি এটি ঘটে, তাহলে, যখন আমি এটি টেস্ট করি, তখন পোর্টালে কনফিগার করা মানগুলি কোড দ্বারা এক্সেস করা হবে| অতএব, যদি আপনার কাছে পোর্টালে এবং উভয়ে কনফিগার করা StickySlotConnectionString নামক কোন সংযুক্তির স্ট্রিং আছে, তাহলে web.config –এ আপনার দ্বারা পরিবর্তন করা মানগুলি উপেক্ষা করা হবে|​​

​​
​​​​

Read More on...

--> 

​​​​​​​​​​

​​​​​​
This site uses Unicode and Open Type fonts for Indic Languages. Powered by Microsoft SharePoint
©2017 Microsoft Corporation. All rights reserved.