আপনি কীভাবে আপনার। নেট ওয়েব অ্যাপ্লিকেশন স্থাপন করবেন? (প্রস্তাবনা, দয়া করে!)


10

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

ভিজ্যুয়াল স্টুডিওতে কেবল "প্রকাশনা" এবং তারপরে পরিবর্তিত ফাইলগুলি ম্যানুয়ালি এফটিপি করার চেয়ে আরও ভাল কোনও উপায় থাকতে হবে ? কমপক্ষে নয় কারণ যখন আমরা আমাদের .DLL গুলি আপলোড করি তখন সাইটটি ডাউন হয়।

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

আমাদের পুরানো সমাধানের সাথে (আমাদের ওয়েবসাইটে) আমরা এএসপির জন্য ডিসপ্যাচ ব্যবহার করেছি যা পুরোপুরি কাঁপিয়ে দিয়েছিল এবং পুরো প্রক্রিয়াটিকে এক ক্লিকে পরিণত করেছিল। দুর্ভাগ্যক্রমে এটি ডিএলএলগুলির পক্ষে দুর্দান্ত নয় (যেমন আগে বলা হয়েছে))

সুতরাং আপনার দল এটি কিভাবে করে ?

কোন পরামর্শের জন্য ধন্যবাদ।

পিএস - আমি পড়েছি যে ভিজ্যুয়াল স্টুডিও 2010 ভিসু 2003/08 এ এই ত্রুটিগুলি সমাধান করবে বলে মনে করা হচ্ছে, তবে ততক্ষণে ...


3
এই স্ট্যাকওভারফ্লো জন্য, না?
সিকিক

1
কোনও সার্ভারে কোনও ওয়েবসাইট স্থাপন করা হচ্ছে? আমি মনে করি না - এটি প্রোগ্রামিংয়ের সাথে কিছুই করার নেই got
জ্যাঙ্গো রেইনহার্ট

সবাই কি কেবল "প্রকাশ" এবং এফটিপি আপলোড ক্লিক করে, তাহলে? :( আরও ভাল উপায় হতে হবে!
জ্যাঙ্গো রেইনহার্ট

ওয়েবসাইট থেকে ওয়েব অ্যাপ্লিকেশনে পরিবর্তনের পরে আপনি কোন অসুবিধা ভোগ করেছেন?
ক্রিস

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

উত্তর:


5

আমি ধারাবাহিক সংহতকরণের দৃ using়তার সাথে সুপারিশ করব।

আমরা সংমিশ্রণ ব্যবহার TeamCity সি আই, জন্য Rake এবং Albacore বিল্ড স্বয়ংক্রিয় জন্য।

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

আমরা গিট ব্যবহার করি, যদিও টিমসিটি সমস্ত উত্স নিয়ন্ত্রণ সিস্টেমের সাথে কাজ করে।

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

একটি rakefile.rb থেকে টানা একটি ছোট নমুনা যা বিল্ডটি সম্পাদন করে। আইএমএইচও, এক্সএমএল ফাইলের চেয়ে পড়তে এবং ডিবাগ করা সহজ।

require 'albacore'
require 'rexml/document'
require 'find'

VERSION_NO = "1.0"

OUTPUT_PATH = "output"
WEBOUTPUT_PATH = "output/web"
ADMINOUTPUT_PATH = "output/admin"

CONFIG = "Release"

WEB_PATH = "app/Company.Website.Web"
ADMIN_PATH = "app/Company.Website.Admin"
PACKAGE_PATH = "build/package"
DB_SCRIPT_PATH = "Company.Website.DB"
SOLUTION = "Company.Website.sln"

ARTIFACTS_PATH = "d:/build/artifacts/"

DEPLOY_WEB_PATH = "d:/deploy/company/website/"
DEPLOY_ADMIN_PATH = "d:/deploy/company/admin/"

task :default => ['setuptest','assemblyinfo','config','msbuild','createdb','sqlcmd','deploy']


task :setuptest do |setup|
  if ENV['BuildNumber'].nil? then ENV['BuildNumber'] = "000" end

  VERSION_NO = VERSION_NO + '.' + ENV['BuildNumber']
  puts 'Version Number : ' + VERSION_NO

  ZIPFILE_WEB = 'Company.Website.Web.' + VERSION_NO
  ZIPFILE_ADMIN = 'Company.Website.Admin.' + VERSION_NO  

  DB_SERVER = "WEB2"
  DB_DATABASE = "Website"  
  CREATEDB_SCRIPT = "app/Company.Website.DB/00CreateDatabaseTEST.sql"
end

  assemblyinfotask do |asm|
    asm.version = VERSION_NO
    asm.company_name = "Company Name"
    asm.copyright = "Copyright 2010"
    asm.output_file = "CommonAssemblyInfo.cs"
  end

  task :config do
    FileUtils.cp 'NHibernate.test.config', 'NHibernate.config'
  end

  msbuildtask do |msb|
    msb.properties = { :configuration => :Debug }
    msb.targets [:Clean, :Build]
    msb.solution = "Company.Website.sln"
  end

  sqlcmdtask :createdb do |sql|
    puts "executing sql scripts..."
    sql.log_level = :verbose
    sql.path_to_command = "sqlcmd.exe"
    sql.server = DB_SERVER
    sql.database = "master"
    sql.scripts << CREATEDB_SCRIPT
  end

  sqlcmdtask do |sql|
    puts "executing sql scripts..."
    sql.log_level = :verbose
    sql.path_to_command = "sqlcmd.exe"
    sql.server = DB_SERVER
    sql.database = DB_DATABASE
    sql.scripts << "app/Company.Website.DB/01CreateTables.sql"
    sql.scripts << "app/Company.Website.DB/02InsertReferenceData.sql"
  end

  task :deployprep do

    FileUtils.remove_dir 'app/Company.Website.Web/obj'
    FileUtils.remove_dir 'app/Company.Website.Admin/obj'

  end

  ziptask :zipweb do |zip|
    puts "creating zip package in " + ZIPFILE_WEB
    zip.directories_to_zip = ["app/Company.Website.Web"]
    zip.output_file = ZIPFILE_WEB  + '.zip'
    zip.output_path = File.dirname(__FILE__)
  end

  ziptask :zipadmin do |zip|
      puts "creating zip package in " + ZIPFILE_ADMIN
    zip.directories_to_zip = ["app/Company.Website.Admin"]
    zip.output_file = ZIPFILE_ADMIN  + '.zip'
    zip.output_path = File.dirname(__FILE__)
  end  

অ্যালব্যাকোর হ'ল রেক কার্যগুলির স্যুট যা বিশেষভাবে। নেট অ্যাপ্লিকেশন মোতায়েনের জন্য তৈরি করে।


বোবা প্রশ্ন: ড্রিমউইভার প্রকল্পের মতো এর মতো কোনও সমাধান আছে?
জাঙ্গোফান

আমি জানি না যে আপনি আসলে স্বপ্নের ওয়েইভার প্রকল্পগুলি তৈরি করেন তবে আপনি এখনও অবিচ্ছিন্ন ইন্টিগ্রেশন এবং ফাইলটিকে অনুলিপি করে টুকরো টুকরো টুকরো ব্যবহার করতে পারেন ra
জেসন ওয়াটস

3

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


2
অবিশ্বাস্যরকম বকাঝকা হওয়ার জন্য আমাকে ক্ষমা করুন, তবে কীভাবে এগুলি ভিজ্যুয়াল স্টুডিওতে ব্যবহার করা যেতে পারে? (আমি ভাবছি তারা পারবে না?)
জাজানো রেইনহার্ট

3

কমান্ডলাইন থেকে ভিজ্যুয়াল স্টুডিওতে একটি ওয়েব অ্যাপ্লিকেশন "প্রকাশনা" চালানো যেতে পারে msbuild "C:\proj\yourprojectpathandfilename.csproj" /deploydir:"C:\some\deploy\dir"। গন্তব্য ডিরেক্টরিটি একটি স্থাপনযোগ্য ওয়েব অ্যাপ্লিকেশন।

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


3

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

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


2

পাইরোব্যাচএফটিপি এটির জন্য দুর্দান্ত কাজ করে। এটি কেবল পরিবর্তনগুলিকে ধাক্কা দেবে এবং আপনি এটি স্ক্রিপ্ট করতে পারেন যাতে আপনি একটি ব্যাচের ফাইলের ডাবল-ক্লিকের সাহায্যে চাপ দিতে পারেন।

Vaasnet আমরা সেটআপ নিজেদের জন্য স্বপ্ন সমাধান করেছি, কিন্তু এটি মোটামুটি যদি আপনি করতে পারেন কিছু বা এই উপাদান সব ব্যবহার করে সেট আপ কিন্তু মূল্য জড়িত। এটি কী তা এখানে:

  • আমাদের সমস্ত ডেভ মেশিনে এসভিএন
  • আমাদের বিল্ড / স্থাপনার সার্ভারে এসভিএন
  • ক্রুইসেকট্রোল.এন.ভি এসভিএন-র পরিবর্তনের জন্য নজর রাখে এবং স্টেজিং ফোল্ডারে কেবল প্রয়োজনীয় ফাইলগুলি তৈরি এবং মঞ্চ করে দেবে
  • পাইরোব্যাচএফটিপি ব্যবহার করে আমরা একটি মঞ্চস্থানে ধাক্কা দিয়ে থাকি (ক্রুইসেকট্রোল দ্বারা ট্রিগার করা যাতে এটি স্বয়ংক্রিয়ভাবে ঘটে)
  • আইআইএস and এবং অ্যাপ্লিকেশন রিকোয়েস্ট রাউটিং (এআরআর) এবং ইউআরএল পুনর্লিখন ব্যবহার করে আমাদের নিম্নলিখিত স্টেজিং / প্রোডাকশন সেটআপ রয়েছে:
    • কোনটি 'লাইভ' এবং কোনটি 'স্টেজেজিং' এর উপর নির্ভর করে এআরআর আপ ট্র্যাফিককে উদাহরণ 01 বা 02-তে উদাহরণ দিবে
    • এফটিপি অ্যাকাউন্ট সর্বদা 'মঞ্চায়ন' করতে বাধ্য
    • আমার কাছে আরও একটি মিনি অ্যাডমিন সাইট রয়েছে যা স্টেজিং অদলবদল করে এবং একক ক্লিকের সাথে লাইভ করবে। শূন্য ডাউনটাইমের সাথে স্যুইচ করতে এটি 1 সেকেন্ডের সবকটি সময় নেয় এবং আমরা যদি বুঝতে পারি যে এই রিলিজটিতে কিছু ভুল ছিল (তবে এটি বিরল, যেহেতু আমরা লাইভে যাওয়ার আগে এটি এত সহজে পরীক্ষা করতে পারি) তবে আমরা আবার ফিরে যেতে পারি।

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


আমি আশা করি যে পণ্যটি বিনামূল্যে ছিল। দেখতে বেশ সুন্দর লাগছে।
jjofofan

এটি ঠিক যে ধরণের জিনিস আমরা সন্ধান করছি তার মতো মনে হচ্ছে। আমি এটিতে আরও কিছু গবেষণা করব, তবে পোস্ট করার জন্য ধন্যবাদ!
জাজানো রাইনহার্ট

হ্যাঁ, এটি নিখরচায় নয়, তবে এটি আপনার সাশ্রয়ী সময়ের প্রথম ঘন্টাের মধ্যে নিজের জন্য অর্থ প্রদান করে। এটি এই মত একটি স্থাপনা পরিস্থিতিতে বেশ দ্রুত আসে।
স্কট ফোর্সিথ - এমভিপি

সুন্দর, যদিও একটি প্রশ্ন। আপনি উল্লেখ করেছেন যে 01 বা 02 টি লাইভ করা যেতে পারে, এবং সমস্যাগুলির ক্ষেত্রে এটি অন্য পরিস্থিতিতে ফিরে যেতে পারে। সেই সময়ে ডাটাবেসে ব্যবহারকারীর ডেটা দিয়ে কী ঘটে? অর্ধেক উদাহরণস্বরূপ 1 ডিবি হবে, এবং অন্য উদাহরণে ডিবিতে বিশ্রাম থাকবে?
সৌরভ কুমার

1

প্রস্তাবিত নয় এমন অন্য উপায়ে, আমি আপনাকে 'গু' এবং ওয়েব সেটআপ প্রকল্পগুলি উল্লেখ করি to

এটি মূলত আপনার .NET অ্যাপ্লিকেশনটির জন্য একটি এমএসআই ইনস্টলার তৈরি করে। এই উদাহরণটি ভিএস 2003 এর জন্য, তবে আমার কাছে ভিএস 2010 রয়েছে এবং প্রকল্পের ধরণটি এখনও আছে। আপনার প্রয়োজন হলে এটি আপনাকে প্রচুর পরিমাণে কাস্টমাইজেশন দিতে পারে, বা না হলে কেবলমাত্র বেসিক ইনস্টলেশন।

ব্যক্তিগতভাবে যেখানে আমি কাজ করি আমরা কেবল একটি এক্সকপি-স্টাইল স্থাপনা করি, তবে শেষ পর্যন্ত আমি কেবল একটি প্যাকেজ সার্ভার গ্রুপের হাতে তুলে দিতে চাই, কখন এবং কীভাবে এটি স্থাপন করা হবে তা নিয়ন্ত্রণ দিয়ে the (আমি মনে করি এটি গ্রুপ-পলিসির মতো কিছু ব্যবহার করে গণপরিবহন করা আরও সহজ করে দিবে, তবে আমি এর সাথে খুব বেশি পরিচিত নই)


0

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

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


0

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


আমাদের ডেভ সার্ভারটি কেবল এফটিপি-র মাধ্যমেই উপলব্ধ এবং আমি যদি আশা করি তবে সম্ভব হলে একটি বিসপোক সলিউশন এড়াতে হবে hop
জাজানো রেইনহার্ট

0

যখন আমি একটি বড়। কম কোম্পানিতে কাজ করি তখন আমরা আমাদের। নেট মোতায়েনের সাথে এটি করি।

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

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

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

এই সিস্টেমটি ব্যবহার করে একটি সাধারণ স্থাপনায় আমরা পাঁচ থেকে ছয় ঘণ্টার মোতায়েন থেকে এক ঘন্টা বা তারও কম সময়ে চলে যাই to

শুভকামনা এবং আশা করি এটি আপনার অ্যাপ্লিকেশন মোতায়েন করার জন্য কিছুটিকে সহায়তা করে।


0

ভিজ্যুয়াল স্টুডিওতে কেবল "প্রকাশনা" এবং তারপরে পরিবর্তিত ফাইলগুলি ম্যানুয়ালি এফটিপি করার চেয়ে আরও ভাল কোনও উপায় থাকতে হবে?

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

.NET বিকাশকারী যিনি ASP.NET ওয়েব অ্যাপ্লিকেশনগুলি আকার, জটিলতা এবং ব্যবহারকারীর সংখ্যা (কয়েকশো ব্যবহারকারী থেকে কয়েক হাজার পর্যন্ত) বিকাশকারী বেশ কয়েকটি সংস্থায় কাজ করেছেন, আইএমও 'স্থাপনা' প্রায়শই সবচেয়ে "তরল" বিষয়। কিছু সংস্থা এটিকে আমলাতন্ত্রের ক্ষেত্রে খুব বেশি দূরত্বে নিয়ে যায়, অন্যরা মোতায়েনের কোনও বিষয়ই মোটেই সমাধান করে না। আমার অভিজ্ঞতায়, মোতায়েনের সমস্যাগুলি অসুবিধা / ব্যর্থতার ক্ষেত্রে 1 বা একাধিক 3 বিভাগে পড়ে:

  1. নকশা পর্যায়ে ডিপ্লোয়মেন্ট পর্যায়ে ডিপোজিট অবহেলা / ভুলে যাওয়া: বেশিরভাগ ওয়েব অ্যাপ্লিকেশনগুলির মধ্যে একটি ওয়েব সার্ভার এবং একটি ডাটাবেস অন্তর্ভুক্ত থাকে। অ্যাপ্লিকেশন কোডের বাইরে, সম্ভবত কিছু সঞ্চিত পদ্ধতি এবং ডাটাবেস টেবিল, স্থাপনার খুব বেশি চিন্তাভাবনা করার দরকার নেই। ASP.NET স্থাপনার মধ্যে প্রতিপোষক করতে সক্ষম বেশী কিন্তু অধিকাংশ প্রায়ই ডেভেলপারদের প্রকৃত আবেদন চলমান পাওয়ার পরিপ্রেক্ষিতে বিভ্রান্ত করছে করছেন যখন যাব এটা টাস্ক কিভাবে একটি পৃথক ইস্যু হিসেবে বিস্তারের।

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

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

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

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

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

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

আমি বুঝতে পারি যে এই পোস্টটি মূলত যে প্রশ্নটি করা হয়েছিল তার জন্য ওভারকিল হতে পারে। দুর্ভাগ্যক্রমে, মোতায়েন করা সহজ জিনিস নয় কারণ অ্যাপ্লিকেশনগুলি জটিলতায় বিভিন্ন রকম হতে পারে। আমি বাজি ধরছি যে বেশিরভাগ সংস্থাগুলি জটিল এএসপি.এনইটি অ্যাপ্লিকেশনগুলি মোতায়েন করে, সময়ের সাথে সাথে কাজের (অন্ততপক্ষে) নির্ভরযোগ্যতার সাথে কিছু কৌশল তৈরি করেছে


হ্যাঁ ... আপনি কীভাবে পার্সিমনি উদ্ধৃত করেছেন তা আমি পছন্দ করি তবে তারপরে আপনি সবচেয়ে জটিল উত্তর দিতে যান। হাঃ হাঃ হাঃ.
jjofofan

1
হ্যাঁ, আমি বুঝতে পারি আমার উত্তরটি নিজের সাথে বিপরীত। আমি সবেমাত্র অসংখ্য মোতায়েনের মুখোমুখি হয়েছি যা ভুল হয়ে গেছে যে আমি এতে খুব ক্লান্ত হয়ে পড়েছি। অভিমানের জন্য দুঃখিত!
osij2is

1
রেড গেট থেকে একটি নতুন সরঞ্জাম রয়েছে: red-gate.com/supportcenter/Content/Depدام_Manager
ম্যাট ইভান্স

@ ম্যাথহে ইভান্স - চমৎকার! আমি এখনই URL টি দেখছি। এটি কি নতুন তৃতীয় পক্ষের অধিগ্রহণ বা তাদের নিজস্ব পণ্য ছিল?
osij2is

আমি মনে করি এটির নিজস্ব পণ্য। তারা এটি তাদের নিজস্ব স্থাপনার জন্য অভ্যন্তরীণভাবে তৈরি করেছে এবং ব্যবহার করে - যা আশাব্যঞ্জক বলে মনে হয়। আমি যখন এটি পেয়ে যাব তখন আমার নিজের প্রচারের বিষয়ে আপডেট হবে
ম্যাট ইভান্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.