چگونه می توان پروژه های DevOps را با Azure مدیریت کرد؟
در این مقاله قصد داریم با نحوه مدیریت پروژه های DevOps توسط آژور (Azure) آشنا شویم. اما پیش از شروع بیایید ببنیم اصطلاح DevOps به چه معناست؟
DevOps چیست؟
به منظور استفاده سریع برنامه با کمترین خطا و داشتن محیط کاربردی پایدار، بسیار مهم است که توسعه دهندگان با مدیران IT و بالعکس همکاری مناسبی داشته باشند.
برای انجام این کار، آنها باید ارتباط خوبی داشته باشند و گاهی اوقات در یک تیم کار کنند. در حالت ایدئال برنامهنویسان و مدیران IT بهتر است که با هم در یک محیط کار کنند که به آن اصطلاحاً DevOps گفته میشود. که یک اصطلاح سریع بوده و به معنی همکاری متقابل است.
خدمات Azure App سرویسهایی است که شما برای میزبانی وب یا API خود استفاده میکنید.
زمانی که سورسکد برنامه خود را در جایی مانند source control قرار دادید، میتوانید به آسانی و به صورت خودکار هر زمانی که تغییری در کدها ایجاد کردید، آن را در Azure App Service قرار دهید.
برای این کار باید آیتم Deployment Option در App Service تنظیم شود، که به صورت زیر است:
۱- در App Service خود (مانند وب اپ) به بخش Deployment Option بروید.
۲- در بخش choose source مکان قرارگیری سورسکد شما پرسیده میشود.
۳- هنگامی که محل ذخیرهی سورسکد خود را انتخاب کردید، باید آن را authenticate کنید تا آژور بتواند از این اعتبار برای دسترسی به سورسکد استفاده کند.
۴- سپس شما میتوانید جزئیات مربوط به deployment خود را انتخاب کنید، یعنی جایی برای تست عملکرد کدتان که ما اینجا GitHub را انتخاب کردیم.
۵- هنگامی که این تنظیمات انجام شد، بعد از اعمال تغییرات در سورسکد و Commit کردن آن، این سورس کد در App Service به طور اتوماتیک ساخته و deploy میشود.
همچنین شما در بخش Deployment Option میتوانید تمام deployment های قبلی App Service خود را مشاهده کرده و به دلخواه هر کدام را دوباره redeploy کنید.
این قابلیت بسیار جالب و مفید است. به ویژه هنگامی که شما با تیمی از توسعهدهندگان و برنامهنویسان کار میکنید که تمام آنها سورسکدها را در یک محل ذخیره کردهاند. با این حال، قابلیت Deployment Option در App service محدودیتهایی دارد. نصب آن آسان است ولی تنظیمات محدود آن اجازه اعمال فعالیتهای گسترده را نمیدهد.
Azure DevOps Projects
Azure DevOps Projects در پرتال آژور جایی است که تنظیمات CI و CD را برای شما آسان میکند. این قسمت یک محیط راحت و سادهای از تنظیمات را برای کاربر ایجاد کرده است.
در این قسمت تمام مراحل ساخت و انتشار Azure DevOps Projects در محیط Visual Studio Team هم امکان پذیر است. با توجه به شکل زیر به آسانی در بخش Azure DevOps Projects یک پروژه جدید را به صورت ویزاردی ایجاد کنید.
این ویزاردها، قالبهای پیش ساخته را برای شروع کار به شما ارائه میدهد. شما همچنین میتوانید بدون یک قالب پیش ساخته کار خود را شروع کرده و پروسه خود را ثبت کنید.
به عنوام مثال ما میخواهیم یک پروژه دات نت را ایجاد کنیم. پس از انتخاب این گزینه، wizard میپرسد که آیا میخواهید پروسه را برای ASP.NET یا برای ASP.NET Core تنظیم کنید. ما ASP.NET Core را انتخاب میکنیم.
گام بعدی این است که پروژههای Azure DevOps را در کجا deploy کنیم. میتوانیم از این گزینههای آژور یکی را انتخاب کنیم:
Web Apps for windows
Web Apps for Linux
Web Apps for Container
که مورد آخر اجازه deploy یک Docker container را در App Services Web App میدهد.
ایجاد حساب کاربری جدید
به شکل زیر توجه کنید. در این مرحله از ما میخواهد که یک حساب جدید Visual Studio Team Services را ایجاد کنیم یا به حساب موجود خودمان وارد شویم و سورسکدی را که میخواهیم در آژور مستقر شوند را انتخاب کنیم.
هنگامی که تمامی این کارها انجام شد، Azure DevOps Projects ، تعریف جدیدی از Service Visual Studio Team که با Web App خاصی کار میکند، را منتشر میکند. نتیجه به این شکل است:
حال پس از تنظیمات، میتوانید این روند را در Visual Studio Team Services طبق نیاز خود سفارشی کنید.
Azure DevOps Projects راهی عالی و آسان برای شروع کار با پایپ لاین CI و CD شما است. که به شما اجازه تنظیمات پیشرفتهای را میدهد.
Visual Studio Team Services
قابل تنظیمترین و قدرتمندترین راهکار برای ایجاد پایپلاین CI وCD در آژور استفاده از Visual Studio Team Services یا به اختصار VSTS است.
VSTS اساساً ورژن آنلاین Team Foundation Service است، که به یک محصول کامل تبدیل شده و در آژور به خوبی کار میکند.
شما میتوانید از آن برای هاست سورسکدهای خود یا ساخت سورسکدهای خود و همچنین استقرار application خود در آژور و یا در سرویسهای ابری دیگر استفاده کنید.
همچنین میتوانید از VSTS برای ردیابی تسکها، سورسکدها، deployment ها و همچنین تست عملکرد برنامه خود استفاده کنید. همانطور که مشاهده کردید Azure DevOps از VSTS برای ساخت و انتشار app شما استفاه میکند.
از آنجا که DeVOps میتواند خیلی کارها را انجام دهد، شروع کار با آن دلهرهآور به نظر میرسد، اما واقعًا اینطور نیست.
هنگامی که حساب خود را در Visual Studio تنظیم کردید، میتوانید شروع به ذخیره سورسکد خود و ایجاد و انتشار pipeline کنید. حتی قالبهای پیش فرضی برای شروع کار شما وجود دارد.
تصویر زیر ساخت یک پایپلاین برای یکی از پروژههای ما در VSTS را نشان میدهد. این یکی حتی سورسکد را از GitHub میگیرد و آن را با استفاده از VSTS میسازد. بنابراین کد شما در VSTS ذخیره نمیشود، اما میتواند هر جایی باشد.
علاوه بر ساختن کد، شما همچنین میتوانید به راحتی تعاریف انتشار (release) را تنظیم کنید.
مانند شکل زیر، شما میتوانید محیطهای متعددی را برای انتشار مانند Dev ، Acceptance و Production تنظیم کنید.
بخش جالب اینجاست که شما میتوانید یک تائیدیه را قبل از انتشار نسخه خود تنظیم کنید. بنابراین هنگامی که کد شما ساخته شده و در محیط Dev قرار گرفت، مدیر شما یک ایمیل دریافت میکند که حاوی لینک تایید این نسخه برای انتشار در محیطهای بعدی است. به این ترتیب، دیگر مشکلی وجود نخواهد داشت و کنترل در دست فرد مناسب خواهد بود.
تنظیم محیط
مانند تصویر زیر، هر محیط یک سری وظایف در پایپلاین دارد. شما میتوانید هر اندازه که بخواهید این محیط را پیچیده کنید. در اینجا وظایف مربوط به deploy کردن برای رسیدن به اهداف خاص مانند سرویسهای Azure App هم وجود دارد.
در VSTS Marketplace شما میتوانید وظایف بیشتری را برای اهداف خاص مانند راهاندازی Amazon Lambdas دانلود کنید.
rebuild کد بینهایت ارزشمند است، زیرا به شما اجازه میدهد که بررسی کنید که آیا همه چیز با هم کارمیکند یا نه.
Release اتوماتیک برنامه بسیار حیاتی است، زیرا باعث میشود که برنامه شما سریع و با حداقل خطا اجرا و منتشر شود.
نتیجهگیری
خدمات و ویژگیهای مایکروسافت که در این مقاله مورد بحث قرار گرفت میتواند به شما کمک کند تا به راحتی یک pipeline را ایجاد و منتشر کنید. حال برای اکثر سناریوها شما واقعًا هیچ بهانهای برای تنظیم پروسهها ندارید.
اما مثل همیشه، گزینههای زیادی برای انجام یک نوع کار وجود دارد. کدام گزینه را در چه زمانی باید استفاده کرد؟ جدول زیر به طور کامل توضیح میدهد:
همانطور که در جدول بالا مشاهده میکنید، VSTS اجازه میدهد حداکثر تنظیمات صورت بگیرد. Azure DevOps به شما امکان میدهد تا برای انواع مختلف خدمات آژور، پایپلاین ایجاد کنید.
اما نمیتوانید تنظیمات گسترده پایپلاین را با آن انجام دهید و در نهایت گزینههای Deployment Options در App Service بسیار مفید است، اما اعمال تنظیمات آن فقط در یک سری از App Service ها امکانپذیر است اجازه تنظیمات گسترده در آن داده نمیشود.
سینداد یعنی هدیهی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.
سینداد یعنی هدیهی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی
است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار
در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که
سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.