مسیر یادگیری دواپس

نقشه راه یادگیری PackOps

از اولین فرمان لینوکس تا تحویل یک سرویس واقعی

اگر تازه شروع کرده‌ای، از مرحله ۱ جلو برو. اگر تجربه داری، از اولین مرحله‌ای شروع کن که هنوز نمی‌توانی خروجی عملی آن را انجام بدهی.

دوره مبانی دواپس پکاپس
مقصد این مسیر: ساخت، انتشار و نگهداری یک سرویسدر پایان، یک نمونه‌کار قابل اجرا با استقرار خودکار، پایش و راهنمای بازیابی خواهی داشت.

از کجا شروع کنم؟

کدام توصیف به تجربه تو نزدیک‌تر است؟
پیشنهاد شروع: مرحله ۱، ذهنیت دواپس

ابتدا مسیر تحویل نرم‌افزار را بشناس؛ بعد لینوکس و شبکه را با تمرین یاد بگیر. اولین کار امروز: یک ماشین لینوکسی آزمایشگاهی آماده کن.

شروع از مرحله ۱ ←
۱شروع از صفر

ذهنیت دواپس و مسیر تحویل نرم‌افزار

بدانی دواپس چه مسئله‌ای را حل می‌کند.

چه یاد بگیرم؟

همکاری توسعه و عملیات، بازخورد کوتاه، مسئولیت مشترک، جریان تحویل و مفهوم CI/CD.

چه بسازم؟

مسیر یک تغییر از درخواست کاربر تا انتشار را رسم کن و سه نقطه اتلاف یا خطا را مشخص کن.

چه زمانی بروم مرحله بعد؟

می‌توانی نقش تست، استقرار، پایش و بازخورد را با مثال توضیح بدهی.

۲پس از مرحله ۱

لینوکس و شبکه؛ پایه کار عملی

یک سرویس را روی یک ماشین لینوکسی اجرا و عیب‌یابی کنی.

چه یاد بگیرم؟

ترمینال، فایل و مجوز، کاربر، پردازش، سرویس و لاگ؛ سپس IP، DNS، HTTP، TLS و پورت‌ها.

چه بسازم؟

در یک ماشین آزمایشگاهی وب‌سرور راه‌اندازی کن؛ یک خرابی DNS یا پورت را ایجاد و علتش را پیدا کن.

چه زمانی بروم مرحله بعد؟

با SSH وصل می‌شوی، لاگ می‌خوانی و فرق خطای سرویس، شبکه و نام دامنه را تشخیص می‌دهی.

۳پس از تسلط بر ترمینال

Git و اسکریپت‌نویسی

تغییراتت قابل پیگیری و کارهای تکراری قابل اجرا شوند.

چه یاد بگیرم؟

Commit، Branch، Merge و Pull Request؛ Bash و سپس مبانی Python، متغیر، شرط، حلقه و مدیریت خطا.

چه بسازم؟

اسکریپت بررسی سلامت سرویس بنویس؛ آن را در مخزن Git بگذار و تغییرات را از طریق یک شاخه جدا ادغام کن.

چه زمانی بروم مرحله بعد؟

تعارض ساده Git را حل می‌کنی و اسکریپتت در خطا، خروجی و کد وضعیت مناسب می‌دهد.

۴پس از مراحل ۲ و ۳

Docker و اجرای قابل تکرار

برنامه و وابستگی‌هایش را یکسان اجرا کنی.

چه یاد بگیرم؟

Image، Container، Dockerfile، Registry، Volume، Network و Compose؛ تفاوت داده پایدار و کانتینر.

چه بسازم؟

یک برنامه نمونه را همراه دیتابیس با Compose اجرا کن؛ داده باید بعد از ساخت مجدد کانتینر باقی بماند.

چه زمانی بروم مرحله بعد؟

Image می‌سازی، لاگ و شبکه کانتینر را بررسی می‌کنی و هیچ رمز یا کلیدی داخل Image قرار نمی‌دهی.

۵پس از اجرای برنامه با Docker

CI/CD؛ از تغییر کد تا انتشار

تست، ساخت و انتشار را به یک جریان خودکار وصل کنی.

چه یاد بگیرم؟

یک ابزار مانند GitLab CI یا GitHub Actions؛ Pipeline، Artifact، Registry، محیط تست، متغیرهای محرمانه و Rollback.

چه بسازم؟

با هر تغییر، تست و ساخت Image اجرا شود؛ نسخه تأییدشده به محیط آزمایشی برسد و امکان بازگشت داشته باشد.

چه زمانی بروم مرحله بعد؟

Pipeline خراب را عیب‌یابی می‌کنی و انتشار ناموفق را بدون از دست دادن داده برمی‌گردانی.

۶پس از لینوکس، شبکه و Git

زیرساخت به‌صورت کد و مبانی Cloud

محیطت را از روی کد دوباره بسازی.

چه یاد بگیرم؟

Compute، Network، Storage و IAM در یک بستر؛ Terraform برای تعریف زیرساخت و Ansible برای تنظیم سیستم، مدیریت State و بازبینی تغییرات.

چه بسازم؟

یک محیط آزمایشی بساز و تنظیمات سرویس را خودکار اعمال کن؛ مراحل بازسازی و حذف منابع را مستند کن.

چه زمانی بروم مرحله بعد؟

قبل از اعمال تغییر، اثر آن را می‌خوانی؛ اجرای مجدد تنظیمات بی‌دلیل چیزی را تغییر نمی‌دهد و هزینه منابع را می‌شناسی.

۷پس از Docker و مبانی شبکه

Kubernetes؛ مدیریت چند سرویس

یک برنامه کانتینری را در کلاستر مستقر و مدیریت کنی.

چه یاد بگیرم؟

Pod، Deployment، Service، ConfigMap، Secret، Storage، Health Check، محدودیت منابع و به‌روزرسانی تدریجی.

چه بسازم؟

برنامه قبلی را در یک کلاستر آزمایشی اجرا کن؛ تعداد نمونه‌ها را تغییر بده و یک انتشار معیوب را برگردان.

چه زمانی بروم مرحله بعد؟

با لاگ، رویداد و وضعیت منابع، خرابی یک Pod را پیدا می‌کنی و مسیر دسترسی به سرویس را توضیح می‌دهی.

۸پایش پایه از مرحله ۲؛ تکمیل پس از استقرار

پایش، امنیت و نگهداری سرویس

قبل و بعد از خرابی، وضعیت سرویس را بفهمی و بازیابی کنی.

چه یاد بگیرم؟

Metric، Log و Trace؛ Prometheus و Grafana، هشدار قابل اقدام، SLI/SLO، دسترسی حداقلی، مدیریت Secret، پشتیبان‌گیری و گزارش رخداد.

چه بسازم؟

برای سرویس داشبورد و هشدار بساز؛ یک خطای آزمایشی ایجاد کن، راهنمای رفع آن را بنویس و بازیابی Backup را امتحان کن.

چه زمانی بروم مرحله بعد؟

از هشدار به علت خرابی می‌رسی، بازیابی را عملاً آزموده‌ای و اثر رخداد بر کاربر را توضیح می‌دهی.

۹پس از تکمیل مراحل عملی

پروژه نهایی و نمونه‌کار قابل ارائه

یک سرویس را از مخزن کد تا بهره‌برداری تحویل بدهی.

چه یاد بگیرم؟

یکپارچه‌سازی آموخته‌ها، مستندسازی تصمیم‌ها، هزینه، محدودیت‌ها، امنیت و تمرین ارائه فنی.

چه بسازم؟

مخزن برنامه + Dockerfile + Pipeline + تعریف زیرساخت + استقرار + داشبورد + راهنمای Rollback و بازیابی را در یک پروژه جمع کن.

چه زمانی بروم مرحله بعد؟

فرد دیگری با README تو محیط را بازسازی می‌کند؛ تو هم انتشار، خرابی و بازیابی را در یک دموی کوتاه نشان می‌دهی.

مقصد اول تو

یک پروژه که بتوانی نشانش بدهی

یک برنامه ساده با دیتابیس انتخاب کن و همین پروژه را در طول مسیر کامل کن. لازم نیست در هر مرحله از صفر پروژه تازه بسازی.

  • کد و README روشن؛ نصب و اجرای پروژه برای فرد دیگری ممکن باشد.
  • تست و ساخت خودکار؛ یک تغییر از Git تا محیط آزمایشی منتشر شود.
  • زیرساخت و تنظیمات قابل بازسازی؛ رمزها خارج از مخزن نگهداری شوند.
  • داشبورد، هشدار و راهنمای رفع خرابی؛ یک رخداد آزمایشی را بررسی کرده باشی.
  • Rollback و بازیابی داده؛ نتیجه آزمایش و محدودیت‌ها ثبت شده باشد.

بعد از این مسیر به کجا بروم؟

برای زیرساخت و کلاستر، Kubernetes و Cloud را عمیق‌تر کن. برای پایداری سرویس، سراغ SRE و Observability برو. برای تجربه توسعه‌دهنده، Platform Engineering و سلف‌سرویس داخلی را دنبال کن.

چه زمانی برای فرصت شغلی اقدام کنم؟

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

لینک دوره‌های مرتبط برای بررسی سرفصل‌هاست. پیشرفت فقط در همین مرورگر ذخیره می‌شود.

رودمپ گرافیکی پکاپس

نمای تصویری ابزارها و دوره‌های مرتبط با مسیر یادگیری دواپس