Devops چیست و چرا اهمیت دارد؟
در این مقاله میخوانید
با وجود برنامهنویسان خلاقی که همیشه بهدنبال یافتن راهی برای ارتقای کارهایشان هستند، روند ایجاد و توسعه نرمافزارها بهطورمداوم در حال تغییر و پیشرفت است. این امر باعث شده تا زبانها و فریمورکها و کتابخانههای جدیدی ایجاد شوند. در دنیای توسعهدهندگان نرمافزار و فناوری اطلاعات مدرن، دواپس (DevOps) به استانداردی طلایی تبدیل شده است. بااینحال، ممکن است این سؤالها برای شما هم پیش آمده باشد که چرا استفاده از دواپس اینقدر فراگیر و کدام ویژگی باعث متمایزشدن DevOps شده است؟ چرا دواپس درمقایسهبا روشهای سنتی ارجحیت دارد؟ در این مطلب، سعی میکنیم شما را بهطورکامل با DevOps آشنا کنیم و درباره مزایا و ابزارهای آن توضیح دهیم.
دواپس (DevOps) چیست؟
دواپس درواقع مفهومی است که از ترکیب دو کلمه Development بهمعنای «توسعه» و Operation بهمعنای «عملیات» ایجاد شده است. Devops به ایجاد تعامل و همکاری بین اعضای تیم توسعه و عملیات شرکت منجر میشود. تیم عملیات همان تیم IT هستند که در نگهداری سختافزار و نرمافزار و محیطهای عملیاتی تخصص دارند. تیم توسعه نیز مسئول ساخت محصولات نهایی و خطایابی پس از تست آن هستند. دواپس ترکیبی از ابزارها و روشها و فلسفهای است که با ایجاد تعامل بین این دو تیم، امکان تداوم در تحویل برنامهها و ارائه خدمات به کاربران نهایی را فراهم میکند.
انواع DevOps
برای دواپس دو مدل توسعه متفاوت وجود دارد: یکی مدل آبشار (Waterfall) و دیگری مدل چابک (Agile). درادامه، بیشتر درباره این مدلها توضیح میدهیم.
1. مدل آبشار (Waterfall)
Waterfall اولین مدل معرفیشده در توسعه نرمافزار محسوب میشود که بهصورت فرایندی متوالی با درک ساده است. در این مدل، روند توسعه نرمافزار به فازهای مختلف دستهبندی میشود؛ بدینترتیب که خروجی یک فاز به ورودی فاز بعدی تبدیل میشود. بههمیندلیل، به آن مدل آبشار گفته میشود؛ چراکه روند آن بهطورمداوم در حال انجام است و به حالت قبل برگشتپذیر نیست.
فازهای مختلف مدل آبشار (Waterfall) عبارتاند از:
- الزامات (Requirements)
- طراحی (Design)
- اجرا (Implementation)
- تأیید (Verification)
- نگهداری (Maintenance)
معایب مدل آبشار (Waterfall)
- دشواری ایجاد هرگونه تغییرات در مراحل قبلی
- نامناسببودن برای استفاده در پروژههای بزرگ
- احتمال بروز باگهای متعدد بهدلیل همکارینکردن توسعهدهندهها و تسترها باهم
- نامناسببودن برای استفاده در پروژههای نیازمند تغییر
با بررسی شکل زیر، میتوانید معایب این مدل را بهتر درک کنید:
درحالیکه توسعهدهنده زمان زیادی را برای استقرار کدها صرف میکند، تیم عملیات در زمان تست متوجه میشوند که روند شناسایی باگها و ارائه بازخوردهای مفید با مشکلاتی همراه است.
2. مدل چابک (Agile)
در مدل Agile، روند توسعه نرمافزار در یک پروژه شامل چندین تکرار است. در این مدل، در پایان هر تکرار یک محصول یا همان نرمافزار تحویل داده میشود و حدوداً به یک تا سه هفته زمان لازم دارد. در هریک از این تکرارها، تیمهای عملیاتی همزمان در حوزههای زیر کار میکنند:
- الزامات (Requirement)
- طراحی (Design)
- توسعه (Development)
- انتشار (Release)
با بررسی شکل زیر، میتوانید روند تکرارها در مدل Agile را بهتر درک کنید:
زمانیکه از این مدل برای توسعه نرمافزاری استفاده میکنید، ممکن است یک کد برای تیم توسعه کار کند؛ اما برای تیم عملیات چنین نباشد. پس برای حل این مسئله چه کاری باید انجام داد؟
پاسخ این پرسش ساده است: دواپس این مشکل را حل میکند. DevOps همبستگی مداومی بین استقرار کد و تست آن ایجاد میکند؛ بهطوریکه نظارت تقریباً در لحظه انجام میشود و بازخوردهای فوری به تیم توسعه و عملیات کمک میکند تا بتوانند باهم کار کنند. شکل زیر این موضوع را بهخوبی نشان میدهد:
مزایای DevOps
استفاده از دواپس برای توسعه و تست نرمافزارها مزایای متعددی دارد. برخی از این مزایا عبارتاند از:
- امکان تحویل مداوم نرمافزار وجود دارد.
- امکان همکاری مستمر بین تیمها فراهم میشود.
- استقرار آن ساده است.
- کارایی بیشتر و مقیاسپذیری بهتری دارد.
- امکان رفع خطاها در مراحل اولیه وجود دارد.
- استفاده از آن امنیت بیشتری فراهم میکند.
- بهدلیل کاهش مداخله دستی، احتمال خطا نیز در آن کمتر میشود.
چرخه عملکرد دواپس
حالا که بیشتر با دواپس آشنا شدیم و انواع و مزایای آن را شناختیم، بیایید ببینیم چرخه عملکرد آن چگونه است. دواپس معمولاً شش مرحله دارد که ازاینقرارند:
۱. مدیریت کد منبع (Source Code Management)
در این مرحله از دواپس، کارفرمایان و صاحبان اصلی پروژه با تیم توسعه نرمافزار درباره اهداف پروژه صحبت میکنند و درنهایت به طرحی واحد میرسند. پسازآن، متخصصان برنامهنویس و کدنویسی کار خود را آغاز و برنامه را طراحی میکنند. برای ذخیره کد معمولاً از ابزارهایی مانند Git استفاده میشود.
۲. ساخت و تست مستمر (Continuous Build and Test)
در این مرحله، با استفاده از ابزارهایی مانند Maven و Gradle، کدها از کانتینرهای مختلف گرفته و سپس برای ساخت برنامه ترکیب میشوند. پسازآن، کیفیت نرمافزار با کمک ابزارهایی مانند Selenium و JUnit تست میشود.
۳. ادغام مستمر (Continuous Integration)
پس از تست کامل نرمافزار، ویژگیهای جدید آن بهطورخودکار در پایگاه کد ادغام میشوند.
۴. استقرار مستمر (Continuous Deployment)
در این مرحله، برنامه پکیج و در سرور محصول (Production) مستقر میشود. سپس، تیم عملیاتی کارهایی مانند پیکربندی سرورها و تأمین منابع موردنیاز آنها را انجام میدهند.
۵. نظارت مستمر (Continuous Monitoring)
در این مرحله، سازمانهای فناوری اطلاعات مشکلات مرتبط با نسخههای خاص را شناسایی و تأثیر آن بر کاربران را بررسی میکنند.
۶. انتشار نرمافزار (Software Released)
پس از گذراندن تمام مراحل قبلی در چرخه عملکرد دواپس و اطمینان از اینکه نیاز کاربران برآورده میشود، نرمافزار برای استفاده گسترده منتشر میشود.
ابزارها در DevOps
همانطورکه در چرخه عملکرد دواپس مشاهده کردید، برای استفاده از آن به ابزارهایی نیاز داریم. این ابزارها با عنوان ابزارهای DevOps شناخته و از هفت ابزار تشکیل میشوند:
- Git
- Maven
- Selenium
- Jenkins
- Jenkins
- Ansible
- Nagios
۱. Git
گیت (Git) ابزاری است که برای کنترل نسخه توزیعشده و مدیریت کد منبع استفاده میشود. ازجمله ویژگیهای مهم Git عبارتاند از:
- ابزاری نرمافزاری است.
- برای بررسی و شناسایی تغییرات در کد منبع از آن استفاده میکنند.
- قابلیت استفاده همزمان چند توسعهدهنده را فراهم میکند.
- از توسعه غیرخطی (Non-Linear) پشتیبانی میکند.
معماری Git
برای درک بهتر معماری ابزار Git، درادامه برخی نکات اساسی را بررسی میکنیم:
- پوشه Working Directory پوشهای است که روی پروژه خود در Git روی آن کار میکنید و فایلها در آن ذخیره شده است.
- قبل از انجام کامیت (Commit)، فایلها از Working Directory به Staging Area افزوده خواهند شد. پس از انجام هر تغییری، باید فایلها را به Local Repository کامیت کنید.
- پسازآن، فایلهای کامیتشده به Remote Repository انتقال داده میشوند. GitHub نمونهای از Remote Repository است.
- هرزمان که کدها بهروزرسانی شدند، ابزار Git این تغییرات را از Remote Repository به Local Repository منتقل میکند.
- پس از آنکه فایلها انتقال داده شد، میتوانید شاخههای (Branches) جدیدی ایجاد کنید و درصورت لزوم به آنها بروید. همچنین پس از اِعمال تغییرات، میتوانید شاخههای اصلی و جدید را باهم ادغام کنید.
در مقاله زیر میتوانید معرفی گیت و گیتهاب و آموزش جامع استفاده از آنها را بخوانید.
نسخه دمو (DEMO)
در نسخه دمو زیر، بررسی میکنیم که آیا Git در کامپیوتر ما کار میکند یا نه. پسازآن، یک دایرکتوری (Directory) ایجاد و با افزودن فایل به آن، تغییراتی اِعمال و سپس ازطریق دستور commit فایل را بررسی و اعتبارسنجی میکنیم.
مراحل
۱. بررسی نصببودن Git ازطریق دستور زیر:
$ git --version
git version 2.19.1.windows.1
۲. ایجاد پوشه جدید با استفاده از دستور زیر:
$ mkdir green $ cd green
۳. اگر پوشه green ایجاد شد، با بررسی مکان آن را اعتبارسنجی کنید.
۴. افزودن پوشه ایجادشده بهعنوان بخشی از پروژه مدنظر در Git ازطریق کد زیر:
$ git init Initialized empty Git repository in C:/Users/sana.afreen/green/.git/
با این کار، یک مخزن (Repository) گیت ایجاد میشود.
۵. در پوشه اولیه، فایل متنی (Text File) با نام class ایجاد و عبارت Welcome to parspack را در آن تایپ کنید. فایل را ذخیره کنید و ببندید.
۶. بررسی وضعیت فایل در Git با کد زیر:
$ git status On branch master
۷. Commitکردن فایل با کد زیر:
$ git add class.txt $ git commit -m “first commit” ( a description message will be displayed)
۸. با رفتن به فایل متنی class.txt که قبلاً ایجاد کردهاید، تغییراتی در آن اِعمال کنید. متن را به عبارت This is my Demo! تغییر دهید و پس از ذخیره، فایل را ببندید.
۹. با کد زیر میتوانید فایل متنی اولیه و فایل جدید را مقایسه کنید:
$ git diff
با انجام این مرحله، فایل اصلی و فایل تغییردادهشده برایتان نمایش داده میشود. همانطورکه میبینید، این ابزار قابلیتهای متعدد و منحصربهفردی دارد؛ بههمیندلیل، استفاده از Devpos توصیه میشود.
۲. Maven
ماون (Maven) ابزاری اتوماسیون است که به شما کمک میکند تا پروژههای نرمافزاری خود را ایجاد و مدیریت کنید. برخی از ویژگیهای مهم Maven ازاینقرارند:
- پشتیبانی از ساختهای موازی (Parallel Builds)
- استفاده ساده
- امکان دسترسی به برخی ویژگیهای جدید بدون تغییرات اضافی در تنظیمات
- فرایند ساخت ساده
معماری Maven
برای درک بهتر از معماری فضای ابزار Maven، بهتر است این نکات اصلی را درباره آن بدانیم:
- دستورهای Maven در فایل POM (مخفف Project Object Model) اجرا خواهند شد. فایل POM فایلی از نوع XML است که جزئیات پروژه و پیکربندی برای ساخت را در خود دارد.
- فایل POM وابستگیها (Dependencies) را بررسی و آنها را از Repository محلی در ابزار Maven واکشی میکند.
- پلاگینهایی ساخته میشوند که در محیط ابزار Maven ایجاد شدهاند.
- درنهایت، نرمافزار ساخته میشود.
نسخه دمو (DEMO)
در نسخه دمو زیر، مراحل اجرای پروژه در محیط Maven را میبینیم.
مراحل
۱. دانلود و نصب فایل JDK
- مرورگر را در کامپیوتر خود باز کنید.
- در لینک oracle.com نسخه موردنیاز از فایل را دانلود کنید.
۲. دانلود و نصب فایل Maven
- در لینک maven.apache.org فایل فشرده Maven را دانلود کنید.
- پس از دانلود فایل Zip، آن را استخراج کنید.
۳. تنظیم تعدادی از متغیرهای سیستم برای مسیر JDK
- برای این کار، کنترلپنل را باز کنید. سپس، به بخش System and Security و Advanced System Settings بروید و Edit System Variable را انتخاب کنید.
- مسیر متغیر را انتخاب و مسیر پوشه JDK را کپی و در قسمت نام متغیر جایگذاری کنید.
۴. تنظیم مسیر متغیر روی پوشه Maven با استفاده از مراحل بالا
۵. بررسی درستی استخراجشدن همه فایلها
۶. با بازکردن خط فرمان (Command Prompt)، عبارت زیر را تایپ کنید:
mv
۷. ایجاد متغیر کاربری جدید
- نام متغیر: M2
- مسیر: مسیر پوشه apache maven
۸. بررسی نصبشدن Maven با بازکردن خط فرمان:
mvn --version
۹. با ورود به پوشه Maven و ایجاد دایرکتوری جدید با نام Parspack، مسیر آن را کپی کنید.
۱۰. خط فرمان را باز کنید و دایرکتوری را تغییر دهید:
Cd (path)
۱۱. فایل POM را نصب کنید:
…/Parspack> mvn archetype
Define value for property ‘group_Id’: com.mav Define value for property ‘artifact_Id’: mav.project Define value for property version 1.0-SNAPSHOT: :1.0-SNAPSHOT Define value for property package ‘com.mav’: : com.mav.demo
۱۲. حالا به پوشه Parspack بروید و مطمئن شوید که تمام فایلهای مدنظر خود را در آن میبینید.
۳. سلنیوم (Selenium)
از ابزار سلنیوم بهطورعمده برای تستکردن برنامههای کاربردی وب، بهویژه رگرسیون (Regression) و عملکرد استفاده میشود. تست رگرسیون بررسی میکند که آیا برنامهنویسی قدیمی میتواند با تغییرات جدید همچنان کار کند یا خیر. تست عملکرد نیز بررسی میکند که آیا اپلیکیشن الزامات را بهاندازه کافی برآورده میکند یا نه. ویژگیهای مهم سلنیوم بدینشرحاند:
- اجرای سریع
- دقت زیاد
- امکان نوشتن اسکریپت در چندین زبان مختلف
- پشتیبانی از اجرای تست موازی (Parallel Test Execution)
معماری Selenium
برخی از نکات اساسی درباره معماری ابزار سلنیوم عبارت اند از:
- کدهای Selenium WebDriver با استفاده از کتابخانههای کلاینت مانند C# ،Java ،Python ،JavaScript و PHP ساخته شدهاند.
- از رابط برنامهنویسی برنامه (API) در WebDriver برای افزایش کارآمدی خودکارسازی در روند تست برنامههای وب استفاده میشود. API درایور WEB به کاربران کمک میکند تا تستها را سادهتر انجام دهند.
- رابط ارائهدهنده خدمات (SPI) در WebDriver تغییرناپذیر و بدون حالتهای خاص است. ارسال فرمانها به درایورهای مرورگر در SPI با استفاده از پروتکل JSON wire انجام میشود.
- درایور وظیفه کنترل ارتباط بین مرورگرها و پروتکل JSON Wire را برعهده دارد.
- درایور مرورگر بهمحض دریافت دستور از WebDriver، آن را در مرورگر وب مربوط به آن اجرا خواهد کرد.
نسخه دمو (DEMO)
درادامه، در نسخه دمو طریقه راهاندازی ابزار سلنیوم را میبینیم.
مراحل
۱. برای بررسی نصب نسخه مناسب جاوا، خط فرمان را باز و Java را تایپ کنید:
java
اگر متوجه شدید که جاوا نصب نیست، آن را ازطریق لینک زیر دانلود کنید:
oracle.com
۲. ازطریق لینک زیر، Eclipse را دانلود و نصب کنید:
۳. ازطریق لینک زیر، ChromeDriver را دانلود و نصب کنید:
۴. ازطریق لینک زیر، Selenium را دانلود و نصب کنید:
۵. در این مرحله، Eclipse را باز و پروژه جدید جاوا را ایجاد کنید و نام پروژه را به xyz تغییر دهید.
- روی xyz راستکلیک و سپس روی new کلیک کنید. درادامه، یک class با نام Parspack ایجاد و Public Static Void Main را انتخاب کنید و نام پکیج را qwe بگذارید.
- صفحه تست در حال اجراست و در مرحله بعدی، باید ببینیم که آیا ابزار سلنیوم بخشی از پروژه است یا خیر.
- روی src راستکلیک کنید و با انتخاب Build Path و Configure Build Path، میتوانید ببینید که سلنیوم وجود دارد یا خیر.
۶. در این مرحله، کد زیر را وارد کنید:
package qwe; Import java.util.cocurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; Import org.openqa.selenium.chrome.ChromeDriver; public class simplilearn: public static void main(String [] args) { System.setProperty(“web driver.chrome driver”, “(path of chrome web driver on your PC)\\Cchromedriver.exe”) WebDriver driver = new ChromeDriver(); driver.manage().deleteAllCookies(); driver.manage().window().fullscreen(); driver.get(“https://www.amazon.in/”); driver.FindElement(By.id(“twotabsearchtextbox”)).sendKeys(“puma shoes”); driver.manage().timeouts().implicitelyWait(10,TimeUnit,SECONDS”); driver.quit(); }
۴. جنکینز (Jenkins)
یکی دیگر از ابزارهای دواپس، جنکینز (Jenkins) است. این ابزار منبعباز بهطورخودکار به کاربران برای توسعه مستمر و تست و استقرار کدهای جدید کمک میکند. برخی از ویژگیهای اساسی در جنکینز عبارتاند از:
- نصب و پیکربندی ساده
- دارای پلاگینهای مختلف
- امکان گسترش ازطریق افزونهها
- امکان توزیع در دستگاههای مختلف
معماری Jenkins
برای درک بهتر، برخی نکات مهم درباره معماری این ابزار را بررسی میکنیم:
- معماری سرور جنکینز به دو بخش تقسیم میشود: یکی مخزن کد منبع و دیگری سرور یکپارچهسازی مداوم.
- اگر تغییراتی وجود داشته باشد، کد مرتبط را Jenkins Master از مخزن کد منبع برمیدارد. گفتنی است مخزن بهطورمرتب برای بروز هرگونه تغییراتی بررسی میشود.
- Jenkins Master حجم کاری خود را بین همه بخشها توزیع میکند.
- با درخواست Jenkins Master، بخشهای زیرین وظایف را میپذیرند و گزارش تست را تهیه میکنند.
نسخه دمو (DEMO)
در نسخه دمو زیر، نحوه نصب Jenkins را بررسی میکنیم.
مراحل
۱. با رفتن به System و بخش Advanced System Settings و Environment Variables، ببینید که آیا جاوا روی سیستم نصب است یا خیر.
۲. جنکینز را ازطریق لینک زیر دانلود و نصب کنید:
۳. پس از نصب ابزار، به مرورگر وب خود بروید و با تایپ عبارت localhost:8080، به داشبورد جنکینز وارد شوید.
۴. با کلیک روی آیتم جدید (New Item)، نام آن را بهصورت demo_1 وارد و پروژه آزاد (Freestyle Project) را انتخاب کنید. در بخش توضیحات، باید Parspack Demo قرار گیرد. هیچکدام از بخشهای مدیریت کد را انتخاب نکنید. با انتخاب Build و Execute Windows Batch Command، دستور را به Hello all :%date :%time% تغییر دهید و سپس آن را ذخیره کنید.
۵. حالا با انتخاب Build، ساختهای مختلف را میبینید.
۶. در زیر خروجی کنسول، میتوانید خروجی را مشاهده کنید.
۷. برای ایجاد پروژه دیگر، روی New Item کلیک و نام آیتم را Jenkins وارد کنید. سپس Freestyle Project را انتخاب کنید و در توضیح Demo Using Git را قرار دهید. Git را در زیر مدیریت کد منبع انتخاب کنید. URL مخزن URL حساب شما در Github است. برای اعتبارنامهها (Credentials)، اعتبار Jenkins را وارد کنید. Build را انتخاب و در Execute Windows Batch Command، دستور javac simpli.java را وارد و مراحل را ذخیره کنید.
Java simpli (command is the file on your GitHub account)
۸. با انتخاب Build میتوانید ساختهای مختلف را مشاهده کنید.
۹. در زیر قسمت خروجی کنسول، میتوانید خروجی را ببینید.
5. داکر (Docker)
Docker یکی دیگر از ابزارهای بسیار کاربردی در دواپس است. داکر درواقع پلتفرم نرمافزار مجازیساز برای سیستمعامل است که امکان ایجاد و استقرار و اجرای برنامهها و وابستههای آن را در کانتینر (Container) داکر برای مدیران IT و توسعهدهندگان فراهم میکند. Docker Container پکیجی است که اپلیکیشنها و وابستههای آن را در خود جای داده است. برخی از ویژگیهای مهم داکر عبارتاند از:
- مقیاسپذیری و کارایی چشمگیری دارد.
- به زمان کمی برای راهاندازی نیاز دارد.
- حجم دادههای با قابلیت استفاده مجدد دارد.
- اپلیکیشنهای ایزوله دارد.
معماری Docker
برای آشنایی بیشتر با معماری داکر، نکات زیر را بررسی کنید:
- کلاینت در داکر فرمانها را به Docker Daemon ابلاغ میکند.
- سرور Docker Daemon با سیستمعامل تعامل دارد و وظایفی را انجام میدهد که کلاینت به آنها اختصاص میدهد.
- تصاویر داکر (Docker Images) مجموعه دستورالعملهایی هستند که برای ایجاد کانتینرهای داکر از آنها استفاده میشوند.
- کانتینر داکر (Docker Container) پکیج نرمافزاری دربردارنده اپلیکیشن و وابستههای آن است.
- رجیستری داکر (Docker Registry) سرویس میزبانی و توزیع تصاویر داکر بین کاربران است.
آموزش نصب داکر روی اوبونتو 20.04 و کار با Docker را در مقاله زیر بخوانید.
نسخه دمو (DEMO)
در نسخه دمو زیر، نحوه نصب و اجرای داکر را بررسی میکنیم.
مراحل
۱. پنجره لینوکس را باز کنید.
۲. با استفاده از دستور زیر، میتوانید Docker را نصب کنید:
$sudo apt install docker
۳. از دستور زیر برای بررسی تعداد Docker Images در سیستم استفاده کنید:
$sudo docker images
۴. از کد زیر برای دریافت تصاویر در Docker Hub استفاده کنید:
$sudo docker pull redis:latest
۵. برای بررسی اضافهشدن تصاویر به Docker، کد زیر را بهکار ببرید:
$sudo docker images
۶. برای بررسی تصاویر دیگر در حال اجرا، از کد زیر استفاده کنید:
$sudo docker images
۷. برای ساخت کانتینر (Container) از کد زیر استفاده کنید:
$sudo docker run -d -p0.0.0.0:80:80 redis:latest
۸. برای بررسی همه کانتینرهای در حال اجرا، از کد زیر استفاده کنید:
$sudo docker ps -a
۹. ازطریق کد زیر میتوانید نام کانتینر را تغییر دهید:
$sudo docker rename stupefied_engelbart Parspack
۱۰. برای تأیید تمام کارهایی که انجام دادهاید، از کد زیر استفاده کنید:
$sudo docker ps -a
۶. Ansible
یکی دیگر ابزارهای دواپس Ansible است که برای مدیریت پیکربندی استفاده میشود. این ابزار به برنامهها اجازه میدهد تا بهطورخودکار در محیطهای مختلف استقرار پیدا کنند. برخی از ویژگیهای مهم Ansible بدینشرحاند:
- ابزار پیکربندی Push-Based است.
- ابزاری بدون عامل است.
- ابزاری است که ثبات عملکرد محصول را حفظ میکند.
- برای ایجاد اتصالهای امن از SSH استفاده میکند.
معماری Ansible
برای آشنایی با معماری محیط Ansible، برخی نکات را درباره آن بررسی میکنیم:
- ماژول (Module): مجموعه فایلهای کد پیکربندی
- پلیبوک (Playbook): استفاده برای پیکربندی چندین سرور
- Inventory: سندی برای گروهبندی گرهها (Nodeها)
- برای ایجاد اتصالی ایمن، گره Ansible ازطریق SSH به گرههای دیگر متصل میشود.
نسخه دمو (DEMO)
در نسخه دمو زیر، Ansible را در محیط لینوکس نصب و اجرا میکنیم.
مراحل
۱. دو Workstations در لینوکس شامل Master و Node ایجاد کنید.
۲. وارد سیستم لینوکس اصلی (Master) شوید و ترمینال (Terminal) را باز کنید.
- Ansible را ازطریق کد زیر نصب کنید:
# sudo yum install ansible -y # vi /etc/ansible/hosts // to check if ansible is downloaded . . . . [ansible servers] 192.168.2.127 ansible_ssh_pass=simplilearn ansible_ssh_user= root
- برای اجرای نمونه اسکریپت، با کمک کد زیر Playbook ایجاد کنید:
# vi sample.yml
- برای اجرای Playbook، کد زیر را بهکار ببرید:
# ansible-playbook sample.yml --syntax-check # ansible-playbook sample.yml
۳. با رفتن به دستگاه Node Linux، میتوانید در مرورگر وب فایرفاکس خود صفحه پیشفرض حاوی کلمه welcome را مشاهده کنید.
۴. به ماشین لینوکس Master میتوانید بروید و محتوای Playbook را با عبارت welcome ببینید.
۷. Nagios
آخرین ابزاری که در مجموعه ابزارهای DevOps بررسی میکنیم، ابزار متنباز Nagios است. از این ابزار برای نظارت بر سیستمها، سرورها، شبکهها و زیرساختهای ذخیرهسازی استفاده میکنند. سایر ویژگیهای اساسی در Nagios عبارت است از:
- استفاده آسان
- نظارت جامع بر بخشهای اساسی
- دسترسی گسترده و ساده
- رفع مشکلات با فعالکردن راهاندازی مجدد خودکار برنامهها و سرویسهای ناموفق
معماری Nagios
برخی از نکات اساسی درباره معماری محیط Nagios عبارت است از:
- بررسی مداوم وضعیت سیستم با سرور Nagios
- ابزارهایی برای تجسم تمامی دادهها میتوانید ایجاد یا هشدارهایی را ازطریق ایمیل یا اعلانهای هشدار ارسال کنید.
نسخه دمو (DEMO)
در نسخه دمو زیر، آموزش نحوه راهاندازی Nagios را میبینیم.
مراحل
۱. با رفتن به لینک زیر، میتوانید برنامه را دانلود کنید یا بهعنوان ادمین یا کاربر معمولی، به وبسایت وارد شوید:
۲. در داشبورد، سه ناحیه متمایز وجود دارد: ۱. منابع ثابت (Fixed Sources)؛ ۲. خلاصه هشدار (Alert Summary)؛ ۳. رفتار غیرعادی (Abnormal Behavior).
۳. تنظیمات منابع اضافی (Additional Sources)، تولید گزارش (Report)، بررسی وضعیت هشدارها (Status of Alerts) و ایجاد درخواستها (Queries) را نیز میتوانید در داشبورد انجام دهید.
۴. روی Points of View کلیک و یک View با مشخصات زیر ایجاد کنید:
First name: s Limiter: 192.3.5.40 Data lifetime: 24 hours
۵. روی Alert Tab کلیک و New Check را انتخاب کنید.
مرحله ۱: انتخاب منبع: نام ادمین (Administration) را Workflow انتخاب کنید.
مرحله ۲: انتخاب معیارها: تجزیهوتحلیل ترافیک برحسب: بایت (Bytes)
آستانه هشدار (The Warning Threshold Is): ۳۴،
آستانه بحرانی (The Critical Threshold Is): ۵۰،
ضروری (Necessary): ۵۶۶۷.
مرحله ۳: انتخاب روشهای اعلان: هشدارها بهطورپیشفرض روی ایمیل تنظیم شده است؛ اما میتوانید گزینههای دیگری ازجمله Nagios و SNMP Traps و Command را انتخاب کنید.
مرحله ۴: مراحل را بهاتمام برسانید و ذخیره کنید. هشدار جدید درحالحاضر در حالت تعلیق است.
جمعبندی
در این مطلب، هرآنچه باید درباره دواپس (DevOps) بدانید، بهطورکامل توضیح دادیم و ابزارها و مزایا و چرخه عملکرد دواپس را بررسی کردیم و گفتیم که ابزارهای مختلف دواپس چه ویژگیهایی دارند و معماری آنها چگونه است.
سؤالات متداول
۱. DevOps دقیقاً چه کاری انجام میدهد؟
DevOps همهچیز درباره یکسانسازی و اتوماسیون فرایندهاست و مهندسان DevOps در ترکیب کد و نگهداری برنامهها و مدیریت برنامهها نقش اساسی ایفا میکنند. همه این وظایف نهتنها به درک چرخههای عمر توسعه، بلکه فرهنگ DevOps و فلسفه و شیوهها و ابزارهای آن متکی هستند.
۲. آیا DevOps به کدنویسی نیاز دارد؟
مهندس DevOps با متخصصان توسعه کار خواهد کرد تا با کدنویسی و اسکریپتنویسی موردنیاز برای اتصال عناصر کد، مانند کتابخانهها یا کیتهای توسعه نرمافزار (SDK) مقابله و اجزای دیگری مانند مدیریت دادههای SQL یا ابزارهای پیامرسانی موردنیاز برای اجرای نرمافزار را یکپارچه کند.