استفاده از Pipeline های Azure - آشنایی و پیش نیازها

اگر با مفاهیم CI/CD و پایپ لاین آشنایی ندارید، ابتدا مقاله زیر را مطالعه فرمائید: https://vrgl.ir/oyKzm پایپ لاین Azure چیست؟پایپ لاین های مایکروسافت Azure، سرویس های ابری ای هستند که می توانید برای build و test خودکار پروژه های خود استفاده کرده و آنها را برای سایر کاربران در دسترس قرار دهید. این روش برای تمامی زبان های برنامه نویسی و هر نوعی از پروژه قابل اجراست.پایپ لاین های Azure ادغام مداوم (CI) و تحویل مداوم (CD) را با یکدیگر به منظور test و build مداوم و مطمئن کدهای شما ترکیب کرده و می تواند به هر محیط توسعه هدفی برساند.سیستم های ورژن کنترلقبل از اینکه بخواهید از CI/CD برای اپ های خود استفاده کنید، باید کد های سورس خود را در یک سیستم ورژن کنترل قرار دهید. پایپ لاین های Azure با سرویس های Github، Azure Repos Git & TFVC، Bitbucket Cloud و ... سازگاری دارد.مقصد های توزیعاز Azure Pipelines برای استقرار کدهایتان در چندین مقصد می توانید استفاده کنید. این مقاصد می تواند شامل container registries، virtual machines، Azure Services یا هر مقصد تحت کلود دیگری باشد.پیش نیاز های استفاده از پایپ لاین های Azureبرای استفاده از Azure Pipelines نیاز دارید تا:یک شرکت(اکانت) در Azure DevOps تعریف کنید.کدهای سورس خود را در یک سیستم ورژن کنترل نگهداری کنید.برای تعریف پایپ لاین ها در Azure از سینتکس YAML و یا از رابط های کاربری کلاسیک استفاده می شود.ادغام مداوم (CI)، test و build های خودکار را برای پروژه شما انجام می دهد. CI به شما کمک می کند تا باگ ها را به سرعت و در چرخه توسعه بیابید (نه در زمان توزیع اپ). خروجی تولید شده توسط سیستم های CI را مصنوعات (artifacts) می گویند که مورد استفاده CD می باشد. CD پس از دریافت از CI، بصورت خودکار کدها را در چندین stage مستقر کرده و تست می کند.پس بطور خلاصه می توان اینطور گفت که سیستم های CI تولید کننده artifact های قابل استقرار هستند که شامل زیرساخت ها و اپ ها می شوند. سپس این artifact ها بصورت خودکار توسط پایپ لاین های انتشار، مصرف شده و نسخه های جدیدی را بر روی مقاصد انتخابی شما ایجاد می کنند.1- تعریف پایپ لاین ها توسط سینتکس YAMLپایپ لاین هایتان را از طریق یک فایل YAML به نام azure-pipelines.yml در کنار سایر فایل های پروژه تعریف می کنید.پایپ لاین شما همراه با کدهایتان ورژن داده می شوند. آنها از ساختار مشابهی با branch ها بهره می برند. تغییرات ایجاد شده در کد را مانند قبل، از طریق بازبینی در pull request ها بررسی می کنید.می توانید در هر برنچ (شاخه)، قواعد build را با اصلاح فایل azure-pipelines.yml تغییر دهید.هر تغییری در فرایند build (مرحله قبل) می تواند مسبب شکست یا ارور شود. اما از آنجائیکه تغییرات در ورژن کنترل رخ می دهند، می توانید به راحتی مشکل را یافته و آن را حل کنید.این مراحل اساسی را طی کنید:1- پایپ لاین Azure را پیکربندی کنید تا از ریپازیتوری گیت مورد نظر شما استفاده کند.2- فایل azure-pipelines.yml را متناسب با build خود تغییر دهید.3- کدهایتان را به ریپازیتوری ورژن کنترل خودتان push کنید. این عمل باعث خواهد شد که build و استقرار پروژه شما بر اساس قواعد تعریفی تان بصورت خودکار انجام شده و از این پس می توانید نتایج این اقدام را بررسی (monitor) کنید.هم اکنون کد شما بروز رسانی شده، build شده، test شده و پکیج شده است. اکنون می توانید آن را به هر مقصدی توزیع کنید!2- تعریف پایپ لاین ها از طریق رابط کاربری کلاسیکامکان ایجاد و پیکربندی پایپ لاین ها در پورتال وب Azure DevOps با ویرایشگر رابط کاربری کلاسیک نیز وجود دارد. باید یک build pipeline ایجاد کنید تا بتوانید کدهایتان را build و test کنید و سپس artifact ها را منتشر کنید. همچنین یک release pipeline برای مصرف این artifact ها در مقاصد توزیع ایجاد کنید.مراحل اساسی زیر را طی کنید:1- پایپ لاین Azure را پیکربندی کنید تا از ریپوزیتوری گیت شما استفاده کند.2- از ویرایشگر کلاسیک Azure Pipelines بمظور ایجاد و پیکربندی build تان همچنین release pipeline ها استفاده کنید.3- کدهایتان را به ریپازیتوری ورژن کنترلتان push کنید. با این کار، پایپ لاین ایجاد شده از مراحل قبل را فعال کرده و وظایف را (مانند build و test کد) اجرا می کنید.بمحض build، باعث ایجاد artifact هایی می شوید که توسط ادامه pipeline برای اجرای وظایف بعدی (مانند توزیع یا staging یا production) استفاده می شوند.کد شما هم اکنون بروزرسانی شده، build شده، test شده و پکیج شده است. این کد هم اکنون می تواند در هر مقصدی توزیع شود.وضعیت دسترسی به خصوصیاتبرخی از ویژگی های پایپ لاین ها تنها در روش استفاده مستقیم از YAML وجود داشته و برخی دیگر تنها در روش رابط کاربری کلاسیک و یا در هر دو بصورت مشترک وجود دارد. برای مشاهده لیست ویژگی ها و وضعیت پشتیبانی شان توسط هر دو روش به جدول زیر مراجعه کنید: https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started/pipelines-get-started?view=azure-devops#feature-availability