DevOps مجموعهای از اقدامات است که توسعه نرمافزار (Dev) و عملیاتهای فناوری اطلاعات (Ops) است که همکاری، اتوماسیون و یکپارچگی بین توسعهدهندگان و تیمهای عملیاتی، را افزایش میدهد. هدف سادهسازی فرآیند تحویل نرمافزار، بهبود کیفیت و اطمینان از انتشار سریعتر و مطمئنتر از طریق اتوماسیون، یکپارچهسازی مداوم/تحویل پیوسته (CI/CD) و زیرساخت بهعنوان کد است.
یادگیری DevOps ضروری است زیرا به طور فزایندهای در صنعت نرمافزار و IT، برای بهبود بهرهوری، کاهش زمان تحویل نرمافزار به بازار و دستیابی به همکاری بهتر در توسعه و عملیات، مورد تقاضا است. آینده DevOps برای تازهواردان بسیار امیدوارکننده است، زیرا تقاضا برای مهندسان ماهر DevOps در پاسخ به نیاز روزافزون به اتوماسیون و سیستمهای مقیاسپذیر و کارآمد در استارتآپهای کوچک و شرکتهای بزرگ همچنان در حال رشد است.
فصل اول: مقدمهای بر DevOps
- درس اول: DevOps چیست؟
- درس دوم: اهمیت DevOps در توسعه نرمافزار مدرن
- درس سوم: فرهنگ و اصول DevOps
- درس چهارم: DevOps در قیاس با شیوههای سنتی توسعه نرمافزار
- درس پنجم: مروری بر چرخه عمر DevOps
فصل دوم: کنترل نسخه در DevOps
- درس اول: کنترل نسخه چیست و چرا در DevOps ضروری است؟
- درس دوم: انواع سیستمهای کنترل نسخه (VCS)
- درس سوم: Git در DevOps | مقدمه
- درس چهارم: گردش کار پیشرفته Git در DevOps
- درس پنجم: ادغام کنترل نسخه با خطوط لوله CI/CD
فصل سوم: کانتینرسازی
- درس اول: کانتینرسازی (Containerization) چیست؟
- درس دوم: مقدمهای بر داکر (Docker)
- درس سوم: Kubernetes | ارکستراسیون کانتینرها
- درس چهارم: موضوعات پیشرفته Docker و Kubernetes
فصل چهارم: ادغام پیوسته (CI)
- درس اول: ادغام پیوسته چیست؟
- درس دوم: مزایای CI در DevOps
- درس سوم: راه اندازی خط لوله CI (با استفاده از Jenkins، Travis CI، GitHub Actions، و غیره)
- درس چهارم: یکپارچهسازی تست واحد و ابزارهای کیفیت کد در CI
- درس پنجم: بهترین روشها برای CI در DevOps
فصل پنجم: استقرار/تحویل مداوم (CD)
- درس اول: استقرار/تحویل مداوم چیست؟
- درس دوم: تفاوت بین استقرار مداوم و تحویل مداوم
- درس سوم: راه اندازی یک خط لوله CD (با استفاده از Jenkins، GitLab CI/CD، Azure Pipelines)
- درس چهارم: تست خودکار در خطوط لوله CD
- درس پنجم: بهترین شیوهها و استراتژیهای CD
فصل ششم: مدیریت پیکربندی
- درس اول: مدیریت پیکربندی چیست؟
- درس دوم: مقدمهای بر Ansible
- درس سوم: مقدمهای بر Chef
- درس چهارم: مقدمهای بر Puppet
- درس پنجم: مقایسه ابزارهای مدیریت پیکربندی (Ansible، Chef، Puppet)
فصل هفتم: نظارت و ثبت گزارش
- درس اول: اهمیت نظارت در DevOps
- درس دوم: مقدمهای بر Prometheus و Grafana برای نظارت
- درس سوم: تجمیع گزارش با ELK Stack (Elasticsearch و Logstash و Kibana)
- درس چهارم: گزارشگیری متمرکز با Fluentd و Splunk
- درس پنجم: نظارت زمان-واقعی (Real-time) با استفاده از Datadog و New Relic
فصل هشتم: زیرساخت ابری و DevOps
- درس اول: مقدمهای بر رایانش ابری
- درس دوم: پلتفرمهای ابری برای دواپس (AWS, Azure, Google Cloud)
- درس سوم: زیرساخت به عنوان کد (IaC) با Terraform
- درس چهارم: مدیریت منابع ابری با AWS CloudFormation
- درس پنجم: ابزارهای Cloud-Native برای دواپس (EKS, AKS, GKE)
فصل نهم: امنیت در دواپس (DevSecOps)
- درس اول: DevSecOps چیست؟
- درس دوم: ایمنسازی خط لوله CI/CD
- درس سوم: امنیت زیرساخت با Terraform و AWS
- درس چهارم: مدیریت رمزها با HashiCorp Vault
- درس پنجم: انطباق و حسابرسی در DevOps
فصل دهم: ابزارهای همکاری و ارتباط در DevOps
- درس اول: نقش همکاری در DevOps
- درس دوم: مقدمهای بر ChatOps (Slack، Microsoft Teams و غیره)
- درس سوم: کنترل نسخه و ابزارهای همکاری کد (GitHub، GitLab، Bitbucket)
- درس چهارم: همکاری برای خطوط لوله CI/CD با Jenkins و GitLab
- درس پنجم: پیگیری مسائل و مدیریت پروژه چابک (JIRA، Trello)
فصل یازدهم: تمرینهای پیشرفته DevOps
- درس اول: استراتژیهای استقرار Blue-Green
- درس دوم: نسخههای Canary در خطوط لوله CI/CD
- درس سوم: معماری میکروسرویسها و DevOps
- درس چهارم: مقیاس خودکار و تعادل کار در Kubernetes
- درس پنجم: بازیابی رخدادهای مخرب و دسترسی سریع در محیطهای DevOps
فصل دوازدهم: عیبیابی و اشکالزدایی در DevOps
- درس اول: مشکلات و راهحلهای رایج DevOps
- درس دوم: اشکالزدایی خطوط لوله CI/CD
- درس سوم: تکنیکهای عیبیابی Kubernetes
- درس چهارم: اشکالزدایی گزارشها با ELK و Splunk
- درس پنجم: استفاده از Prometheus و Grafana برای اشکالزدایی
فصل سیزدهم: مطالعات موردی و کاربردهای دنیای واقعی
- درس اول: DevOps در پروژههای نرمافزاری دنیای واقعی
- درس دوم: DevOps برای برنامههای کاربردی در مقیاس بزرگ
- درس سوم: مطالعه موردی | پیادهسازی DevOps برای یک برنامه وب
- درس چهارم: DevOps در پروژههای منبع باز
- درس پنجم: درسهای آموخته شده از سناریوهای شکست در DevOps