به‌کاراندازی نرم‌افزار

**به‌کاراندازی نرم‌افزار** یا **استقرار نرم‌افزار** به تمامی فعالیت‌هایی که یک نرم‌افزار را برای استفاده آماده می‌کند گفته می‌شود تا درنهایت نرم‌افزار **راه‌اندازی** شود.فرایند به‌کاراندازی عمومی شامل چندین فعالیت مرتبط به یکدیگر و تغییرات احتمالی بین آن‌ها می‌باشد. این فعالیت‌ها می‌توانند از طرف توسعه‌دهنده نرم‌افزار، از طرف کاربر یا از طرف هر دوی آن‌ها صورت پذیرند. از آنجا که هر سیستم نرم‌افزاری منحصر به فرد است، فرایندهای دقیق یا الگوریتم‌های درونی هر فعالیت به سختی می‌توانند تعریف شوند؛ بنابراین «به‌کاراندازی» باید به عنوان یک فرایند کلی تفسیر شود که باید مطابق با الزامات خاص یا مشخصات آن سفارشی شود.

## تاریخچه
هنگامی که کامپیوترها بسیار بزرگ، گران‌قیمت و حجیم (پردازنده‌های مرکزی و رایانه‌های کوچک) بودند، نرم‌افزارها توسط تولیدکنندگان همراه با سخت‌افزارها ارائه می‌شدند. اگر نیاز بود یک نرم‌افزار تجاری روی کامپیوتری نصب شود، ممکن بود بسیار هزینه بر و وقت گیرباشد، با توجه به به‌کارگیری یک مشاور یا معمار سیستم. برای مثال: نصب و راه اندازی نرم‌افزار سازمانی در محل کار در دوران فعلی.

با این وجود، با گسترش فروشگاه‌های اینترنتی در عصر جدید برای رایانه‌های کوچک در دهه ۱۹۸۰ شکل‌های جدیدی از توزیع نرم‌افزارها عرضه شد، در ابتدا توسط رام کارتریجها، سپس نوار کاستها، سپس فلاپی‌دیسکها و بعد از آن (در دهه ۱۹۹۰ و بعد از آن) لوح‌های نوری، اینترنت و فلش. و این بدین معنی بود که نصب و راه اندازی نرم‌افزار می‌توانست توسط خود مشتری انجام شود. به هر حال این امر در طول زمان به‌طور فزاینده ای شناخته شده بود که قابلیت تنظیم نرم‌افزار توسط کاربر بسیار مهم است؛ و این باید به صورت ایدئال با یک کاربری مناسب انجام می‌شد. (برای مثال نیاز به تغییر ریجیستری ویندوز توسط کاربر).

در به‌کاراندازی‌های نرم‌افزاری قبل از اینترنت، به‌کاراندازی‌ها (و عملیات مربوط نزدیک به آن) از امور ضروری پر هزینه، نادر و حجیم بودند. بنابر این قابل بحث است که با گسترش اینترنت، پایان دادن به توسعه سریع نرم‌افزار امکان‌پذیر می‌شود. در واقع ظهور محاسبات ابری و نرم‌افزاری به عنوان یک سرویس به این معنی است که نرم‌افزارها می‌توانند در بستر اینترنت به تعداد زیادی از کاربران در عرض چند دقیقه عرضه شوند. این همچنین به این معناست که به‌طور معمول، برنامه‌ریزی‌های به‌کاراندازی در حال حاضر توسط تأمین‌کننده نرم‌افزار تعیین می‌شود و نه توسط کاربران. چنین انعطاف‌پذیری منجر به افزایش تحویل پیوسته به عنوان یک گزینه در دسترس به‌طور ویژه برای برنامه‌های کاربری تحت وب با خطر ریسک کم می‌باشد.

## فعالیت‌های به‌کاراندازی
### انتشار
انتشار بر پایه فرایند توسعه نرم‌افزار تکمیل شده‌است وگاهی اوقات به عنوان بخشی از فرایند توسعه به جای فرایند به‌کاراندازی طبقه‌بندی می‌شود؛ و شامل عملیات آماده‌سازی برای مونتاژ و انتقال به سیسنم‌های کامپیوتری می‌باشد.

### نصب و فعال سازی
در سیستم‌های ساده، نصب شامل ایجاد نوع فرمان (رایانش)، میانبر، اسکریپت یا سرویس برای اجرای نرم‌افزار (به صورت دستی یا خودکار) می‌باشد. در سیستم‌های پیچیده‌تر ممکن است نصب شامل پیکربندی سیستم (احتمالاً با سؤال نهایی از کاربران دربارهٔ استفاده مورد نظر آن‌ها یا به‌طور مستقیم دربارهٔ پیکربندی سیستم از آن‌ها سؤال شود) و ساخت زیر سیستم‌های مورد نیاز برای استفاده باشد.

### غیرفعال سازی
غیرفعال سازی عملکردی برعکس فعال سازی دارد و اشاره به خاموش کردن هر جزء در حال اجرای سیستم را دارد.

### به روز رسانی
فرایند به روزرسانی، تمام یا قسمتی از آخرین نسخه منتشر شده یک نرم‌افزار سیستم را جایگزین آن می‌کند. این فرایند معمولاً شامل غیرفعال سازی و نصب مجدد می‌باشد. در سیستم‌هایی مانند لینوکس، با استفاده مدیریت بسته سیستم نسخه‌های قدیمی نرم‌افزار به‌طور خودکار به عنوان بخشی از این فرایند حذف می‌شوند.

### به روز رسانی خودکار
مکانیسم‌هایی برای نصب به روز رسانی در برخی سیستم‌ها (یا در برخی سیستم عامل‌ها مانند لینوکس، اندروید و iOS)ساخته شده‌است. مکانیسم‌هایی از این قرآیندهای به روز رسانی کاملاً خودکار به کاربران ارائه شده‌است.Norton Internet Security نمونه ای از یک سیستم نیمه اتوماتیک برای بازیابی و نصب بروز رسانی‌ها می‌باشد.

### ردیابی نسخه روت
### سازگاری
## قوانین به‌کاراندازی
پیچیدگی و تنوع محصولات نرم‌افزاری باعث افزایش نقش تخصصی قوانین برای هماهنگی و مهندسی فرایند به‌کاراندازی می‌شود. در نرم‌افزارهای دستکتاپ کاربران نهایی نیز هنگامی که یک بسته نرم‌افزاری را روی دستگاه خود نصب می‌کنند، به یک توسعه دهنده نرم‌افزار تبدیل می‌شوند. قوانین مورد بحث در گسترش نرم‌افزار برای برنامه‌های سازمانی شامل موارد زیر هستند:
* در محیط‌های پیش تولید:
** توسعه دهندگان نرم‌افزار: فرایند توسعه نرم‌افزار را ببینید
** مهندسی ساخت و انتشار: مهندسی انتشار را ببینید
** مدیریت انتشار:مدیریت انتشار را ببینید
** هماهنگ‌کننده نصب: DevOps را ببینید
* در محیط‌های تولید
** مدیر سیستم
** مدیر پایگاه داده
** هماهنگ‌کننده انتشار: DevOps را ببینید
** مدیر پروژه عملیاتی:کتابخانه زیربنایی فناوری اطلاعات را ببینید

## جستارهای وابسته
* مدیریت چرخه حیات نرم‌افزار
* مدیریت چرخه تولید
* مدیریت سیستم
* به‌کاراندازی سیستم
* چرخه حیات نرم‌افزار
* مدیریت انتشار
* مرابخوان
* Definitive Media Library

## منابع

رده:انتشار نرم‌افزار
رده:توزیع نرم‌افزار
رده:مدیریت سیستم