You are not allowed to perform this action

DevOps

مدرس: احسان عزیزی خادم پیش‌نیاز: مهندسی چابک نرم‌افزار
ترم: محل برگزاری: کلاس مجازی
زمان ارائه: پنج‌شنبه ۱۵:۰۰ تا ۱۸:۰۰ مشاهده: دریافت لایسنس

معرفی درس

DevOps؛ از توسعه نرم‌افزار تا استقرار و پایش خودکار سامانه‌ها

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

در این درس، با مفاهیم و اصول اصلی DevOps آشنا می‌شوید و روش‌های پیاده‌سازی آن را در چرخه توسعه و بهره‌برداری از نرم‌افزار بررسی می‌کنید. مباحثی مانند توسعه و استقرار مداوم (CI/CD)، زیرساخت به‌عنوان کد (Infrastructure as Code)، تست خودکار و نظارت پیوسته (Continuous Monitoring) به شما نشان می‌دهند چگونه می‌توان بسیاری از فعالیت‌های تکراری را خودکار کرد، کیفیت انتشار نسخه‌های نرم‌افزار را افزایش داد و وضعیت سامانه‌ها را به‌طور مستمر ارزیابی کرد.

همچنین، با محفظه‌سازی (Containerization) با استفاده از Kubernetes، ارتباط DevOps با معماری میکروسرویس و رایانش تابع‌محور (FaaS)، رویکرد GitOps و اصول امنیت در چرخه توسعه و عملیات (DevSecOps) آشنا خواهید شد. این مباحث تصویری جامع از ابزارها و رویکردهای نوین مدیریت چرخه عمر نرم‌افزار ارائه می‌کنند و زمینه لازم برای درک بهتر فرایندهای توسعه و استقرار نرم‌افزار در محیط‌های حرفه‌ای را فراهم می‌سازند.

در پایان این درس چه توانایی‌هایی کسب می‌کنید؟

  • درک مفاهیم، اصول و اهداف اصلی جنبش DevOps و نقش آن در توسعه نرم‌افزار
  • آشنایی با فرایندهای توسعه و استقرار مداوم (CI/CD) و نحوه خودکارسازی آن‌ها
  • شناخت زیرساخت به‌عنوان کد (IaC) و نقش آن در مدیریت و بازتولیدپذیری زیرساخت‌ها
  • درک جایگاه تست خودکار در افزایش کیفیت و اطمینان از صحت نرم‌افزار
  • آشنایی با نظارت پیوسته و اهمیت پایش عملکرد و وضعیت سامانه‌ها
  • شناخت محفظه‌سازی و کاربرد Kubernetes در مدیریت و اجرای نرم‌افزارها
  • درک ارتباط DevOps با معماری میکروسرویس و مدل FaaS
  • آشنایی با GitOps و نقش آن در مدیریت تغییرات و استقرار نرم‌افزار
  • شناخت اصول DevSecOps و اهمیت در نظر گرفتن امنیت در مراحل مختلف چرخه توسعه نرم‌افزار

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

پیش‌نیاز

آشنایی مقدماتی با برنامه‌نویسی و فرایند توسعه نرم‌افزار برای بهره‌گیری بهتر از این درس توصیه می‌شود. آشنایی با سیستم‌عامل لینوکس، Git و مفاهیم شبکه نیز می‌تواند در درک مباحثی مانند CI/CD، زیرساخت به‌عنوان کد، Kubernetes و GitOps مفید باشد.

سرفصل‌ها

  • مقدمه و مفاهیم اولیه (۲ جلسه)
  • توسعه و استقرار مداوم یا CICD (۲ جلسه)
  • Infrastructure as a Code (۲ جلسه)
  • تست اتوماتیک (۲ جلسه)
  • نظارت پیگیر (۲ جلسه)
  • محفظه سازی با Kubernetes (۲ جلسه)
  • انطباق معماری دواپس با مایکروسرویس و FaaS (۲ جلسه)
  • GitOps (۲ جلسه)
  • DevSecOps (۲ جلسه)

ارزیابی

  • تمرین ها و پروژه ها: 8 نمره
  • آزمون پایان دوره: 12 نمره

منابع

  1. R. Rajab, M. Alnoukari. DevOps Integration With Capability Model Maturity Integration: A Systematic Mapping Review. IEEE Access, Vol. 13, pp. 31829–31841, February 2025, DOI: 10.1109/ACCESS.2025.3542630.
  2. Pérez-Sánchez, S. Rafi, J. M. Carrillo de Gea, J. N. Ros, J. L. Fernández Alemán. A Theory on Human Factors in DevOps Adoption. Computer Standards & Interfaces, Vol. 92, Article 103907, Elsevier, 2025. DOI: 10.1016/j.csi.2024.103907.
  3. M. Fu, J. Pasuksmit, C. Tantithamthavorn. AI for DevSecOps: A Landscape and Future Opportunities. ACM Transactions on Software Engineering and Methodology, ACM, 2025, DOI: 10.1145/3712190.
  4. M. Zohaib, A. Alsanad, A. A. Alhogail. Corrections to ‘Prioritizing DevOps Implementation Guidelines for Sustainable Software Projects’. IEEE Access, vol. 13, pp. 20246, 2025, DOI: 10.1109/ACCESS.2025.3533237.
  5. C. Ebert, G. Gallardo, J. Hernantes, N. Serrano. DevOps 2.0. IEEE Software, vol. 42, no. 2, pp. 24–31, Mar.–Apr. 2025. DOI: 10.1109/MS.2025.3525768.
  6. L. Prates, R. Pereira. DevSecOps Practices and Tools. International Journal of Information Security, vol. 24, 2025, DOI: 10.1007/s10207-024-00914-z
  7. D. Shin, J. Kim, I.W.A.J. Pawana, I. You. Enhancing Cloud-Native DevSecOps: A Zero Trust Approach for the Financial Sector. Computer Standards & Interfaces, vol. 93, 2025, Elsevier. DOI: 10.1016/j.csi.2025.103975.
  8. O. H. Plant, A. Aldea, J. van Hillegersberg. Improving DevOps Team Performance Through Context-Capability Coalignment: Towards a Profile for Public Sector Organizations. Information and Software Technology, Vol. 178, 2025, 107585. DOI: 10.1016/j.infsof.2024.107585.
  9. R. Amaro, R. Pereira, M. M. da Silva. Mapping DevOps Capabilities to the Software Life Cycle: A Systematic Literature Review. Information and Software Technology, vol. 177, 2025, Elsevier. DOI: 10.1016/j.infsof.2024.107583.
  10. S. Linsbauer, R. Hark, H. Koziolek, N. Eskandani. Runtime Orchestration of Distributed Control System Services with TOSCA, Kubernetes, and GitOps. 2024 IEEE 21st International Conference on Software Architecture Companion (ICSA-C), IEEE, DOI: 10.1109/ICSA-C63560.2024.00013.