محیط استقرار نرمافزار
در توسعه نرمافزار، محیط (به انگلیسی: Environment) یک سیستم کامپیوتری است که نرمافزار یا یک جز نرمافزاری بر روی آن استقرار یافته و اجرا شده است. در حالات ساده، به عنوان مثال توسعه دادن یک برنامه و اجرای بلافاصله آن بر روی همان سیستم ممکن است تنها به یک محیط نیاز داشته باشد اما در حالات صنعتی و تجاری بهطور معمول یک محیط با عنوان توسعه (Development) برای تغییرات اصلی و توسعه در نظر گرفته میشود، از طرف دیگر محیطی با عنوان محصول نهایی (Production) برای کاربر نهایی استفاده میشود. این فرایند ساختار مدیریت انتشار نرمافزار در خیلی از مشکلات به فازهای استقرار(Deployment)، آزمایش(Testing) و عقبگرد(Rollback) کمک میکند.
محیطها ممکن است بهطور قابل توجهی با یکدیگر تفاوت داشته باشند: بهطور معمول محیط توسعه یک فضای کاری تنها برای توسعه دادن نرمافزار است در حالی که در محیط محصول نهایی احتمالاً شاهد متصل بودن یک شبکه عظیم از ماشینهای توزیع شده مرکز داده یا ماشین مجازیهای راینش ابری باشید.
معماریها
محیطهای استقرار تفاوتهای قابل توجهی با یکدیگر دارند اما بهطور کلی نقطه شروع آنها از محیط توسعه (DEV) بوده و به محیط محصول نهایی (PROD) ختم میشود. یکی از معماریهای استقرار که بهطور متداول استفاده میشود عبارت است از توسعه، آزمایش، نمایش، محصول نهایی (DEV, TEST, STAGING, PROD) که با ترتیب ذکر شده نرمافزار بر روی محیطها استقرار مییابد. همچنین محیطهای استقرار دیگر وجود دارند که بهطور کلی برای فرایند تولید نرمافزار در نظر گرفته نمیشوند از جمله تضمین کیفیت (Quality Assurance) که در اختیار نیروهای آزمایش قرار میگیرند، جعبه شنی (Sandbox) که برای آزمایش کردن محصول توسط خود توسعه دهندگان استفاده میشود. در مواقع اضطراری محیطی با عنوان بازیابی فاجعه (Disaster Recovery) در نظر گرفته میشود که در حالتی که برای نسخه نهایی مشکلی پیش آید از این محیط استفاده میشود.
یکی دیگر از معماریها عبارت است از توسعه، آزمایش، تست پذیرش(Acceptance testing) و محصول نهایی که به اختصار DTAP گفته میشود.
محیطها
محیطهای استقرار بهطور کلی عبارتاند از:
| محیط | توضیح |
|---|---|
| محلی (Local) | محیط کاری توسعه دهندگان |
| توسعه (Development/Trunk) | یک جعبه شنی که توسعه دهندگان برای آزمایش برنامه توسعه یافته از آن استفاده میکنند. |
| یکپارچهسازی (Integration) | - |
| آزمایش (Test/QA/Internal Acceptance | - |
| پیش از محصول نهایی (Stage/Pre-production/External-Client Acceptance) | مشابه محیط محصول نهایی |
| محصول نهایی (Production/Live) | محصول نهایی که در اختیار کاربران قرار میگیرد. |
جستارهای وابسته
منابع
- ترجمه نسخه انگلیسی ویکیپدیا