سوالات متداول DevOps
- DevOps یکی از داغ ترین کلمات کلیدی در فناوری حال حاضرست، هرچند بحت این دو (Buzz)
یک همکاری بین تیم توسعه و عملیات است ، جایی که با هم کار میکنند تا محصول سریعتر و کارآمدتر ارائه دهند . - در چند سال گذشته، افزایش فوق العادی در لیست مشاغل برای مهندسان DevOps وجود داشته است
شرکت های چند ملیتی مانند، گوگل، فیسبوک و آمازون ، اغلب چندین موقعیت برای مهندسان DevOps دارند. با این حال ، بازار کار بسیار رقابتی ای وجود دارد و سوالاتی که در مصاحبه از مهندس DevOps پرسیده می شوند میتواند موضوعات چالش برانگیز زیادی را پوشش دهند. - اگر شروع به آماده شدن برای نقش های توسعه و عملیات در صنعت IT کرده اید ، حتما باید متوجه این باشید که این یک کار پر چالش است که برای وارد شدن به آن نیاز به آمادگی زیادی دارید . در این تاپیک متدوال ترین پرسش ها و پاسخ های مصاحبه DevOps برای شما تهیه شده که میتواند به بیشتر آماده شدن شما برای ایفای نقش DevOps در صنعت IT کمک کند .
- موضوعاتی که ادر ادامه به آن اشاره میکنیم :
- سوالات مصاحبه عمومی DevOps
- سوالات مصاحبه DevOps از منابع مدیریت کد Git
- سوالات مصاحبه DevOps برای یکپارچه سازی پیوسته Continuous Integration –jekins
- سوالات مصاحبه DevOps برای آزمایش Selenium
- سوالات مصاحبه DevOps برای Configuration
- سوالات مصاحبه DevOps برای Containerization
- سوالات مصاحبه DevOps برای مانیتورینگ پیوسته
سوالات عمومی مصاحبه DevOps
-
چه چیزی درباره DevOps چه میدانید ؟
پاسخ شما باید ساده و واضح باشد . با توضیح اهمیت رو به رشد DevOpsدر صنعت فناوری اطلاعات شروع کنید. بحث کنید که چگونه چنین رویکردی با هدف هم افزایی تلاش های تیم های توسعه و عملیات برای تسریع در تحویل محصولات نرم افزاری با حداقل میزان شکست انجام میشود و این شامل این است که چگونه DevOps که یک عمل ارزش افزوده است ، در آن مهندسان توسعه و عملیات در طول چرخه عمر محصول یا خدمات ، درست از مرحله طراحی تا مرحله استقرار،دست به دست هم می دهند .
-
تقاوت DevOps با متدلوژی اجایل چیست ؟
پاسخ درست این است که DevOps فرهنگیست که به تیم توسعه و عملیات اجازه می دهد با هم کار کنند . این منجر به توسعه مداوم ، آزمایش یکپارچه سازی ، استقرار و نظارت بر نرم افزار در طول چرخه عمر می شود .
اما اجایل در واقع یک متدولوژی توسعه نرم افزار است که بر نسخه های تکراری، افزایشی، کوچک و سریع نرم افزار، همراه با بازخورد مشتری تمرکز دارد. شکاف ها و تضادهای بین مشتری و توسعه دهندگان را برطرف می کند.
در واقع DevOps به شکاف ها و تضادهای بین توسعه دهندگان و عملیات فناوری اطلاعات میپردازد.
بیشتر بخوانید: 6 نقش اساسی DevOps که در تیم خود به آن نیاز دارید:
-
مجبوب ترین ابزار های DevOps کدامند ؟
محبوب ترین ابزارهای DevOps عبارتند از :
-
- Selenim
- Puppet
- Chef
- Git
- Jenkus
- Ansible
- Docker
-
مراحل مختلف DevOps چگونه است ؟
مراحل مختلف چرخه عمر DevOps بدین صورت است :
برنامه ریزی (Plan) : در ابتدا باید برنامه ریزی برای تو اپی که باید توسعه یابد وجود داشته باشد . گرفتن تصویر کلی از روند توسعه همیشه ایده خوبیست .
کد (Code): برنامه مطابق با الزامات کاربر نهایی کدگزاری شده است .
ساختن (Build) : با ادغام کدهای مختلف تشکیل شده در مراحل قبلی اپلیکیشن را بسازید.
تست (Test): این مهم ترین مرحله توسعه اپلیکیشن است . اپ را تست کنید و در صورت لزوم دوباره بسازید.
یکپارچه سازی (Integrate): چندین کد از برنامه نویسان مختلف در یک کد ادغام میشنود .
مستقر سازی (Deploy) : کد برای استفاده بیشتر در محیط ابری مستقر می شود. اطمینان حاصل میشود که هرگونه تغییر جدید بر عملکرد یک وبسایت های ترافیک تاثر نمیگذارد و
عملیات (Operate): در صورت لزوم، عملیات روی کد انجام می شود .
مانیتور (Monitor) : عملکرد برنامه نظارت میشود،تغییرات برای برآورد نیازهای کاربر نهایی ایجاد میشود.
شکل بالا چرخه DevOps را نشان می دهد .
-
برخی از مزایای اصلی DevOps را ذکر کنید .
مزایای اصلی DevOps به شرح زیر است :
-
- مزایای فنی
- تحویل مداوم نرم افزار
- مشکلاتی بتا پیچیدگی کمتر برای مدیریت
- تشخیص زودهنگام و اصلا سریعتر عیوب
- مزایا در کسب وکار
- تحویل سریعتر قابلیت ها
- محیط های عملیاتی پایدار
- بهبود ارتباطات و همکاری بین تیم ها
-
چگونه به پروژه ای که نیاز به اجرای DevOps دارد دسترسی پیدا خواهید کرد؟
رویکردهای استاندارد زیر را می توان برای پیاده سازی DevOps در یک پروژه خاص استفاده کرد :
-
-
مرحله اول :
-
ارزیابی روند موجود و اجرای آن برای حدود دو الی سه هفته باری شناسایی مناطق بهبود یافته به طوری که تیم بتواند نقشه راه را برای اجرا ایجاد کند.
-
-
مرحله دوم :
-
یک Poc ایجاد کنید. پس از پذیرش و تایید، تیم میتواند اجرای واقعی و اجرای طرح پروژه را آغاز کند.
-
-
مرحله سوم :
-
پروژه DevOps اکنون برای پیاده سازی با استفاده از کنترل نسخه / ادغام / آزمایش/ مستقرسازی/ تحویل و نظارت گام به گام (مانیتورینگ) دنبال میشود. با دنبال کردن مراحل به صورت مطبوع و بجا برای کنترل نسخه ، ادغام، آزمایش،مستقر سازی، تحویل و نظارت ، پروژه DevOps اکنون برای اجرا آماده است .
-
تفاوت بین تحویل پیوسته (continuous delivery) و انتشار مداوم (continuous deployment) چیست ؟
-
- اطمینان حاصل میکند که کد میتواند به طور ایمن به سمت تولید مستقر شود
- برنامه های تجاری را تضمین میکند و خدمات مطابق انتظارات عمل میکنند
- هر تغییری را به یک محیط با تولیدات مشابه از طریق آزمایش خودکار دقیق تحویل میدهد
- هر تغییری که آزمون های خودکار را پشت سر بگذارد به طور خودکار میتواند در تولید مستقر شود
- توسعه نرم افزار و فرآیند انتشار را سریعتر و قوی تر میکند
- هیچ تایید واضحی از سوی یک توسعه دهنده وجود ندارد و نیازمندی یک فرهنگ نظارتی توسعه یافته است .
-
نقش مدیریت پیکربندی در DevOps چیست ؟
- مدیریت و تغییرات در چندین سیستم را فعال میکند .
- پیکربندی های منابع را استاندارد میکند و به خودی خود زیرساخت IT را مدیریت میکند
- به مدیریت چندین سرور کمک می کند و یکپارچگی کل زیر ساخت را حفظ میکند .
-
چگونه نظارت مستمر به شما کمک می کند تا کل معماری سیستم حفظ شود؟
- نظارت مستمر در DevOps فرآیندی برای شناسایی و گزارش هر نوع خطا یا تهدید در کل زیر ساخت سیستم است .
- اطمینان حاصل میکند که همه سرویس ها ، برنامه ها و منابع به درستی بر روسی سرور ها اجرا میشوند .
- وضعیت سرورها را کنترل میکند و تعیین میکند که آیا برنامه ها به درستی کار میکنند یا خیر.
- نظارت مستمر ، بازررسی تراکنش ها و نظارت کنترل شده آن ها را امکان پذیر میکند.
-
نقش AWS در DevOps چیست؟
AWS نقش های زیر را در DevOps دارد:
- Flexible services:
بدون نیاز به نصب یا راه اندازی نرم افزار، خدمات آماده و قابل استفاده را ارائه میدهد .
- Built for scale:
میتوانید یک نمونه یا مقیاس را با استفاده از خدمات AWS هزاران نفر مدیریت کنید.
- Automation :
AWS به شما این امکان را میدهد که وظایف و فرآیندها را خودکار کنید و زمان بیشتری برای نوآوری در اختیار شما میگذارد.
- Secure :
با استفاده از AWSمیتوانید محوز ها وخط مشی های کاربر را تنظیم کنید.
- Large partner ecosystem :
AWS از اکوسیستم های بزرگ و همکاران و شرکای آن ها پشتیبانی میکند که با خدمات AWS ادغام و گسترش می یابد.
همچنین بخوانید: DevOps and AWS
-
سه اصل مهم از DevOps KPls را نام ببرید .
سه اصل مهم KPIs به شرح زیر است :
-
- بازیابی تا شکست :
میانگین زمان مصرف شده برای بهبودی پس از یک شکست.
-
- فرکانس توسعه :
فرکانس که در آن توسعه دهنده ها رخ میدهد.
-
- درصد استقرار ناموفق :
تعداد دفعه هایی که توسعه با شکست متوجه میشود.
-
اصطلاح زیر ساخت کد IaC را در رابطه با مدیریت پیکربندی توضیح دهید.
-
- نوشتن کد برای مدیریت پیکربندی،استقرار و تامین خودکار
- مدیریت مراکز داده با فایل های قابل تعریف و قابل خواندن توسط ماشین ، به جای پیکربندی سخت افزار به صورت فیزیکی
- اطمینان از اینکه تمام سرورها و سایر اجزای زیرساخت شما به طور مداوم و بدون زحمت تهیه شوند.
- مدیریت محیط های ابری که به عنوان زیر ساخت به عنوان سرویس IaaS نیز شناخته میشود.
-
چگونه IaC با استفاده از AWS پیاده سازی میشود؟
با صحبت در مورد مکانیستم های قدیمی نوشتن دستورات بر روی فایل های اسکریپت و آزمایش آنها در یک محیط جداگانه قبل از استقرار و نحوه جایگزینی این رویکرد توسط IaC به توسعه دهندگان اجازه می دهد تا با استفاده از فرمت هایی مانند JSON یا YAML موجودیت های زیر ساخت را با روشی توصیفی بنویسند ، آزمایش کنند و نگهداری کنند. این امکان توسعه آسان تر و استقرار سریعتر تغییرات زیر ساخت را فراهم میکند.
-
چرا DevOps در چند سال گذشته شهرت زیادی یافته است ؟
قبل از صحبت در مورد محبوبیت رو به رشد DevOps در مورد سناریوی فعلی صنعت صحبت میکنیم . با چند مثال شروع میکنیم که چگونه رقبای بزرگی نظیر نتفلیکس و فیسبوک در DevOps برای خودکار سازی و تسریع استقرار برنامه ها و سرمایه گذاری میکنند و چگونه این امر به آنها کمک کرده است تا تجارت خود را توسعه دهند . بعنوان مثل ، فیسبوک با استقرار مداوم فیسبوک و مدل های مالکیت کد می توان اشاره کرد به چگومگی افزایس مقیاس این شبکه اما در عین حال کیفیت را تضمین میکند. صدها خط کد بدون هیچ تاثیری بر کیفیت ، ثبات و امنیت آن با DevOps پیاده سازی میشود .
برای مثال بعدی میتوان به نتفلیس اشاره کرد . این شرکت پخش جریانی و ویدیویی در خواساتی از روش های مشابه با فرآیندها وسیستم های کاملا خودکار پیروی میکندو پیگاه کاربری این دو سازمان را ذکر کنید، فیس بوک 2 میلیارد کاربردار درحالی که نتفلیکس محتوای آنلاین را برای بیش از 100 میلیون کاربر در سراسر جهان پخش میکند .
این ها نمونه های خوبی هستند از اینکه چگونه DevOps میتواند به سازمان ها کمک کند تا از نرخ موفقیت بالاتر برای انتشار اطمینان حاصل کند، برای نمونه ؛ زمان بین رفع اشکال را کاهش دهد ، ساده سازی و تحویل مستمر از طریق اتوماسیون و کاهش کلی هزینه های نیرونی انساسی را به ارمغان میاورد.
سوالات مصاحبه DevOps برای مدیریت کد منبع – Git
-
تفاوت بین سیستم مرکزی و نسخه متمرکز شده ،سیستم کنترل را توضیح دهید.
- سیستم مرکزی مرکز کنترل
- همه ورژن های داده ها در سیستم مرکزی دسته بندی میشوند
- هیچ توسعه دهنده ای کپی همه فایل های سیستم اصلی را ندارد .
- اگر سیستم مرکزی دچار اختلال شود ، همه داده های پروژه از دست می روند .
- سیستم مرکزی مرکز کنترل
سیستم کنترل نسخه متمرکز
-
- سیستم متمرکز مرکز کنترل
- همه توسعه دهنده ها به کپی ای از تمامی ورژن های کد سیستمشان دسترسی دارند
- این قابیلیت وجود دارد که اعضای تیم به صورت آفلاین کار کنند و فقط یک محل مشخص برای بکاپ ها وجود ندارد .
- هیج اتفاقی برای داده های نخواهد افتاد حتی اگر دچار اخلال شوند .
- دستور که هر مخزنی از گیت هاپ را دانلود میکند چیست ؟ git
- دستور “.git clone” هر کتابخونه ( مخزنی ) را از گیت هاب روی کامپیوتر دانلود میکند .
- سیستم متمرکز مرکز کنترل
-
چگونه با استفاده از git یک فایل را از سیستم محلی خود به مخزن Github منتقل میکنیم؟
ابتدا مخزن محلی را به مخزن را دور خود متصل کنید
Git remote add origin ( آدرس وب کپی شده)
//Ex: git remote add origin
دوم فایل مدنظر را به سیستم مخزن راه دور منتقل کنید :
Git push origin master
-
چگونه یک مخزن خالی با روش استاندارد اولیه سازی مخزن git ذخیره میکنیم ؟
با استفاده از روش استاندارد git imit :
-
- با git init یک پوشه کاری ایجاد میکنید.
- یک پوشه git با تمام تاریخچه ویرایش مربوط به git ایجاد میشود.
با استفاده از راه خالی Git –bare :
-
- این روش شامل هیج نسخه کار یا بررسی شده از فایل های منبع نیست
- مخازن خالی تاریخچه ویرایش git را به جای زیرپوشه در ریشه مخزن شما ذخیره میکند .
-
کدام یک از دستورات CLI زیر را میتوان برای تغیر نام فایل ها استفاده کرد ؟
1- git rm
2- git mv
3- git rm –r
4- هیچ کدام
جواب درست گزینه 2 است . git mv
-
روند بازگرداندن commit که قبلا تحت فشار قرار گرفته و عمومی شده است چگونه است ؟
دو راه برای بازگرداندن commit وجود دارد :
-
- فایل های زیان آور را در یک commit جدید حذف یا رفع کنید و آن را به remote repository منتقل کنید و با استفاده از :
git commit –m “commit message”
-
- یک commit جدید ایجاد کنید که تمام تغییرات ایجاد شده در commit بد را لغو کند .
از دستور زیر استفاده کنید :
- یک commit جدید ایجاد کنید که تمام تغییرات ایجاد شده در commit بد را لغو کند .
git revert<commit id>
-
تفاوت بین git fetch و git pull را توصیخ دهید .
- Git fetch
- فقط داده های جدید را از remote repository دانلود میکند .
- داده های جدید در فایل های کار شما ادغام نمی شوند .
- کاربران میتوانند هر زمان که بخواهند برای آپدیت remote-tracking branches از git fetch استفاده کنند.
- دستور – git fetch origin git fetch –-all
- Git pull
- شاخه فعلی HEAD را با آخرین تغییرات از remote server به روز رسانی میکند.
- داده های جدید را دانلود میکند و با فایل های درحال اجرا یکپارچه میشود.
- تغییرات راه دور را با تغییرات محلی شما ادغام میکند.
- دستور git pull origin master
- Git fetch
-
Git stash چیست ؟
توسعه دهنده ای که با یک شعبه فعلی کار میکند ، میخواهد به شعبه دیگری تغییر کند تا روی چیز دیگری کار کند، اما توسعه دهنده نمیخواهد تغییرات را در کارهای تمام نشده انجام دهد . راه حل این مشکل Git stash است. Git stash فایل های اصلاح شده شما را میگیرید و آن را به عنوان “تمام نشده ” ذخیره میکند تا هر زمان که بخواهید تغییرات دلخواه را اعمال کنید.
-
مفهوم شاخه گزینی در Git را توضیح دهید .
فرض کنید روی یک برنامه کار میکنید و میخواهید یک ویژگی جدید به برنامه اضافه کنید. میتوانید یک شاخه (انشعاب) جدید ایجاد کنید و ویژگی جدید را در آن شاخه بسازید .
-
- به طور پیش فرض ، شما همیشه روی شاخه اصلی کار میکنید .
- دایره های موجود روی شاخه نشان دهنده تعهدات محتلفی است که روی شاخه انجام میشود.
- پس از انجام تغییرات مورد نیاز میتوانید آن را با شاخه اصلی ادغام کنید .
-
تفاوت میان Git Merge و Git Rebase در چیست ؟
فرض کنید در حال کار بر روی یک ویژگی جدید در یک شعبه اختصاصی هستید و یکی دیگر از اعضای تیم، شاخه اصلی را با commit های جدید به روز میکند . میتوانید از این دو تابع استفاده کنید :
-
- Git Merge
برای ادغام commit های جدید در شاخه ویژگی هایتان می توانید از Git mereg استفاده کنید.
-
-
- هربار که نیاز به ایجاد تغییرات دارید ، یک ادغام commit اضافی ایجاد میکند.
- اما تاریخچه شاخه را آلوده میکند .
-
-
- Git Rebase
به عنوان جایگزینی برای ادغام ، میتوانید شاخه ویژگی را به Master تغییر دهید .
-
-
- شامل تمام commit های جدید در شاخه اصلی است .
- برای هر commit در شاخه اصلی commit های جدیدی ایجاد میکند و تاریخچه پروژه را بازنویسی میکند .
-
پیشنهاد می کنیم این دوره آموزشی را از دست ندهید: دوره آموزش Devops Engineering
-
چگونه لیستی از فایل هایی که در یک commit خاص تغییر کرده اند را پیدا میکنید ؟
دستور دریافت لیستی از فایل هایی که در یک commit خاص تغییر کرده اند عبارت است از :
git diff-tree –r {commit hash}
به طور مثال :
git diff-tree –r 87e673f21b
-
- r flag دستور فهرست کردن فایل های جداگانه را ما میدهد .
- Commit hash تمام فایلی هایی را که درآن commit تغییر یا اضافه شده اند را فهرست میکند.
-
تضاد ادغام در Git چیست و چگونه مینوان آن را بر طرف کرد ؟
- تضاد ادغام در git گیت زمانی اتفاق میافتد که شما ادغام با commit ها را دارید و git به کمک شما نیاز دارد تا تصمیم بگیر کدام تغییرات را در ادغام نهایی بگذارد.
-
- ایل متناقض را به صورت دستی ویرایش کنید تا تغییراتی که میخواهید در ادغام نهایی حفظ شود را انتخاب کنید .
- با استفاده از ویرایشگر تضاد را حل کنید.
این زمانی انجام میشود که پس از رقابت برای تغییرات خط، یک تضاد ادغام ایجاد شود . به عنوان مثال، این قضیه ممکن است زمانی اتفاق بیافتد که افراد تغییرات متفاوتی را در یک خط از یک فایل در شاخه های مختلف در git repository شما ایجاد کنند .
-
- حل تعارض ادغام با استفاده از ویراشگر تضاد :
- در زیر نام repository خود روی “Pull requests ” کلیک کنید.
- حل تعارض ادغام با استفاده از ویراشگر تضاد :
-
- حل تعارض ادغام با استفاده از ویراشگر تضاد :
- در “Pull requests ” روی در خواست کشش با تضاد ادغامی که میخواهید حل شود کلیک کنید .
- روی گزینه “Resolve conflict” کلیک کنید .
- حل تعارض ادغام با استفاده از ویراشگر تضاد :
-
-
- تصمیم بگیرید که آیا فقط میخواهید تغییرات شعبه خود را حفظ کنید یا به عبلرتی تغییرات شعبه دیگر یا یک تغییر کاملا جدید ایجاد کنید که ممکن است هر دو شعبه را شامل شود .
- نشانگرهای تضاد <<<<<< و ====== و >>>>>> را حذف کنید و در ادغام نهایی تغییرات مورد نظر خود را اعمال کنید .
-
-
-
- اگر بیش از یک تداخل ادغام در فایل خود دارید ، به مجموعه بعدی نشانگرهای تضاد بروید و مراحل چهارم و پنجم را برای حل تداخل ادغام خود تکرار کنید .
- پس از رفع تمام تضادهای موجود در فایل ، روی Mark as resolved کلیک کنید.
-
-
-
- اگر بیش از یک فایل تداخل دارید، فایل بعدی مورد نظر خود را انتخاب کنید در سمت چپ صفحه در قسمت ” Conflicting files ویرایش کنید و مراحل چهارم تا هفتم را تکرار کنید تا زمانی که تمام درخواست های تضادهای ادغام را حل کنید .
-
-
-
- هنگامی که تضادهای ادغام خود را حل کردید، روی “Commit merge” کلیک کنید . این امکان را به شما میدهد تا کل شاخه پایه را در شاخه اصلی ادغام کنید .
-
-
-
- برای ادغام درخواست کشش، روی Merge pull request کلیک کنید .
- تضاد ادغام با استفاده از خط فرمان حل میشود.
- Git bash را بازکنید.
- به Local git repository که حاوی تضاد ادغام است بروید .
-
-
-
- فهرستی از فایل هایی که تضاد ادغام برآنها تاثیر میگذارد،ایجاد کنید. در این مثال، فایل mf دارای تضاد ادغام است .
-
-
-
- هر ویرایشگر متنی مانند Sublime Text یا Atom را باز کنید و به فایلی بروید که دارای تداخل ادغام است .
- برای مشاهده آغاز تضاد ادغام در فایل خود، فایل را جستجوکنید ؛ نشانگر تضاد ” >>>>>> ” را باز کنید و تغییرات را از شاخه پایه بعد از خط” Head >>>>>>” مشاهده خواهید کرد.
- در مرحله بعد “======” را میبینید که تغییرات شما را از تغییرات شاخه دیگر تقسیم میکند و به دنبال آن “>>>>>>>>>>BRANCH-NAME “
-
-
-
- تصمیم بگیرید که آیا فقط میخواهید تغییرات شعبه خود را حفظ کنید یا به عبلرتی تغییرات شعبه دیگر یا یک تغییر کاملا جدید ایجاد کنید که ممکن است هر دو شعبه را شامل شود .
-
-
-
- نشانگرهای تضاد <<<<<< و ====== و >>>>>> را حذف کنید و در ادغام نهایی تغییرات مورد نظر خود را اعمال کنید.
-
در این مثال ، هر دو تغییر در ادغام نهایی گنجانده شده اند :
-
-
- تغییرات خود را اضافه یا مرحله بندی کنید .
-
-
-
- Commit خود را یک کد انجام دهید .
-
-
-
- اکنون میتوانید شاخه ها را در خط فرمان ادغام کنید یا تغییرات خود را به remote repository خود در Github اعمال کنید و تغییرت را در یک در خواست ادغام کنید.
-
سوالات مصاحبه DevOps برای یکپارچی مداوم – Jenkins
-
معماری استاد-شاگرد جنکینز را توضیح دهید.
-
- استاد جنکینز هر زمان که دستور کدی وجود داشته باشد آن را از GitHub repository پیدا میکند.
- حجم کار را بین تمام شاگردانش توزیع میکند .
- طبق درخواست استاد جنکینز، شاگردان گزارش های آزمایشی را انجام میدهد ، میسازند آزمایش و تولید میکنند.
-
Jenkinsfile چیست ؟
Jenkinsfile شامل تعریف خط pipleline جنکینز است و در مخزن کنترل منبع بررسی میشود . یک فایل متنی است.
-
- این امکان بررسی و تکرار کد را در خط pipeline فراهم میکند .
- اجازه میدهد تا یک مسیر حسابرسی برایه خط pipeline انجام شود .
- یک منبع حقیقت واحد برای pipleline وجود دارد که میتوان آن مشاهده و ویرایش کرد .
-
کدام یک از دستورات زیر جنکینز را از خط کد اجرا میکند ؟
1- java –jar Jenkins.war
2- java –war Jenkins.jar
3- java –jar Jenkins.jar
4- java – war Jenkins.war
-
- گزینه صحیح مورد 4 است . java –war Jenkins.war
-
چه مفاهیمی جنبه های کلیدی pipeline جنکینز هستد ؟
Pipeline:
مدل تعریف شده توسط کاربر از pipeline CD است. کد pipeline کل فرآیند ساخت را تعریف میکند که شامل ساخت ، آزمایش و ارائه یک برنامه کاربردی است .
Node:
مایشی که بخشی از محیط جنکینز است و قادر به اجرای pipeline است .
Step:
یک کار واحد که به جنکینز میگوید در یک مقطع زمانی خاص چه کاری انجام دهد .
Stage:
یک زیر مجموعه مفهمومی متمایز از وظایف انجام شده در کل pipeline مراحل ساخت ، آزمایش و استقرار ) را تعریف میکتد .
-
کدام فایل برای تعریف وابستگی در Maven استفاده می شود ؟
1- build.xml
2- pom.xml
3- dependency.xml
4- xml
-
- جواب صحیح گزینه 2 است .
-
دو نوع pipeline در جنکینز را به همراه نحوه بکارگیری آنهکا توضیح دهید .
جنکینز دو راه برای توسعه کد pipelineارائه میدهد : (اسکریپت شده و اعلامی)
A. Scripted pipeline :
بر اساس اسکریپت Groovy به عنوان زبان خاص دامنه آنها ساخته شده است . یک یا چند مسدودسازی گره کار اصلی را در pipeline انجام میدهد .
Syntax:
-
- Pipeline یا هر یک از مراحل آن را بر روی هر عامل موجود اجرا میکند .
- مرحله ساخت را تعریف میکند.
- مراحل مربوط به مرحله ساخت را انجام میدهد.
- مرحله آزمون را مشخص میکند .
- مرحله استفرار را تعریف میکند.
- مراحل مربوط به مرحله استقرار را انجام میدهد .
- مراحل مربوط به مرحله آزمون را انجام میدهد.
B. Declarative Pipeline :
این یک نحوه ساده و دوستانه برای تعریف pipeline ارائه میدهد.دراینجا بلوک pipeline کار انجام شده را در سراسر pipeline مشخص میکند.
Syntax:
-
- Pipeline یا هر یک از مراحل آن را بر روی هر عامل موجود ایجاد میکند.
- مرحله ساخت را تعریف میکند.
- Pipelime یا هر یک از مراحل آن را بر روی هر عامل موجود اجرا میکند.
- مرحله آزمون را مشخص میکند .
- مراحل مربوط به مرحله آزمون را انجام میدهد.
- مرحله استفرار را تعریف میکند.
- مراحل مربوط به مرحله استقرار را انجام میدهد .
-
چگونه یک بکاپ و کپی از فایل ها در جنکیز ایجاد میکنیم ؟
به منظور ایجاد یک فایل بکاپ، به طور دوره ای از JENKINS_HOME خود نسخه پشتیبان تهیه کنید .
برای ایجاد یک بکاپ از تنظیمات Jenkins ، دایرکتوری JENKINS HOME را کپی کنید . همچین می توانید یک فهرست کار را کپی کنید تا یک کار را شبیه سازی یا تکرار کنید یا نام دایرکتوری را تغییر دهید .
-
چگونه میتوانید جنکینز را از یک سرور به سرور دیگر کپی کنید ؟
-
- با کپی کردن فهرست کار مربوطه، کار را از یک سرور جنکینز به دیگری منتقل کنید.
- با ساختن یک کلون از فهرست کار با نامی دیگر ، یک کپی از یک کار موجود ایجاد کنید
- با تغییر نام یک فهرست، نام یک کار موجود را تغییر دهید .
-
سه مکانیسم امنیتی که جنکینز برای احراز هویت کاربران استفاده میکند نام ببرید .
- جنکینز از یک پایگاه داده داخلی برای ذخیره داده ها و اطلاعات کاربری استفاده میکند.
- جنکینز میتواند از سرور Lighweight Directory Accses Procol (LDAP) برای احراز هویت کاربران استفاده کند .
- جنکینز را میتوان طوری پیکربندی کرد که از مکانیزم احراز هویتی که سرور برنامه مستقر استفاده کند .
-
ساخت سفارشی یک پلاگین هسته چگونه مستقر میشود؟
مراحل استقرار ساخت سفارشی یک پلاگین هسته :
-
- کپی کنید. .hpi file to $JENKINS_HOME/plugins
- دایرکتوری توسعه افزونه را حذف کنید .
- یک فایل خالی به نام <plugin>.hpi.pinned ایجاد کنید و جنکینز را مجددا راه اندازی کنید از ساخت دلخواه خود از یک پلاگین اصلی استفاده کنید.
-
اگر کاربران مدیریتی خود را از کنسول مدیریت قفل کرده باشند، چگونه میتوانید سکیوریتی جنکینز را به طور موقت خاموش کنید ؟
-
- هنگامی که امنیت فعال است ، فایل Config که حاوی یک عامل XML می باشد استفاده از امنیت را روی True تنظیم خواهد کرد .
- با تغییر این تنظیم به false، دفعه بعد امنیت غیر فعال می شود جنکینز دوباره راه اندازی میشود.
-
راه هایی که یک بیلد را میتوان در جنکیز برنامه ریزی و اجرا کرد چیست ؟
- توسط کد منبع مدیریت متعهد میشود.
- پس از اتمام ساخت های دیگر.
- برنامه ریزی شده برای اجرا در یک زمان مشخص.
- درخواست های ساخت دستی
پیشنهاد می کنیم این مقاله را هم از دست ندهید: نقشهی راه DevOps و SRE سال 2022
-
چه دستورانی میتوانید برای راه اندازی مجدد Jenkins به صورت دستی استفاده کنید؟
دو روش برای راه اندازی مجدد جنکینز به صورت دستی وجود دارد :
-
- Jenkins_url)) ریستارت// راه اندازی مجدد بدون انتظار برای تکمیل بیلدها
- Jenkins_url)) ریستارت امن // اجازه میدهد بلید های درحال اجرا قبل از ریستارت کامل شوند.
سوالات مصاحبه DevOps برای یکپارچی مداوم Selenium
-
اجزای مختلف سلنیوم چیست ؟
سلنیوم داری اجزاری زیر است :
محیط توسعه یکپارچه سلنویم (IDE)
-
- این یک چارچوب ساده دارد و باید برای نمونه سازی استفاده شود .
- دارای یک پلاگین فایرفاکس با قابلیت نصب آسان
کنترل از راه دور سلنیوم (RC)
-
- تست چارچوب برای یک توسعه دهنده برای نوشتن کد در هر زبان برنامه نویسی (جاوا ، پی اچ پی ، پرل ، سی شارپ و غیره)
وب درایور سلنویم
-
- رویکرد بهتری را برای خودکارسازی فعالیت های مرورگر اعمال میکند .
- به جاوا اسکریپت متکی نیست .
شبکه سلنیوم
-
- با سلنیوم RC کار میکند و با استفاده از مرورگرها بر روی گره های مختلف تست ها را اجرا میکند .
-
استثناهای مختلف در سلنویم وب درایور چیست ؟
استثناها رویدادهایی هستند که در حین اجرای یک برنامه رخ میدهد و اختلال ایجاد میکنند جریانن عادی دستورالعمل های یک برنامه سلنیوم داری استثائات زیر است :
-
- TimeoutException :
زمانی منقضی میشود که دستوری که عملیات را انجام میدهد در زمان تعیین شده کامل نشود .
-
- NoSuchElementException :
زمانی منقضی میشود که عنصری با ویژگی های خاص در صفحه وب یافت نشود.
-
- ElementNotVisibleException:
هنگامی که یک عنصر وجود دارید پرتاب میشود در Document object Model ( DOM) اما قابل مشاهده نیست. مثال : عناصر پنهان که در HTML با استفاده از “Type=hidden” تعریف میشوند.
-
- SessionNotFoundException:
Webdriver بلافاصله پس از خروج مرورگر در حال انجام این عمل است.
-
آیا سلنویم میتواند برنامه ای را روی مرورگر اندروید تست کند؟
سلنیوم با استفاده از درایور اندروید قادر به آزمایش یک برنامه در مرورگر اندروید است .میتوانید از چارچوب Selendroid یا Appium برای آزمایش برنامه های محلی یا برنامه های وب در مرورگر اندروید استفاده کنید کد زیر نمونه ای برای این گفته است :
-
انواع مختلف آزمایشی که سلنیوم پشتیبانی میکند چیست ؟
- Functional :
این یک نوع تست جعبه سیاه است که در آن موارد تست بر اساس مشخصات نرم افزار است .
-
- Regression:
این تست به یافتن خطاهای جدید، Regressions ها و غیره در بخش های مختلف عملکردی و غیر کاربری کد پس از تغییر کمک میکند.
-
- Load Testing :
این آزمایش به دنبال نظارت بر پاسخ یک دستگاه پس از قرار دادن بار بر روی آن است . برای مطالعه رفتار سیستم تحت شرایط خاص انجام میشود .
-
چگونه می توانید به متن یک عنصر وب دسترسی پیدا کنید ؟
- Get command
دستورGet برای بازیابی متن یک عنصر وب مشخص شده استفاده میشود . دستور هیچ پارامتری را بر نمیگرداند اما مقدار رشته ای را برمیگرداند.
-
- Used for:
- برای تایید پیام ها
- برچسب ها
- خطاهای نمایش داده شده در صفحه وب
- Syntax:
- Used for:
String Text = driver.findElement(By.id(“text”)).getText()
-
چگونه میتوانید با استفاده از سلنیوم عملکردهای کیبورد و ماوس را انجام دهید ؟
شما میتوانید عملکردهای کیبورد و ماوس را با تعامل پیشرفته کربر مدیریت کنید (API)
(API) شامل کنش ها و کلاس های عمل است .
روش توضیحات
کلیک کردن و نگه داشتن بدون رها کردن مکان فعلی با ماوس کلیک کنید.
درگ اند دراپ کلیک و نگه داشتن را محل عنصر منبع انجام میدهد.
keyDown(modifier_key) فشار دادن کلیدهای اصلاح کننده کنترل و …
keyUp(modifier_key) انتشارکلید را انجام میدهد.
-
کدام یک از گزینه ها روش WebElement نیست ؟
1- getText()
2- size()
3- getTagName()
4- sendKeys()
گزینه صحیح گزینه 2 است .
-
چه زمانی از Find Elemnts و find element استفاده میکنیم؟
- findElement()
اولین عنصر را در صفحه وب فعلی پیدا میکند که با مقدار مکان یاب مشخص شده مطابقت دارد .
-
- Syntax:
- WebElement element=driver.findElements(By.xpath(“//div[@id=‘example’]//
- ul//li”));
- findElements()
تمام عناصر موجود در صفحه وب فعلی را که با مقدار مکان یاب مشخص شده مطابقت دارد را پیدا میکند .
-
Driverclose(_) و driver.(quit) چیست ؟
این دو روش مختلف برای بستن جلسه مرورگر در سلنیوم هستند .
-
- Driverclose
برای بستن پنجره مرورگر فعلی که فوکوس روی آن تنظیم شده است استفاده میشود. در این حالت فقط یک مرورگر باز است .
-
- Driverquit
تمام پنجره های مرورگر را میبند و جلسه WebDriver را با استفاده از driver.dispose پایان میدهد.
-
چگونه میتوان با استفاده از سلنویم فرم ارسال کرد؟
خطوط کد زیر به شما امکان می دهد فرمی را با استفاده از Selenium ارسال کنید.
WebElement el = driver.findElement(By.id(“ElementID”)); el.submit();
سوالات مصاحبه DevOps برای یکپارچی مداوم –Chef,Puppet , Ansible
-
چرا از سند های SSL در Chef میشود ؟
سندهای SSL بین سرور Chef و مشتری استفاده میشود تا اطمینان حاصل شود که هر نقطه اتصال به دادههای مناسب دسترسی دارد .
هرگره دارای یک جفت کلید خصوصی و عمومی است . کلید عمومی در سرور Chef ذخیره میشود .
هنگامی که یک گواهی SSL به سرور ارسال میشود، حاوی کلید خصوصی نقطه اتصال خواهد بود.
سرور این را با کلید عمومی مقایسه میکند تا نقطه اتصال را شناسایی کند و به نقطه اتصال دسترسی به داده های مورد نیاز بدهد.
-
هنگام بوت شدن سیستم از کدام یک از دستورات زیر برای توقف یا غیر فعال کردن سرویس “httpd” استفاده میکنید؟
1- # systemctl disable httpd.service
2- # system disable httpd.service
3- # system disable httpd
4- # systemctl disable httpd.service
گزینه درست گزینه 1 است . # systemctl disable httpd.service
-
آشپزخانه آزمایشی در Chef چیست ؟
Test Kitchen یک ابزار خط فرمان در Chef است که یک نمونه را چرخانده و کتاب آشپزی را قبل از استقرار در نقطه اتصال واقعی روی آن آزمایش میکند.
در اینجا رایج ترین دستورات آشپزخانه استفاده میشود:
-
چه تفاوتی Chef با Chef – Client دارد ؟
Chef-apply بر روی سیستم مشتری اجرا میشود.
Chef-apply دستور ذکر شده در دستور را در سیستم مشتری اعمال میکند.
$ chef-apply recipe_name.rb
نیز بر روی سیستم مشتری اجرا میشود.Chef – Client
تمام کتاب های آشپزی موجود در لیست اجرا سرور شما را در سیستم مشتری اعمال میکند.Chef – Client
$ knife-chef-client
-
کد امضای سندهای درخواستی چیست؟
برای Puppet نسخه 2.7 :
# puppetca –sign hostname-of-agent
مثال :
# puppetca –sign ChefAgent
# puppetca sign hostname-of-agent
مثال:
# puppetca sign ChefAgent
برای Puppet نسخه 2.7 :
# puppetca –sign hostname-of-agent
مثال :
# puppetca –sign ChefAgent
# puppetca sign hostname-of-agent
مثال:
# puppetca sign ChefAgent
-
از کدام ابزار اپن سورس یا ابزار جامع برای puppet قوی تر استفاده میکنید ؟
تغییرات در پیکربندی با استفاده از Jira ردیابی میشود و نگهداری بیشتر از طریق رویه های داخلی انجام میشود .
کنترل نسخه از برنامه مدیریت کد Git و Puppet پشتیبای میکند .
تغییرات همچنین از طریق pipeline یکپارچع سازی مداوم جنکین منتقل میشود.
-
منابع در Puppet چه هستند ؟
- منابع واحدهای اساسی هر ابزار مدیریت پیکربندی هستند.
- اینها ویژگی های یک نقطع اتصال هستند ، مانند نرم افزاری یا خدمات آنها.
- یک اعلامیه منبع، که در یک کاتالوگ نوشته شده است ، عملی را که باید روی منبع یا همراه با آن انجام شود توصیف میکند .
- هنگامی که کاتالوگ اجرا میشود، نقطه اتصال را در حالت دلخواه قرار میدهد .
-
کلاس در Puppet چیست ؟
- کلاس ها بلوک هایی در مانیفست شما هستند که عملکردهای مختلف نقطه اتصال مانند سرویس ها ، فایل ها و بسته ها پیکربندی میکنند.
- کلاس ها به کاتالوگ یک گره اضافه میشوند و تنها زمانی اجرا میشوند که صریحا فراخوانی شوند.
- explicitly invoked.
- Class apache (String $version = ‘latest’) {
- package{
- ‘httpd’: ensure => $version,
- before => File[‘/etc/httpd.conf’],}
-
نقش Ansible چیست ؟
نقس Ansible یک بلوک مستقل از وظایف، متغیرها،فایل ها و قالب ها است که در پلی بوک تعبیه شده است.
این playbook تامکت را روی “node1” نصب میکند.
-
چه زمانی باید از “{{ }}” استفاده کنم؟
همیشه از {{}} برای متغیرها استفاده کنید، مگر اینکه یک عبارت شرطی مانند “when: …” داشته باشید. این به این دلیل است که دستورات شرطی از طریق Jinja اجرا می شوند که عبارات را حل می کند.
مثلا:
echo
“این مقدارِ {{foo}}چاپ می کند”
وقتی: foo تعریف شده است
استفاده از براکت ها تشخیص رشته ها و متغیرهای تعریف نشده را ساده تر می کند.
این همچنین تضمین می کند که Ansible خط را به عنوان یک اعلان فرهنگ لغت تشخیص نمیدهد.
-
بهترین راه برای استفاده مجدد/توزیع مجدد محتوا چیست؟
سه راه برای استفاده مجدد یا توزیع مجدد محتوا در Ansible وجود دارد:
-
- نقش ها برای مدیریت وظایف در یک پلیبوک استفاده میشوند. آنها را می توان به راحتی از طریق Ansible Galaxy به اشتراک گذاشت.
- “include”
- برای افزودن یک زیر ماژول یا فایل دیگری به یک پلیبوک استفاده می شود. این بدان معناست که کدی را که یک بار نوشته شده را میتوان به چندین پلیبوک اضافه کرد.
- “وارد کردن/ایمپورت” بهبود “شامل شدن/include” است که تضمین می کند یک فایل فقط یک بار اضافه میشود. این زمانی مفید است که یک خط به صورت بازگشتی اجرا شود.
Ansible چه تفاوتی با Puppet دارد؟
Ansible Puppet
نصب مبتنی بر عامل نصب آسان بدون عامل
براساس روبی براساس پایتون
فایلهای پیکربندی با DSL نوشته میشود فایلهای پیکربندی با YML نوشه میشود
پشتیبای از همه سیستم عامل های محبوب پشتیبانی ویندوز ندارد.
بیشتر بخوانید: 13 دوره برتر برای یادگیری DevOps برای توسعه دهندگان ارشد در سال 1400
سوالات مصاحبه DevOps برای کانتینرسازی
-
معماری داکر را توضیح دهید .
- داکر از معماری کلاینت-سرور استفاده میکند.
- Docker Client
سرویسی است که دستوری را اجرا میکند. دستور با استفاده از REST API ترجمه شده و به Docker Daemon (سرور) ارسال میشود.
-
- Docker Daemon
درخواست را می پذیرد و با سیستم عامل برای ساخت تصاویر Docker و اجرای کانتینرهای Docker تعامل برقرار میکند.
-
- تصویر Docker یک الگوی دستورالعمل است که برای ایجاد کانتینرها استفاده میشود.
- Docker container
یک بسته اجرایی از یک برنامه کاربردی و وابستگی های آن با هم است.
-
- رجیستری داکر سرویسی برای میزبانی و توزیع تصاویر داکر بین کاربران است.
-
مزایای داکر نسبت به ماشین های مجازی چیست ؟
-
چگونه کانتینرهای Docker را با نقاط اتصال مختلف به اشتراک بگذاریم؟
-
- اشتراک گذاری کانتینرهای داکر در نقاط اتصال مختلف با داکر امکان پذیر است.
- “الگوریتم ازدحام”
- Docker Swarm
- ابزاری است که به مدیران و توسعه دهندگان فناوری اطلاعات اجازه میدهد تا مجموعه ای از نقاط اتصال ازدحام را در پلتفرم داکر ایجاد و مدیریت کنند.
- یک swarm از دو نوع گره تشکیل شده است: نقطه اتصال مدیر و نقطه اتصال کارگر
-
دستورات مورد استفاده برای ایجاد ازدحام Docker چیست؟
- گروهی را در جایی که می خواهید نقطه اتصال (Node)خود را اجرا کنید، ایجاد کنید.
Docker swarm init –advertise-addr <MANAGER-IP>
-
- هنگامی که یک گروه در نقطه اتصال(Node)خود ایجاد کردید، میتوانید نقطه اتصال کارگر را به الگوریتم خود اضافه کنید.
- هنگامی که یک نقطه اتصال به عنوان یک منیجر ارزش دهی میشود، بلافاصله یک توکن ایجاد میکند. برای ایجاد نقطه اتصال کارگر، دستور زیر (توکن) باید بر روی ماشین میزبان نقطه اتصال کارگر اجرا شود.
Docker swarm join \ –token SWMTKN-1-49nj1cmql0jkz5s954yi3 oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
192.168.99.100:2377
-
چگونه چندین کانتینر را با استفاده از یک سرویس اجرا میکنید؟
- امکان اجرای چندین کانتینر به صورت یک سرویس با داکر وجود دارد.
- “ساختن”
-
- در اینجا، هر ظرف به صورت مجزا اجرا می شود اما میتوانند با یکدیگر تعامل داشته باشد.
- همه فایل های Docker Compose فایل های YAML هستند
-
Dockerfileبرای چه مواردی استفاده می شود؟
- یک Dockerfile برای ایجاد تصاویر داکر با استفاده از دستور ساخت استفاده میشود.
- با یک تصویر Docker، هر کاربری مییواند کد را برای ایجاد کانتینرهای Docker اجرا کند.
- هنگامی که یک تصویر داکر ساخته شد، در رجیستری داکر آپلود میشود.
- از رجیستری Docker، کاربران می توانند تصویر Docker را دریافت کنند و هر زمان که بخواهند کانتینرهای جدید بسازند.
-
تفاوت بین تصاویر داکر و کانتینرهای داکر را توضیح دهید.
Docker images Docker Container
کانتینرها نمونه های زمان اجرا یک تصویر Docker هستند. تصاویر داکلر الگوهایی از کانتیرهای داکر هستند.
کانتینرها با استفاده از تصاویر داکر ایجاد میشوند . یک تصویر با استفاده از Dockerfile ساخته میشود.
آنها در Daemon Docker ذخیره میشوند در یک مخزن داکر یا یک هاب داکر ذخیره میشوند.
هرلایه کانتیری یک سیستم فایل قابل خواندن و نوشتن است لایه تصویر یک فایل سیستم قابل خواندن است
-
به جای YAML، از چه چیزی می توانید به عنوان فایل جایگزین برای ساختن Docker compose استفاده کنید؟
برای ساختن یک Docker compose، کاربر می تواند به جای YAML از یک فایل JSON استفاده کند. در صورتی که کاربر بخواهد از فایل JSON استفاده کند، باید نام فایل را به صورت زیر مشخص کند:
Docker-compose -f Docker-compose.json up
-
چگونه یک کانتینر داکر ایجاد میکنید؟
مراحل: یک ظرف MySQL Docker ایجاد کنید.
کاربر می تواند یک تصویر داکر بسازد یا یک تصویر داکر موجود را بکشد
(مانند (MySQL) از Docker Hub.
اکنون داکر یک کانتینر MySQL جدید از تصویر داکر موجود ایجاد می کند. به طور همزمان، لایه کانتینر سیستم فایل خواندن-نوشتن نیز در بالای لایه تصویر ایجاد میشود.
-
- دستور ایجاد یک ظرف Docker: Docker run -t –i MySQL
- دستور فهرست کردن کانتینرهای در حال اجرا: Docker ps
-
تفاوت بین رجیستری و مخزن چیست؟
1- Regisrty
2- Repository
1) رجیستری Docker یک سرویس منبع باز سمت سرور است که برای میزبانی و توزیع تصاویر Docker استفاده میشود.
1) در یک رجیستری، کاربرمیتواند بین تصاویر داکر با نام تگ آنها تمایز قائل شود .
1) Dockerهمچنین دارای رجیستری پیش فرض خود به نام Docker Hub است.
2) مخزن مجموعه ای از چندین نسخه از تصاویر داکر است
2) یک رجیستری Docker ذخیره میشود.
2) این دارای دو نوع است : مخازن عمومی و خصوصی
-
پلتفرم های ابری که از Docker پشتیبانی میکنند کدامند؟
پلتفرمهای ابری که داکر روی آنها اجرا میشود به شرح زیر است:
-
هدف از نمایش و انتشار دستورات در Docker چیست؟
در معرض گذاشتن Expose
-
- Expose
دستورالعملی است که در Dockerfile استفاده می شود.
-
- برای نمایش پورت ها در یک شبکه، Docker استفاده میشود.
- این یک دستورالعمل مستندسازی است که در زمان ساخت یک تصویر و اجرای یک محتوی استفاده میشود.
- Expose
دستوری است که در Docker استفاده می شود.
-
- مثال: Expose 8080
- Publish
در دستور اجرای Docker استفاده میشود.
-
- می توان از آن در خارج از محیط داکر استفاده کرد.
- برای نگاشت یک پورت میزبان به یک پورت کانتینر در حال اجرا استفاده می شود.
- –publish یا –p دستوری است که در Docker استفاده می شود.
- مثال: docker run –d –p 0.0.0.80:80
سوالات مصاحبه DevOps برای نظارت مستمر
-
Nagiosچگونه در نظارت مستمر سیستم ها، برنامه ها و خدمات کمک میکند؟
- Nagios
نظارت بر سرور و توانایی بررسی اینکه آیا آنها به اندازه کافی مورد استفاده قرار گرفته اند یا اینکه آیا هر گونه نقص وظیفه باید برطرف شود یا خیر را امکان پذیر میوند.
-
- وضعیت سرورها و سرویس ها را بررسی میکند
- سلامت زیرساخت های شما را بازرسی میکند.
- بررسی می کند که آیا برنامه ها به درستی کار میکنند و سرورهای وب در دسترس هستند یا خیر.
-
Nagiosچگونه در نظارت مستمر سیستمها و برنامه و خدمات کمک میکند؟
همچنین این مقاله برایتان مفید خواهد بود: 13 دوره برتر برای یادگیری DevOps برای توسعه دهندگان ارشد در سال 1400
-
منظور از (Nagios Remote Plugin Executor (NPRE چیست؟
Nagios Remote Plugin Executor (NPRE)
شما را قادر می سازد پلاگین های Nagios را بر روی ماشین های لینوکس/یونیکس اجرا کنید. شما می توانید معیارهای دستگاه از راه دور (استفاده از دیسک، بار CPU و غیره) را نظارت کنید.
-
- پلاگین check_npre که در دستگاه نظارت محلی قرار دارد.
- دیمون NPRE که بر روی دستگاه لینوکس/یونیکس از راه دور اجرا می شود.
-
شماره پورت هایی که Nagios برای اهداف نظارتی استفاده می کند چیست؟
معمولاً Nagios از شماره پورت های زیر برای نظارت استفاده می کند:
-
چک های فعال و غیرفعال در ناگیوس چیست؟
Nagiosقادر به نظارت بر میزبان ها و خدمات به دو صورت است:
به طور فعال
-
- بررسی های فعال در نتیجه فرآیند Nagios آغاز میشود.
- بررسی های فعال به طور منظم برنامه ریزی میشود.
منفعلانه
-
- بررسی های غیرفعال از طریق برنامه های کاربردی خارجی آغاز و انجام میشود.
“فرآیندها”
-
- نتایج بررسی های غیرفعال برای پردازش به Nagios ارسال می شود.
-
چک فعال و غیرفعال در Nagios چیست؟
چک های فعال
-
- منطق چک در دیمون Nagios شروع کننده چک های فعال است.
Nagiosیک پلاگین را اجرا میکند و اطلاعات مربوط به مواردی را که باید بررسی شوند را ارسال میکند.
-
- سپس پلاگین وضعیت عملیاتی هاست یا سرویس را بررسی می کند و نتایج را به دیمون Nagios گزارش میدهد.
- نتایج بررسی هاست یا سرویس را پردازش کرده و اعلان ها را ارسال میکند.
چک های غیرفعال:
-
- در بررسی های غیرفعال، یک برنامه خارجی وضعیت یک میزبان یا سرویس را بررسی میکند.
- نتایج بررسی را در فایل فرمان خارجی مینویسد.
Nagiosفایل فرمان خارجی را می خواند و نتایج تمام بررسی های غیرفعال را برای پردازش بعدی در یک صف قرار میدهد.
Nagiosممکن است بسته به اطلاعات نتیجه بررسی، اعلانها، هشدارهای گزارش و غیره.. ارسال کند.
-
فایل پیکربندی اصلی و محل آن در Nagios را توضیح دهید.
فایل پیکربندی اصلی شامل چندین دستورالعمل است که بر نحوه عملکرد Nagios تأثیر می گذارد. فرآیند Nagios و CGIها فایل پیکربندی را میخوانند.
یک نمونه فایل پیکربندی اصلی که در فهرست تنظیمات شما قرار میگیرد:
/usr/local/Nagios/etc/resource.cfg
-
تحلیلگر شبکه Nagios چیست؟
- نگاهی عمیق به تمام منابع ترافیک شبکه و تهدیدات امنیتی ارائه میدهد.
- نمای مرکزی از ترافیک شبکه و داده های پهنای باند شما را فراهم میکند.
- به مدیران سیستم اجازه می دهد تا اطلاعات سطح بالا در مورد سلامت شبکه جمع آوری کنند.
- شما را قادر میسازد تا قبل از اینکه بر فرآیندهای کسب و کار حیاتی تأثیر بگذارند، در حل قطعیها، رفتارهای غیرعادی و تهدیدها فعال باشید.
-
مزایای نظارت بر گواهی HTTP و SSL با Nagios چیست؟
“نظارت بر گواهی “HTTP”
-
- افزایش در دسترس بودن سرور، خدمات و برنامه.
- تشخیص سریع قطعی شبکه و خرابی پروتکل.
- تراکنش وب و نظارت بر عملکرد سرور وب را فعال میکند.
“نظارت بر گواهی “SSL”
-
- افزایش در دسترس بودن وب سایت.
- در دسترس بودن برنامه مکرر.
- افزایش امنیت.
-
مجازی سازی با Nagios را توضیح دهید.
Nagiosمیتواند بر روی پلتفرم های مجازی سازی مختلف مانند VMware، Microsoft Visual اجرا شود
-
- قابلیت های نظارت بر مجموعه ای از معیارها را در پلتفرم های مختلف فراهم میکند.
- تشخیص سریع خرابی های سرویس و برنامه را تضمین میکند.
- قابلیت نظارت بر معیارهای زیر را دارد:
- میزان استفاده از پردازنده
- حافظه
- شبکه سازی
- وضعیت VM
- کاهش هزینه های اداری
-
سه متغیری که بر بازگشت و توارث در Nagios تأثیر میگذارند را نام ببرید.
- Name:
نام قالبی که می تواند در سایر تعاریف شی ارجاع داده شود تا بتواند خصوصیات/متغیرهای شی را به ارث ببرد.
-
- use:
در اینجا، نام شی الگو را که میخواهید خصوصیات/متغیرها به ارث برده شوند را مشخص میکنید.
-
- register:
این متغیر نشان می دهد که آیا تعریف شی باید در Nagios ثبت شود یا خیر
define someobjecttype {
object-specific variables …. name template_name
use name_of_template register [0/1]
{
-
چرا گفته می شود که Nagios شی گرا است؟
با استفاده از فرمت پیکربندی شی، می توانید تعاریفی از هدف نهایی(شی نهایی) ایجاد کنید که خصوصیات را از سایر تعاریف شی به ارث می برند. از این رو، Nagios به عنوان “شی گرا” شناخته میشود.
انواع اهداف:
-
- خدمات
- میزبانی
- دستورات
- دوره های زمانی
-
توضیح دهید که Stalking در Nagios چیست؟
- استاکینگ دولتی برای اهداف ورود به سیستم در Nagios استفاده می شود.
- هنگامی که استاکینگ برای یک میزبان یا سرویس خاص فعال است، Nagios آن میزبان یا سرویس را با دقت تماشا میکند.
- هر تغییری را که در نتیجه بررسی کند، ثبت خواهد کرد.
- این به تجزیه و تحلیل فایل های گزارش کمک میکند.
قدم بعدی برای موفق شدن
اینها برخی از رایج ترین سوالات مصاحبه DevOps هستند که ممکن است هنگام شرکت در مصاحبه با آنها برخورد کنید. به عنوان یک مهندس DevOps، دانش عمیق فرآیندها، ابزارها و فناوری مربوطه ضروری است و این سوالات مصاحبه DevOps به شما کمک می کند تا در مورد برخی از این جنبه ها اطلاعاتی کسب کنید.
علاوه بر این، شما همچنین باید درک جامعی از محصولات، خدمات و سیستم های موجود داشته باشید.
همانطور که می بینید، چیزهای زیادی برای یادگیری وجود دارد تا بتوانید در زمینه DevOps شغلی سودمند پیدا کنیدGit، Jenkins، Selenium، Chef، Puppet Ansible، Docker، Nagios و موارد دیگر. در حالی که این راهنمای جامع سوالات مصاحبه برای کمک به شما در مصاحبه بعدی طراحی شده است، بدون شک اگر امروز در دوره آموزشی جامع مهندسی DevOps ما ثبت نام کنید، عملکرد بهتری خواهید داشت
دیدگاهتان را بنویسید