Hamid Reza
Hamid Reza
خواندن ۳ دقیقه·۱۰ ماه پیش

DevOps چیست؟

تو این مقاله سعی میکنم خیلی ساده و روان در مورد اینکه DevOps چیه و کاری که انجام میده توضیح میدیم ولی قبل از اینکه به مفهوم DevOps بپردازیم بهتره مفاهیم پایه رو متوجه بشیم.

  • چرخه حیات برنامه یا Application Life Cycle

به طور کلی به زمانی گفته میشود که ایده اولیه برنامه به ذهن ما میرسد تا زمانی که برنامه را پیاده سازی میکنیم که طی چندین مرحله انجام میشود.

به طور کلی یک Application Life Cycle توسط دو تیم مجزا اجرا میشود:

  • Development Team
  • Operation Team

مراحل یک Application Life Cycle به شرح زیر میباشد:

  1. مرحله اول Discovery یا نیاز سنجی: در این مرحله ما نیاز های مشتری یا کارفرما شناسایی میکنیم.
  2. مرحله دوم Analyse: نیاز هایی که در مرحله قبل شناسایی شدن رو آنالیز میکنیم.
  3. مرحله سوم Plan: برنامه ریزی برای Application.
  4. مرحله چهارم Design: طراحی Application.
  5. مرحله پنجم Code: کد نویسی برنامه که خود از دو بخش Build و Develop تشکیل میشود.
  6. مرحله ششم Test
  7. مرحله هفتم Deploy: برنامه برای استفاده قرار میگیرد و وارد Production Environment میگردد.
  8. مرحله هشتم Monitor: این مرحله شامل دو بخش Evaluation و Develop میشود، در این مرحله بازخورد های برنامه در استفاده گرفته میشود و برنامه توسعه پیدا میکند.

مراحل 1 تا 5 وظایف تیم Development هستند و مراحل 6 تا 8 توسط تیم Operation انجام میشود.

  • مفهوم CI/CD

مفهوم CD/CD را می‌توان روشی خودکار برای ارائه مستمر نرم‌افزار در حال توسعه به کاربران نهایی دانست. درک این تعریف در ابتدای کار سخت است اما پس از آشنا شدن با مفاهیمی مانند continuous integration، continuous delivery و continuous deployment بسیار راحت‌تر از قبل می‌توانید بُعدهای مختلف این روش را درک کنید.

به طور کل CI فرایندی است که در آن نرم‌افزار ما build شده و تست‌های نرم‌افزاری اعم از unit و integration test ها به‌صورت خودکار اجرا می‌شوند.

پس از CI، نوبت به Continuous delivery (CD) می‌رسد. طی این فرایند، release نرم‌افزار نهایی به‌صورت خودکار انجام می‌شود. هدف از continuous delivery این است که همیشه کدهایی داشته باشیم که قابلیت استقرار در حالت Production را داشته باشند.



حالا در این فرایند چه نیازی به DevOps هست؟

طی این فرایند ها یک سری مشکلات عمده وجود دارن که باعث اختلال در عملکرد برنامه میشن و ممکنه برنامه برای ساعاتی به طور کل Down بشه. عمده مشکل ارتباط بین تیم Development و تیم Operation هستش، چرا که تیم Development بیشتر به فکر توسعه برنامه هستن ولی تیم Operation هدفشون یک برنامه بدون ایراد و Uptime خوبه.

یکی دیگه از مشکلات اینه که زمانی که تیم Operation در مرحله CD قرار داشته باشن و بخوان برنامه رو به محیط Production ببرن و تست رو انجام بدن ممکنه زمان زیادی رو صرف این کار بکنن و به همین خاطر تو این زمان ممکنه تیم Develop فقط منتظر نتیجه باشه.

همین مشکلات و مسائل دیگه باعث به وجود اومدن یک پوزیشن در شرکت ها به اسم DevOps شده که کار اصلیش ارتباط و هماهنگی بین دو تیم Develop و Operation هستش.

هدف نهایی یک مهندس DevOps کوتاه کردن چرخه توسعه نرم‌افزار، افزایش دفعات به‌روزرسانی‌ها و برنامه‌ریزی برای دستیابی به نسخه‌های قابل اعتمادتر است

دوآپس در مورد یکسان‌سازی و اتوماسیون فرایندها است و مهندسان داوپس در ترکیب کد، نگهداری برنامه‌ها و مدیریت برنامه‌ها نقش اساسی دارند. همه این وظایف به درک چرخه‌های عمر توسعه، فرهنگ DevOps و فلسفه، شیوه‌ها و ابزارهای آن متکی هستند. بنابراین یک مهندس دواپس نه‌تنها باید بر تمام این موارد تسلط داشته باشد بلکه باید مهارت‌های بین‌فردی داشته باشد تا بتواند دو تیم توسعه و عملیات را در یک محیط مشارکتی، مدیریت کند.

devopsمهندس DevOps
Android and Flutter developer
شاید از این پست‌ها خوشتان بیاید