اپلیکیشن اندرویدی فلشکارت آموزشی استفاده از GitLab CI/CD برای استقرارهای Blue/Green و Canary
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره استفاده از GitLab CI/CD برای استقرارهای Blue/Green و Canary
موضوع کلی: برنامه نویسی
موضوع میانی: گیتلب CI/CD (GitLab CI/CD)
📋 سرفصلهای دوره
- 1. مقدمهای بر DevOps و فرهنگ آن
- 2. CI/CD چیست و چرا اهمیت دارد؟
- 3. آشنایی با پلتفرم GitLab و اجزای آن
- 4. مروری بر GitLab CI/CD: مفاهیم اصلی
- 5. مفهوم Pipeline، Stage و Job
- 6. آشنایی با GitLab Runners و انواع آن
- 7. نصب و راهاندازی یک GitLab Runner اشتراکی (Shared)
- 8. نصب و راهاندازی یک GitLab Runner خاص (Specific)
- 9. اصول اولیه Git: Branching و Merging برای CI/CD
- 10. چرخه حیات یک Pipeline در GitLab
- 11. معرفی فایل `.gitlab-ci.yml`: ساختار و سینتکس پایه
- 12. ساخت اولین Pipeline: Hello World
- 13. تعریف Stages و ترتیب اجرای آنها
- 14. نوشتن اسکریپتهای ساده در Jobs
- 15. استفاده از `before_script` و `after_script`
- 16. متغیرهای از پیش تعریفشده (Predefined Variables)
- 17. تعریف متغیرهای سفارشی (Custom Variables) در `.gitlab-ci.yml`
- 18. تعریف متغیرها در تنظیمات پروژه GitLab (UI)
- 19. متغیرهای محافظتشده (Protected Variables)
- 20. مفهوم Artifacts و کاربرد آن در اشتراکگذاری نتایج بین Jobs
- 21. تنظیم انقضا برای Artifacts
- 22. استفاده از Cache برای بهینهسازی سرعت Pipeline
- 23. تفاوت کلیدی بین Cache و Artifacts
- 24. کلمات کلیدی `image` و `services` برای تعریف محیط اجرا
- 25. استفاده از Docker-in-Docker برای ساخت ایمیجهای کانتینری
- 26. معرفی GitLab Container Registry
- 27. ساخت و Push کردن یک Docker Image به GitLab Registry
- 28. استفاده از ایمیجهای خصوصی در Pipeline
- 29. کنترل اجرای Jobs با `when`: on_success, on_failure, always
- 30. اجرای دستی Jobs با `when: manual`
- 31. قوانین پیشرفتهتر برای کنترل Jobs: معرفی `rules`
- 32. استفاده از `rules:if` برای شرطهای پیچیده
- 33. ترکیب `rules` با متغیرها و وضعیت Git
- 34. مقایسه `rules` با `only/except` و زمان استفاده از هر کدام
- 35. مدیریت کدهای تکراری با `extends`
- 36. استفاده از YAML Anchors برای کاهش تکرار
- 37. سازماندهی Pipeline های بزرگ با `include`
- 38. اجرای تستهای واحد (Unit Tests) در یک Job
- 39. تولید و ذخیرهسازی گزارشهای تست (Test Reports)
- 40. تحلیل کیفیت کد با ابزارهایی مانند SonarQube
- 41. مفهوم Linting و اجرای آن در Pipeline
- 42. اسکن امنیتی استاتیک (SAST) در GitLab CI/CD
- 43. اسکن وابستگیها (Dependency Scanning)
- 44. اسکن امنیتی داینامیک (DAST)
- 45. مدیریت خطاها و تلاش مجدد خودکار (Retry)
- 46. تنظیم Timeout برای Jobs
- 47. استفاده از `needs` برای ساخت گراف اجرای Jobs (DAG)
- 48. اجرای موازی Jobs با `parallel`
- 49. استفاده از `interruptible` برای لغو Pipeline های قدیمی
- 50. معرفی Environments در GitLab
- 51. مفاهیم استقرار (Deployment): از FTP تا زیرساخت ابری
- 52. استراتژیهای استقرار: Rolling, Recreate, Blue/Green, Canary
- 53. پیکربندی Environments برای محیطهای مختلف (Staging, Production)
- 54. متغیرهای محدود به یک Environment خاص
- 55. محافظت از Environment ها و مجوزهای استقرار
- 56. استفاده از SSH برای استقرار روی سرورهای مجازی
- 57. مدیریت کلیدهای SSH به صورت امن در متغیرهای CI/CD
- 58. مقدمهای عمیق بر استقرار Blue/Green: مزایا و معایب
- 59. معماری یک استقرار Blue/Green: دو محیط موازی
- 60. پیادهسازی زیرساخت اولیه برای Blue/Green (مثال با Nginx)
- 61. نوشتن Job برای استقرار در محیط Blue (غیرفعال)
- 62. نوشتن اسکریپتهای Health Check برای تایید سلامت نسخه جدید
- 63. Job برای تغییر مسیر ترافیک: فعالسازی محیط Blue
- 64. استراتژیهای تعویض ترافیک: تغییر DNS
- 65. استراتژیهای تعویض ترافیک: استفاده از Reverse Proxy یا Load Balancer
- 66. پیادهسازی یک Pipeline کامل Blue/Green در `.gitlab-ci.yml`
- 67. Job دستی برای تایید نهایی و تعویض ترافیک
- 68. استراتژی Rollback در مدل Blue/Green: بازگشت به محیط Green
- 69. خودکارسازی Rollback در صورت شکست Health Check
- 70. پاکسازی محیط قدیمی پس از استقرار موفق
- 71. مقدمهای عمیق بر استقرار Canary: کاهش ریسک با انتشار تدریجی
- 72. معماری یک استقرار Canary: مسیریابی مبتنی بر وزن
- 73. پیادهسازی زیرساخت اولیه برای Canary (مثال با Kubernetes/Istio)
- 74. نوشتن Job برای استقرار نسخه Canary
- 75. پیکربندی Load Balancer برای ارسال درصد کمی از ترافیک به Canary
- 76. Job برای افزایش تدریجی ترافیک به نسخه Canary
- 77. مانیتورینگ نسخه Canary: بررسی خطاها و عملکرد
- 78. ادغام ابزارهای مانیتورینگ (مانند Prometheus) با Pipeline
- 79. تعریف معیارهای موفقیت برای استقرار Canary
- 80. پیادهسازی یک Pipeline کامل Canary در `.gitlab-ci.yml`
- 81. Job دستی برای تایید نهایی و هدایت ۱۰۰٪ ترافیک
- 82. استراتژی Rollback خودکار در مدل Canary
- 83. مقایسه عملی Blue/Green و Canary: کدام را انتخاب کنیم؟
- 84. معرفی Review Apps برای پیشنمایش تغییرات در Merge Request
- 85. پیادهسازی Review Apps با GitLab CI/CD
- 86. Pipeline های والد-فرزند (Parent-Child Pipelines)
- 87. ایجاد Pipeline های داینامیک (Dynamic Pipelines)
- 88. استفاده از GitLab API برای کنترل Pipeline ها
- 89. بهینهسازی پیشرفته Pipeline: بهترین روشهای Caching
- 90. مدیریت رازها (Secrets Management) با HashiCorp Vault
- 91. ادغام GitLab با Kubernetes (GitLab Agent for Kubernetes)
- 92. استقرار بر روی Kubernetes با استفاده از GitLab CI/CD
- 93. مروری بر GitLab Auto DevOps و کاربردهای آن
- 94. ساخت تمپلیتهای CI/CD برای استفاده در سطح گروه یا سازمان
- 95. استراتژیهای Branching موثر برای CI/CD (GitFlow vs. GitLab Flow)
- 96. مانیتورینگ و آنالیز عملکرد Pipeline ها (Pipeline Analytics)
- 97. امنیت Pipeline: جلوگیری از تزریق اسکریپت و دسترسیهای غیرمجاز
- 98. جمعبندی نهایی: ساخت یک پروژه کامل از ابتدا تا استقرار Canary
- 99. **مانیتورینگ و مشاهدهپذیری استقرارها: ابزارها و تکنیکها**
- 100. **امنیت در CI/CD: بهترین روشها و ابزارهای اسکن آسیبپذیری**
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.