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 نمره
منابع
- 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.
- 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.
- 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.
- 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.
- 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.
- L. Prates, R. Pereira. DevSecOps Practices and Tools. International Journal of Information Security, vol. 24, 2025, DOI: 10.1007/s10207-024-00914-z
- 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.
- 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.
- 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.
- 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.