استقرار نرم‌افزار

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از گسترش نرم‌افزار)
پرش به ناوبری پرش به جستجو
توسعه نرم‌افزار
فعالیت‌های اصلی
Paradigms and models
متدولوژی‌ها و frameworks
رشته‌های مورد حمایت
Practices
ابزار توسعه نرم‌افزار
Standards and BOKs

استقرار نرم‌افزار یا به‌کاراندازی نرم‌افزار[۱] به انگلیسی (Software deployment) به تمامی فعالیت‌هایی که یک نرم‌افزار را برای استفاده آماده می‌کند اطلاق می‌شود تا درنهایت نرم‌افزار راه‌اندازی گردد.
فرایند استقرار عمومی شامل چندین فعالیت مرتبط به یکدیگر و تغییرات احتمالی بین آن‌ها می‌باشد. این فعالیت‌ها می‌توانند از طرف توسعه‌دهنده نرم‌افزار، از طرف کاربر یا از طرف هر دوی آن‌ها صورت پذیرند. از آنجا که هر سیستم نرم‌افزاری منحصر به فرد است، فرایندهای دقیق یا الگوریتم‌های درونی هر فعالیت به سختی می‌توانند تعریف شوند؛ بنابراین «استقرار» باید به عنوان یک فرایند کلی تفسیر شود که باید مطابق با الزامات خاص یا مشخصات آن سفارشی شود.[۲]

تاریخچه[ویرایش]

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

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

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

فعالیت‌های استقرار[ویرایش]

انتشار[ویرایش]

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

نصب و فعال سازی[ویرایش]

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

غیرفعال سازی[ویرایش]

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

حذف نصب[ویرایش]

حذف نصب عملکردی خلاف نصب دارد و اشاره به حذف سیستم یا نرم‌افزاری دارد که دیگر لازم نیست.

به روز رسانی[ویرایش]

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

به روز رسانی خودکار[ویرایش]

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

ردیابی نسخه[ویرایش]

سازگاری[ویرایش]

قوانین استقرار[ویرایش]

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

جستارهای وابسته[ویرایش]

  1. «به‌کاراندازی نرم‌افزار» [رایانه و فنّاوری اطلاعات] هم‌ارزِ «software deployment»؛ منبع: گروه واژه‌گزینی. «فارسی». در همان. دفتر پنجم. فرهنگ واژه‌های مصوب فرهنگستان. تهران: انتشارات فرهنگستان زبان و ادب فارسی. شابک ۹۷۸-۹۶۴-۷۵۳۱-۷۶-۴ (ذیل سرواژهٔ به‌کاراندازی نرم‌افزار)
  2. Roger S. Pressman Software engineering: a practitioner's approach (eighth edition)
  3. Rees-Carter, Stephen (13 July 2018). "How to Install and Configure Ansible on Ubuntu 18.04". DigitalOcean. Archived from the original on 9 June 2019. Retrieved 8 June 2019. Configuration management systems are designed to make controlling large numbers of servers easy for administrators and operations teams. They allow you to control many different systems in an automated way from one central location.