موضوع مقاله: تحویل پیوسته | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # تحویل پیوسته | مقدمه: تحویل پیوسته یا (CD)، رویکردی در مهندسی نرم‌افزار است که تیم‌ها را قادر می‌سازد نرم‌افزار تولید شده را به روشی سریع و مطمئن برای انتشار و تحویل آماده کنند. | ## بخش 1: تحویل پیوسته | به عبارت دیگر: تحویل مستمر توانایی اعمال تغییرات در محیط عملیات در هرلحظه با روشی سریع و مطمئن و به طور کاملاً پایدار می‌باشد. این تغییرات شامل همه انواع آن از جمله تغییرات پیکربندی در نرم‌افزار، زیرساخت و پلتفرم، افزودن ویژگی‌های جدید، رفع باگ و خطاها می‌شود. به کمک این محیط‌های متوالی می‌توان فعالیت‌های طولانی یکپارچه‌سازی، تست عملکرد و تست‌های پذیرش نهایی را به تدریج انجام داد. مجموع این کارها به صورت حلقه‌های یک زنجیر در پشت سرهم قرار گرفته و فرایند تحویل پیوسته را تشکیل می‌دهند. ارتباط با دواپس تحویل پیوسته و دواپس از نظر معنایی به هم مشابه‌ هستند و عموما با هم ترکیب می‌شوند، اما به طور کلی این دو مفهوم با یکدیگر متفاوت هستند. دواپس دامنه تعریف گسترده‌تری دارد و حیطه اصلی کار آن تغییر فرهنگ‌های سازمانی به‌ویژه در مفهوم همکاری تیم‌ها مختلف درگیر در تحویل نرم‌افزار (تیم اجرایی، تیم توسعه، مدیریت و غیره) می‌باشد. در سوی دیگر اما تحویل پیوسته، رویکردی برای خودکار کردن تحویل، گرد‌آوری پروسه‌های مختلف و اجرای سریعتر و مکرر آنها می‌باشد. بنابر آنچه بیان شد: دواپس محصور تحویل پیوسته است و تحویل پیوسته (CD) مستقیم به دواپس منتقل می‌شود. ارتباط با استقرار پیوسته تحویل مداوم ، توانایی ارائه نرم افزاری است که می تواند در هر زمان از طریق انتشار دستی به کار گرفته شود. قابل مشاهده بودن: تمام مراحل استقرار از جمله ساخت، استقرار، تست و انتشار به منظور همکاری، برای اعضای تیم قابل مشاهده است. بازخورد: اعضای تیم به محض اتفاق افتادن خطا آنها را مطالعه می‌کنند و تلاش می‌کنند که هرچه سریعتر مشکل را حل کنند. | ## بخش 2: تحویل پیوسته | استقرار پیوسته: با استفاده از یک فرایند کاملا خودکار، هر نسخه از محصول در هر محیط به صورت خودکار نصب شود. انواع ابزار‌ها در تحویل پیوسته، انتقال کد و استقرار آن در محیط عملیاتی به صورت خودکار انجام می‌شود. اصول چپ|550pxتحویل مداوم ، مفهوم رایج خط لوله استقرار را به عنوان پیشگیری از خطای سهوی و ناب در نظر می گیرد: مجموعه‌ای از اعتبارسنجی‌ها که یک نرم‌افزار در مسیر عرضه‌اش باید سپری‌ کند. کد درصورت نیاز باید کامپایل شود و پس از آن هر دفعه که تغییری در مخزن ثبت ثبت می‌شود توسط سرور ساخت (build) بسته‌بندی شود. در مرحله آخر نیز این کد باید توسط تکنیک‌های متنوع تست شود تا از آمادگی ‌آن برای عرضه اطمینان حاصل شود. توسعه دهندگان که به یک دوره چرخه طولانی عادت کرده اند ممکن است هنگام کار در محیط CD نیاز به تغییر طرز فکر خود داشته باشند. در این راهکار مهم است که بدانیم هر قطعه کدی که در مخزن ثبت می‌شود ممکن است هر لحظه به کاربران عرضه شود. الگوهایی مانند ضامن ویژگی ها می توانند برای انجام زودهنگام کد که هنوز برای استفاده توسط کاربران نهایی آماده نیست ، بسیار مفید باشند. مزایا و موانع برخی از مزایای تحویل پیوسته: شتاب بیشتر در زمان ورود به بازار: تحویل پیوسته به شما این امکان را می دهد که ارزش تجاری ذاتی نسخه های نرم افزاری جدید را با سرعت بیشتری به مشتریان تحویل بدهید. ساخت محصول مناسب: انتشارهای مکرر باعث می شود تیم‌های توسعه‌دهنده برنامه با سرعت بیشتری نظرات کاربران را بدست آورند. بهبود در بهره‌وری و کارایی: صرفه‌جویی قابل توجهی در زمان برای توسعه دهندگان، آزمایشگران، مهندسان عملیات و غیره از طریق اتوماسیون به همراه دارد. | ## بخش 3: تحویل پیوسته | انتشار‌های مطمئن: خطرات مرتبط با انتشار به‌اندازه قابل‌توجهی کاهش یافته و روند انتشار قابل اعتمادتر می‌شود. با استفاده از تحویل پیوسته، مراحل استقرار و اسکریپت‌ها قبل از استقرار در هنگام تولید به طور مکرر آزمایش می‌شوند. با این کار یافتن و برطرف کردن هر مشکلی که رخ دهد آسان تر می‌شود و از زمان تأثیر آنها می کاهد. بهبود کیفیت محصول: تعداد اشکالات باز و حوادث در محیط‌ عملیاتی به طور قابل توجهی کاهش می‌یابد. برخی از موانع تحویل پیوسته: خواسته‌های مشتری: برخی از مشتریان نمی خواهند سیستم هایشان به طور مداوم به روز شود. محدودیت دامنه: در برخی از حوزه ها، مانند مخابرات و پزشکی، مقررات آزمایش‌های گسترده قبل از اجازه ورود به فاز عملیات نصب نسخه‌های جدید وجود دارد. عدم وجود تست خودکار: عدم خودکارسازی آزمون منجر به عدم اعتماد به نفس توسعه دهنده می‌شود و می تواند از تحویل پیوسته جلوگیری کند. تفاوت در محیط‌ها: محیط‌های مختلفی که در توسعه، آزمایش و تولید مورد استفاده قرار می‌گیرند که می‌توانند منجر به رخداد مسائل شناسایی نشده در محیط عملیاتی شوند. تست‌هایی که نیاز عملیات انسانی دارند: همه‌ی ویژگی‌های کیفیت به صورت خودکار قابل تأیید نیستند. | ## جمع‌بندی | این چالش ها در زمینه ساختار سازمانی، فرایندها، ابزارها، زیرساخت‌ها، سیستم‌های قدیمی، معماری تحویل پیوسته، آزمایش مداوم نیازمندی‌های غیر عملکردی و بهینه سازی اجرای آزمون است.