اپلیکیشن اندرویدی فلشکارت آموزشی راهنمای عملی برای ساخت CI/CD Pipelineهای امن و قابل مقیاس
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره راهنمای عملی برای ساخت CI/CD Pipelineهای امن و قابل مقیاس
موضوع کلی: برنامه نویسی
موضوع میانی: گیتلب CI/CD (GitLab CI/CD)
📋 سرفصلهای دوره
- 1. مقدمهای بر DevOps و فرهنگ آن
- 2. CI/CD چیست؟ مفاهیم کلیدی (Continuous Integration, Delivery, Deployment)
- 3. چرا گیتلب CI/CD؟ مزایا و مقایسه با رقبا
- 4. مروری بر اکوسیستم گیتلب (Repository, Issues, MRs, CI/CD)
- 5. آشنایی با Git: مفاهیم ضروری برای CI/CD
- 6. اولین Pipeline: "Hello World" در گیتلب CI/CD
- 7. آشنایی با فایل `.gitlab-ci.yml`: ساختار و سینتکس پایه
- 8. مفهوم Runner: چیست و چگونه کار میکند؟
- 9. انواع Runnerها: Shared, Group, Specific
- 10. نصب و راهاندازی اولین Runner (Specific Runner)
- 11. ثبت (Register) کردن یک Runner در پروژه
- 12. تگها (Tags) در Runnerها و نحوه استفاده از آنها
- 13. مفهوم Job و Stage در Pipeline
- 14. تعریف Stages برای کنترل ترتیب اجرای Jobها
- 15. بررسی لاگها و خروجی یک Job
- 16. دستور `script`: اجرای دستورات در Job
- 17. دستورات `before_script` و `after_script`
- 18. متغیرها (Variables): تعریف و استفاده
- 19. انواع متغیرها: CI/CD Variables, File Variables
- 20. اولویت و دامنه (Scope) متغیرها
- 21. متغیرهای از پیش تعریفشده (Predefined Variables)
- 22. استفاده از `image` برای تعیین محیط اجرای Job
- 23. مفهوم Artifacts: ذخیره و به اشتراکگذاری فایل بین Jobها
- 24. تنظیم `paths` و `expire_in` برای Artifacts
- 25. کش (Cache): افزایش سرعت Pipeline
- 26. تفاوت Cache و Artifacts
- 27. پیکربندی `key` و `paths` برای Cache
- 28. دستور `rules`: کنترل پیشرفته زمان اجرای Jobها
- 29. استفاده از `rules:if` با متغیرها و شرایط
- 30. استفاده از `rules:changes` برای اجرای Job بر اساس تغییرات فایل
- 31. جایگزینهای قدیمی: `only` و `except`
- 32. استفاده از `allow_failure` برای Jobهای غیرحیاتی
- 33. تنظیم `timeout` برای Jobها
- 34. دستور `retry`: تلاش مجدد خودکار برای Jobهای ناموفق
- 35. استفاده از `include` برای سازماندهی فایلهای CI/CD
- 36. ساخت یک Pipeline برای پروژه Node.js
- 37. اجرای Unit Testها در Pipeline (مثال: Jest)
- 38. ساخت یک Pipeline برای پروژه پایتون (Python)
- 39. مدیریت وابستگیها با `requirements.txt` و Virtual Environments
- 40. اجرای Unit Testها با PyTest
- 41. ساخت یک Pipeline برای پروژه جاوا (Java) با Maven/Gradle
- 42. اجرای تستهای JUnit
- 43. تحلیل کیفیت کد با SonarQube در Pipeline
- 44. مفهوم Linter و اجرای آن در Pipeline (مثال: ESLint)
- 45. آشنایی با Docker در CI/CD
- 46. ساخت یک Docker Image در یک Job
- 47. پوش کردن Image به GitLab Container Registry
- 48. استفاده از سرویسها (Services) برای پایگاه داده در تستها
- 49. تستهای یکپارچهسازی (Integration Testing) در Pipeline
- 50. گزارشگیری از نتایج تست (Test Reports) و نمایش در Merge Request
- 51. مفهوم Environment در گیتلب
- 52. تعریف Environmentهای مختلف (Staging, Production)
- 53. استقرار دستی (Manual Deployment) با `when: manual`
- 54. استقرار خودکار در Merge به شاخه اصلی
- 55. استفاده از متغیرهای محافظتشده (Protected Variables) برای اطلاعات حساس
- 56. استقرار یک برنامه استاتیک روی GitLab Pages
- 57. استقرار روی سرور لینوکسی با استفاده از SSH و SCP
- 58. مدیریت کلیدهای SSH به صورت امن در CI/CD Variables
- 59. استقرار یک اپلیکیشن Docker روی سرور
- 60. آشنایی با استراتژیهای استقرار: Rolling, Blue-Green, Canary
- 61. پیادهسازی استقرار Blue-Green (مفهومی)
- 62. پیادهسازی استقرار Canary (مفهومی)
- 63. استفاده از Feature Flags برای کنترل انتشار قابلیتها
- 64. بازگردانی (Rollback) به نسخه قبلی با یک Job
- 65. متوقف کردن Environmentها (Stop Environments)
- 66. بهینهسازی سرعت Pipeline: تکنیکهای کلیدی
- 67. استفاده از `needs` برای ساخت Directed Acyclic Graphs (DAG)
- 68. مقایسه `needs` و `stages`
- 69. پایپلاینهای والد-فرزند (Parent-Child Pipelines)
- 70. پایپلاینهای داینامیک (Dynamic Child Pipelines)
- 71. استفاده از `extends` برای کاهش تکرار کد
- 72. استفاده از `!reference` tags برای استفاده مجدد از بخشهای کد
- 73. YAML Anchors: روشی دیگر برای جلوگیری از تکرار
- 74. پایپلاین برای Merge Requestها (Merge Request Pipelines)
- 75. پایپلاین برای Merge Trains
- 76. Trigger کردن Pipelineها از طریق API
- 77. استفاده از Trigger Tokens
- 78. پایپلاینهای چند پروژهای (Multi-project Pipelines)
- 79. کار با GitLab API در اسکریپتهای CI/CD
- 80. زمانبندی اجرای Pipelineها (Scheduled Pipelines)
- 81. مدیریت پیشرفته Cache: `cache:policy`
- 82. مقدمهای بر DevSecOps: امنیت در چرخه CI/CD
- 83. اسکن امنیتی کد ایستا (SAST - Static Application Security Testing)
- 84. اسکن امنیتی کد پویا (DAST - Dynamic Application Security Testing)
- 85. اسکن وابستگیها (Dependency Scanning) برای یافتن آسیبپذیریها
- 86. اسکن Containerها برای یافتن آسیبپذیریها (Container Scanning)
- 87. اسکن لایسنسها (License Scanning)
- 88. مدیریت اطلاعات محرمانه (Secret Management)
- 89. استفاده از GitLab CI/CD Variables برای Secrets (و محدودیتهای آن)
- 90. یکپارچهسازی با HashiCorp Vault برای مدیریت پیشرفته Secrets
- 91. بررسی Security Dashboard در گیتلب
- 92. معماری Runnerهای گیتلب و انواع Executorها
- 93. راهاندازی Runnerهای مقیاسپذیر با Docker Machine و Autoscaling
- 94. راهاندازی Runner روی کوبرنتیز (Kubernetes)
- 95. بهترین شیوهها برای مدیریت ناوگان Runnerها
- 96. مانیتورینگ Pipelineها و Runnerها با Prometheus
- 97. عیبیابی مشکلات رایج در Pipelineها (Debugging)
- 98. استفاده از قالبهای CI/CD گیتلب (CI/CD Templates)
- 99. الگوهای طراحی Pipeline برای پروژههای بزرگ
- 100. یکپارچهسازی با ابزارهای خارجی (مانند Jira یا Slack)
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.