آموزش پایتون برای DevOps: تسلط بر اتوماسیون در دنیای واقعی - آخرین آپدیت

دانلود Python for DevOps: Mastering Real-World Automation

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: تسلط بر پایتون برای DevOps و CI/CD با بیش از ۲۳ ساعت آموزش، ۳۵ کوییز و ۲۵ آزمایشگاه کدنویسی برای ساخت و ارائه ابزارهای DevOps. یادگیری مفاهیم بنیادی پایتون، از متغیرها و ساختارهای داده تا توابع و کلاس‌ها. نوشتن کدهای بهینه و زیبا با استفاده از ویژگی‌های پیشرفته مانند Generators و Decorators. پیاده‌سازی مدیریت خطای قدرتمند با بلوک‌های try/except و استثناهای سفارشی برای ساخت اسکریپت‌های مقاوم. ادغام لاگینگ ساختاریافته JSON در اپلیکیشن‌ها برای بهبود نظارت و عیب‌یابی. تجزیه، پردازش و تولید فرمت‌های داده ضروری مانند JSON، YAML و CSV با اطمینان کامل. اتوماسیون مدیریت فایل‌ها و دایرکتوری‌ها با استفاده از کتابخانه‌های مدرن pathlib و shutil. اجرای امن دستورات سیستم خارجی و دریافت خروجی آن‌ها با استفاده از ماژول subprocess. اتوماسیون تعاملات REST API از طریق ارسال درخواست‌های GET/POST و مدیریت احراز هویت با کتابخانه requests. ساخت کلاینت‌های API مقاوم که تایم-اوت‌ها را مدیریت کرده و منطق تلاش مجدد (Retry) با عقب‌نشینی نمایی را پیاده می‌کنند. نوشتن و اجرای تست‌های واحد (Unit Tests) حرفه‌ای با استفاده از فریم‌ورک قدرتمند pytest. استفاده از fixtures و پارامتری‌سازی برای نوشتن تست‌های تمیز، قابل استفاده مجدد و داده‌محور. جداسازی وابستگی‌ها و تست تعاملات پیچیده با ایجاد و پیکربندی Mockها. ساختاربندی حرفه‌ای کدها با استفاده از ماژول‌ها و پکیج‌های پایتون برای قابلیت نگهداری بهتر. ساخت و توزیع ابزارهای خط فرمان (CLI) قابل نصب با استفاده از pyproject.toml و entry points. پیش نیازها: آشنایی با مفاهیم پایه برنامه‌نویسی (متغیرها، حلقه‌ها، توابع) در هر زبان اسکریپت‌نویسی یا برنامه‌نویسی. تجربه پایه در استفاده از ترمینال خط فرمان برای پیمایش دایرکتوری‌ها و اجرای دستورات. درک سطح بالای مفاهیم رایج DevOps مانند APIها، CI/CD و اتوماسیون زیرساخت. توانایی نصب نرم‌افزار روی کامپیوتر، مانند خود پایتون و پکیج‌های شخص ثالث با استفاده از pip. تمایل به فراتر رفتن از اسکریپت‌های ساده شل و ساخت اتوماسیون‌های مقاوم، قابل نگهداری و آماده تولید (Production-ready). آشنایی اولیه با git برای کلون کردن مخزن دوره و پیمایش شاخه‌های مختلف.

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

چرا یادگیری پایتون برای DevOps ضروری است؟

پایتون به زبان جهانی برای اتوماسیون زیرساخت تبدیل شده است و دلیل آن روشن است. تسلط بر آن گامی حیاتی برای هر متخصص DevOps مدرن است. به این دلایل:

  • اتوماسیون همه چیز: کارهای تکراری و دستی را متوقف کنید! با پایتون، می‌توانید تعاملات با هر REST API را اتوماتیک کنید، منابع ابری را مدیریت کنید، پیکربندی‌ها را به‌روزرسانی کنید و خط لوله‌های استقرار پیچیده را مدیریت نمایید. این دوره به شما می‌آموزد چگونه اسکریپت‌هایی بنویسید که کارها را برای شما انجام دهند.

  • تبدیل شدن به مهندسی چندمنظوره و ارزشمندتر: پایتون مانند «چسبی» است که سیستم‌های مختلف را به هم متصل می‌کند. با یادگیری اسکریپت‌نویسی برای تعامل بین ابزارهای CI/CD، پلتفرم‌های مانیتورینگ و سرویس‌های ابری، شما به فردی تبدیل می‌شوید که چالش‌های پیچیده یکپارچه‌سازی را حل می‌کند و بخشی جدانشدنی از تیم خود می‌شوید.

  • نوشتن ابزارهای مقاوم و قابل نگهداری: یک اسکریپت ساده ممکن است یک بار کار کند، اما اتوماسیون حرفه‌ای باید قابل اعتماد باشد. این دوره فراتر از مبانی می‌رود تا به شما بیاموزد چگونه کدی بنویسید که شامل مدیریت خطای مناسب، لاگینگ و تست‌های خودکار باشد تا ابزارهای ساخته شده قابل اعتماد و به‌راحتی قابل نگهداری باشند.

  • ارتقای مسیر شغلی: تسلط بر اتوماسیون با پایتون یکی از پرتقاضاترین مهارت‌ها در صنعت تکنولوژی است. افزودن این مهارت‌ها به رزومه شما، شما را به کاندیدای جذاب‌تری برای نقش‌های جدید، ترفیعات و فرصت‌های شغلی با درآمد بالاتر تبدیل می‌کند.

با سرمایه‌گذاری در این دوره، شما فقط یک زبان نمی‌آموزید؛ بلکه یک جعبه ابزار قدرتمند برای حل کارآمد و قابل اعتماد مشکلات واقعی DevOps به دست می‌آورید.

چرا این دوره را انتخاب کنید؟

این دوره از پایه با تمرکز بر DevOps ساخته شده است و ترکیبی منحصر‌به‌فرد از مفاهیم اصلی پایتون و کاربرد عملی آن‌ها در محیط‌های زیرساختی ارائه می‌دهد.

  • رویکرد کاربردی و متمرکز بر DevOps: ما اپلیکیشن‌های وب نمی‌سازیم و علوم داده‌ای انجام نمی‌دهیم. هر درس، مثال و تمرین متناسب با دنیای DevOps است. شما با فایل‌ها، APIها، دستورات سیستم و فرمت‌های داده‌ای مانند JSON و YAML کار خواهید کرد - چیزهایی که هر روز از آن‌ها استفاده می‌کنید.

  • تمرین، تمرین و باز هم تمرین: ما از بحث‌های تئوری فراتر رفته و عمیقاً در کدنویسی هر آنچه بحث می‌کنیم غوطه‌ور می‌شویم. علاوه بر ویدیوها، دوره مملو از کوییزها و آزمایشگاه‌های کدنویسی است که به شما کمک می‌کند هر مفهوم را تثبیت کنید!

  • فراتر از مبانی: این فقط یک دوره «یادگیری سینتکس پایتون» نیست. ما عمیقاً به ویژگی‌های پیشرفته و قدرتمندی مانند Generators برای پردازش بهینه داده‌ها در حافظه، Decorators برای افزودن قابلیت‌های قابل استفاده مجدد، Context Managers برای مدیریت امن منابع، Logging برای ثبت وقایع در سطح تولید و بسیاری موارد دیگر می‌پردازیم! شما یاد می‌گیرید کدی بنویسید که نه تنها کاربردی، بلکه زیبا و بهینه باشد.

  • تمرکز بر کدهای آماده تولید (Production-Ready): بیاموزید چگونه اتوماسیونی بسازید که در محیط عملیاتی به آن اعتماد کنید. ما بخش‌های کاملی را به موضوعات حیاتی مانند لاگینگ ساختاریافته، مدیریت پیشرفته استثناها، پیاده‌سازی تلاش‌های مجدد با عقب‌نشینی نمایی و مهم‌تر از همه، تست خودکار با pytest اختصاص داده‌ایم.

در این دوره چه مهارت‌هایی کسب خواهید کرد؟

با طی کردن این دوره، مجموعه‌ای جامع و ارزشمند از مهارت‌ها را به دست خواهید آورد، از جمله:

  • تسلط بر مبانی پایتون: ایجاد یک پایه محکم در سینتکس پایتون، ساختارهای داده (لیست‌ها، دیکشنری‌ها، مجموعه‌ها)، جریان کنترل، توابع و اصول شیء‌گرا.

  • بهره‌گیری از ویژگی‌های پیشرفته پایتون: استفاده از قدرت Generators برای خط لوله‌های داده بهینه و Decorators برای افزودن قابلیت‌های عرضی مانند لاگینگ و تلاش مجدد بدون شلوغ کردن کد.

  • نوشتن اسکریپت‌های مقاوم و صنعتی: پیاده‌سازی لاگینگ ساختاریافته برای نظارت بهتر و طراحی منطق مدیریت استثنا برای اینکه اتوماسیون شما در صورت بروز خطا، به صورت کنترل شده متوقف شود.

  • تضمین قابلیت اطمینان با تست خودکار: تسلط بر pytest برای نوشتن تست‌های واحد موثر. شما همه چیز را از تأکیدات (Assertions) پایه و Fixtures تا تکنیک‌های پیشرفته مانند پارامتری‌سازی و جداسازی وابستگی‌ها با Mocks یاد می‌گیرید.

  • اتوماسیون عملیات سیستم و فایل: مدیریت مطمئن سیستم فایل با استفاده از pathlib مدرن و اجرای امن دستورات خارجی با ماژول subprocess.

  • تعامل با هر REST API: تسلط بر کتابخانه requests برای ارسال درخواست‌های GET و POST، مدیریت روش‌های مختلف احراز هویت (Basic, Token) و ساخت کلاینت‌های مقاومی که تایم-اوت‌ها و تلاش‌های مجدد را مدیریت می‌کنند.

  • مدیریت فرمت‌های ضروری داده: تجزیه، پردازش و تولید روان فرمت‌های داده‌ای که موتور DevOps هستند: JSON، YAML و CSV.

  • ساخت و بسته‌بندی ابزارهای حرفه‌ای: ساختاردهی پروژه‌های پایتون با ماژول‌ها و پکیج‌ها و استفاده از pyproject.toml برای ایجاد و توزیع ابزارهای خط فرمان قابل نصب.

  • ساخت جریان‌های کاری کامل CI/CD برای پروژه‌های پایتون: بهره‌گیری از GitHub Actions برای ساخت خط لوله‌های CI/CD کاملاً خودکار جهت انتشار کتابخانه‌های پایتون در PyPI.

آماده شوید تا توانمندی‌های خود را متحول کرده و مسیر شغلی خود را ارتقا دهید. بیایید با هم ساخت اتوماسیون‌های قدرتمند DevOps را شروع کنیم!


سرفصل ها و درس ها

خوش‌آمدگویی و معرفی Welcome and Introduction

  • خوش آمدید به دوره! Welcome to the course!

  • چگونه بیشترین بهره را از این دوره ببریم How to make the most of this course

  • همسو کردن انتظارات Aligning expectations

  • در ارتباط بمانیم Let's Stay Connected

  • منابع دوره Course resources

راه‌اندازی و اجرای پایتون Setting Up and Running Python

  • مرور کلی بخش Section overview

  • چرا پایتون برای DevOps؟ Why Python for DevOps?

  • نصب و پیکربندی پایتون Installing and configuring Python

  • مدیریت نسخه‌های مختلف پایتون با pyenv Managing multiple Python installations with pyenv

  • مرور کلی محیط‌های مجازی (Virtual Environments) Overview of virtual environments

  • ایجاد اولین محیط مجازی Creating our first virtual environment

  • مدیریت محیط‌های مجازی متعدد Managing multiple virtual environments

  • مهم! نصب پایتون 3.12.9 و ایجاد venv برای دوره IMPORTANT! Installing Python 3.12.9 and creating the venv for the course

  • استفاده از Python REPL The Python REPL

  • نوشتن و اجرای فایل‌های پایتون Writing and running Python files

  • استفاده از JupyterLab برای اجرای تعاملی کد Using JupyterLab for interactive code execution

مبانی پایتون Python Fundamentals

  • مرور کلی بخش Section overview

  • متغیرها Variables

  • کامنت‌ها Comments

  • اعداد Numbers

  • رشته‌ها (Strings) Strings

  • تمرین عملی: محاسبه فضای دیسک Hands-on: Disk usage calculation

  • مفاهیم هسته پایتون Python Core Concepts

  • آشنایی با لیست‌ها Introduction to lists

  • تغییر محتویات لیست Modifying list contents

  • تمرین عملی: کار با لیست‌ها Hands-on: Practicing working with lists

  • تاپل‌ها (Tuples) Tuples

  • آشنایی با مجموعه‌ها (Sets) Introduction to sets

  • عملیات روی مجموعه‌ها Set operations

  • تمرین عملی: کار با مجموعه‌ها Hands-on: Practicing working with sets

  • تفاوت بین لیست، تاپل و مجموعه Differentiating between lists, tuples, and sets

  • آشنایی با دیکشنری‌ها Introduction to dictionaries

  • عملیات روی دیکشنری Dictionary operations

  • تمرین عملی: کار با دیکشنری‌ها Hands-on: Practicing working with dictionaries

  • کلکسیون‌های داده در پایتون Python Data Collections

  • آشنایی با اجرای شرطی کد Introduction to conditional code execution

  • دستورات if/elif/else If/elif/else statements

  • بندهای حفاظتی (Guard clauses) Guard clauses

  • حلقه‌های for و while For and while loops

  • دستورات break و continue Break and continue statements

  • آشنایی با List Comprehension Introduction to list comprehension

  • کامپرهنشن برای لیست، مجموعه و دیکشنری List, set, and dictionary comprehension

  • جریان کنترل و تکرار مختصر Control Flow and Concise Iteration

  • اعتبار‌سنج پیکربندی Configuration Validator

  • آشنایی با توابع Introduction to functions

  • تعریف توابع و بازگرداندن مقادیر Defining functions and returning values

  • پارامترها و آرگومان‌ها Parameters and arguments

  • داک‌استرینگ‌ها (Docstrings) Docstrings

  • تمرین عملی: کار با توابع Hands-on: Practicing working with functions

  • تابع range The range function

  • توابع Enumerate و ZIP Enumerate and ZIP functions

  • توابع و ابزارهای تکرار (Iteration) Functions and Iteration Tools

  • تجزیه‌کننده خطوط لاگ Log Line Parser

  • گزارشگر موجودی سرور Server Inventory Reporter

  • آشنایی با کلاس‌ها Introduction to classes

  • متدهای کلاس Class methods

  • وراثت (Inheritance) Inheritance

  • برنامه‌نویسی شیء‌گرا در پایتون Object-Oriented Programming in Python

  • مدیر استقرار شیء‌گرا Object-Oriented Deployment Manager

  • آشنایی با سینتکس *args و **kwargs Introduction to *args and **kwargs syntax

  • ترتیب در آرگومان‌های *args و **kwargs Order in *args and **kwargs arguments

  • فراخوانی توابع: *args و **kwargs Calling functions: *args and **kwargs

  • کار با آرگومان‌های انعطاف‌پذیر Working with flexible arguments

  • تگ‌زن منابع انعطاف‌پذیر Flexible Resource Tagger

  • توابع Lambda Lambda functions

  • مرتب‌سازی کلکسیون‌ها با lambda Sorting collections with lambda

  • تبدیل کلکسیون‌ها با lambda Transforming collections with lambda

  • فیلتر کردن کلکسیون‌ها با lambda Filtering collections with lambda

ژنراتورها و دکوراتورها Generators and Decorators

  • مرور کلی بخش Section overview

  • پروتکل تکرار (Iteration Protocol) The iteration protocol

  • دموی کد Iterator و Iterable Iterator and iterable code demo

  • سینتکس Generator Generator syntax

  • دستور yield The yield statement

  • توقف و از سرگیری اجرای ژنراتور Pausing and resuming generator execution

  • حالت (State) در ژنراتورها State in generators

  • اتمام ژنراتور (Exhaustion) Generator exhaustion

  • تفاوت دستورات return و yield Return vs. yield statements

  • مبانی ژنراتورها Generator Fundamentals

  • تمرین عملی: کار با ژنراتورها Hands-on: Practicing working with generators

  • ژنراتور خطوط فایل لاگ Log File Line Generator

  • کدنویسی خط لوله‌های تنبل (Lazy Pipelines) Coding lazy pipelines

  • ساخت خط لوله‌های تنبل با ژنراتورها Building Lazy Pipelines with Generators

  • خط لوله پردازش فایل پیکربندی Configuration File Processing Pipeline

  • توابع به عنوان شهروند درجه یک Functions as first-class citizens

  • توابع کارخانه‌ای (Factory Functions) Factory functions

  • توابع در ساختارهای داده Functions in data structures

  • آشنایی با دکوراتورها Introduction to decorators

  • آرگومان‌ها در دکوراتورها Arguments in decorators

  • مدیریت مقادیر بازگشتی در دکوراتورها Handling return values in decorators

  • مبانی دکوراتورها و بهترین روش‌ها Decorator Fundamentals and Best Practices

  • پاک‌ساز آرگومان‌ها (Argument Sanitizer) Argument sanitizer

  • مدیریت استثناها در دکوراتورها Handling exceptions in decorators

  • دکوراتور functools.wraps The functools.wraps decorator

  • کارخانه دکوراتور کنترل دسترسی مبتنی بر نقش (RBAC) Role-Based Access Control (RBAC) Decorator Factory

  • پشته‌سازی دکوراتورها (Stacking) Stacking decorators

  • روش‌های پیشرفته دکوراتور Advanced Decorator Practices

مدیریت خطا و Context Managerها Error Handling and Context Managers

  • مقدمه بخش Section introduction

  • سینتکس استثناها (Exceptions) Exceptions syntax

  • تفکر مبتنی بر استثناها Thinking in exceptions

  • بررسی استثناهای داخلی پایتون Inspecting built-in exceptions

  • استثناهای OS و KeyError OS and KeyError exceptions

  • استثناهای Index, Value و TypeError Index, Value, and TypeError exceptions

  • استثناهای Attribute و ImportError Attribute and ImportError exceptions

  • مدیریت استثنا در پایتون: مبانی Python Exception Handling: The Fundamentals

  • دستور raise The raise statement

  • برانگیختن استثناها Raising exceptions

  • اعتبارسنجی ورودی‌ها برای تگ‌زن منابع Validating Inputs for Flexible Resource Tagger

  • اعتبارسنجی ورودی‌ها برای مدیر استقرار شیء‌گرا Validating Inputs for Object-Oriented Deployment Manager

  • تعریف استثناهای سفارشی Defining custom exceptions

  • افزودن کانتکست به استثناهای سفارشی Adding context to custom exceptions

  • تعریف و برانگیختن استثناهای سفارشی Raising and Defining Custom Exceptions

  • دکوراتور RBAC مقاوم با استثناهای سفارشی Robust RBAC Decorator with Custom Exceptions

  • دکوراتور Retry پیشرفته با عقب‌نشینی نمایی و Jitter Advanced Retry Decorator with Exponential Backoff and Jitter

  • پاک‌سازی دستی کانتکست Manual context cleanup

  • پروتکل Context Manager The context manager protocol

  • مدیریت کانتکست و دستور "with" Context managers and the "with" statement

  • تعریف Context Managerهای سفارشی Defining custom context managers

  • دکوراتور contextmanager The contextmanager decorator

  • مدیریت منابع با Context Managerها Resource Management with Context Managers

لاگینگ برای عملیات Logging for Operations

  • مقدمه بخش Section introduction

  • چرا لاگینگ؟ Why logging?

  • آشنایی با ساختار لاگینگ Introduction to logging anatomy

  • تمرین عملی: ساختار لاگینگ Hands-on: Practicing logging anatomy

  • سطوح لاگ (Log Levels) Log levels

  • لاگینگ در پایتون: مفاهیم هسته و مکانیسم‌ها Python Logging: Core Concepts and Mechanics

  • لاگر فعالیت‌های اسکریپت پایه Basic Script Activity Logger

  • هندلرهای فایل (File Handlers) File handlers

  • چرخش فایل‌های لاگ بر اساس اندازه Rotating log files by size

  • چرخش فایل‌های لاگ بر اساس زمان Rotating log files by time

  • چرخ‌کننده لاگ برای سرویس مانیتورینگ Log Rotator for a Monitoring Service

  • لاگینگ ساختاریافته با JSON Structured logging with JSON

  • فیلدهای اضافی و استثناها در لاگینگ ساختاریافته Extra fields and exceptions in structured logging

  • لاگینگ کاربردی: هندلرهای فایل و خروجی JSON Practical Logging: File Handlers and Structured JSON Output

  • پیکربندی لاگ با فایل‌های INI Log configuration with INI files

  • پیکربندی لاگ با دیکشنری‌ها Log configuration with dictionaries

  • پیکربندی لاگ با فایل‌های JSON Log configuration with JSON files

  • پیکربندی پویا (Dynamic) لاگ Dynamic log configuration

  • پیکربندی Declarative و Dynamic لاگینگ Declarative and Dynamic Logging Configuration

  • پیکربندی پویای لاگینگ با حالت Verbose Dynamic Logging Configuration with Verbose Mode

فایل‌ها، Regex و سریال‌سازی Files, Regex, and Serialization

  • مقدمه بخش Section introduction

  • شیء Path The Path object

  • لیست کردن محتویات دایرکتوری، خواندن و نوشتن فایل‌ها Listing directory contents, reading and writing files

  • بررسی عمیق حالت‌های خواندن و نوشتن Read and write modes deep-dive

  • بررسی عمیق متدهای خواندن و نوشتن Read and write methods deep-dive

  • تعامل با سیستم فایل و I/O File System Interaction and I/O

  • آرشیور فایل‌های لاگ Log File Archiver

  • Regex: مقدمه و ضروریات Regex: Introduction and essentials

  • Regex: کوانتیفایرها، جستجوی حریص و غیرحریص Regex: Quantifiers, greedy, and non-greedy search

  • Regex: گروه‌های کپچر (Capturing groups) Regex: Capturing groups

  • Regex: گروه‌های غیر کپچر Regex: Non-capturing groups

  • تشخیص‌دهنده خطای خط لاگ Log Line Error Detector

  • تجزیه‌کننده رویدادهای ورود کاربر User Login Event Parser

  • Regex: ارجاعات بازگشتی (Back references) Regex: Back-references

  • Regex: متدهای findall() و finditer() Regex: findall() and finditer()

  • Regex: تقسیم رشته (String splitting) Regex: String splitting

  • Regex: جایگزینی رشته (String substitution) Regex: String substitution

  • پردازش متن با Regular Expressions Text Processing with Regular Expressions

  • حذف داده‌های حساس در فایل‌های پیکربندی Sensitive Data Redactor in Configuration Files

  • دی‌سریال‌سازی JSON JSON deserialization

  • سریال‌سازی JSON JSON serialization

  • به‌روزرسان پیکربندی JSON JSON Configuration Updater

  • آشنایی با عملیات YAML Introduction to YAML operations

  • سریال‌سازی و دی‌سریال‌سازی YAML YAML serialization and deserialization

  • خواندن فایل‌های CSV Reading CSV files

  • نوشتن فایل‌های CSV Writing CSV files

  • کار با فرمت‌های داده (JSON, YAML, CSV) Working with Data Formats (JSON, YAML, CSV)

تعامل با سیستم و اتوماسیون System Interaction and Automation

  • مقدمه بخش Section introduction

  • دسترسی به متغیرهای محیطی (Environment Variables) Accessing environment variables

  • تنظیم و حذف متغیرهای محیطی Setting and deleting environment variables

  • فایل‌های Dotenv Dotenv files

  • متغیرهای محیطی و پیکربندی Environment Variables and Configuration

  • لیست کردن محتویات دایرکتوری Listing directory contents

  • ایجاد دایرکتوری‌ها Creating directories

  • حذف فایل‌ها و دایرکتوری‌ها Deleting files and directories

  • کپی کردن فایل‌ها و دایرکتوری‌ها Copying files and directories

  • اسکریپت بک‌آپ با پاک‌سازی دایرکتوری Backup Script with Directory Cleanup

  • جابجایی فایل‌ها و دایرکتوری‌ها Moving files and directories

  • فایل‌های موقت Temporary files

  • دایرکتوری‌های موقت Temporary directories

  • عملیات سیستم فایل و دایرکتوری Filesystem and Directory Operations

  • آشنایی با subprocessها Introduction to subprocesses

  • مدیریت خطاهای subprocess Handling subprocess errors

  • مدیریت تایم-اوت‌های منقضی شده Handling expired timeouts

  • اجرا و مدیریت Subprocessها Running and Managing Subprocesses

  • بررسی سلامت سیستم با ping System Health Checker with ping

تعامل با APIها با استفاده از requests Interacting with APIs using requests

  • مقدمه بخش Section introduction

  • ایجاد توکن دسترسی شخصی گیت‌هاب (PAT) Creating a GitHub Personal Access Token (PAT)

  • درخواست‌های GET GET requests

  • پارامترهای کوئری (Query parameters) Query parameters

  • درخواست‌های POST POST requests

  • ایجاد و بررسی درخواست‌های HTTP Making and Inspecting HTTP Requests

  • بررسی تعطیلات رسمی Public Holiday Checker

  • کدهای وضعیت HTTP HTTP status codes

  • استفاده از raise_for_status Raise for HTTP status

  • احراز هویت پایه (Basic Auth) Basic authentication

  • احراز هویت مبتنی بر توکن Token-based authentication

  • تریگر جاب Jenkins Jenkins Job Trigger

  • دریافت رخدادهای PagerDuty PagerDuty Incident Fetcher

  • مدیریت تایم-اوت‌ها Handling timeouts

  • تعامل مقاوم با API: احراز هویت و مدیریت خطا Robust API Interaction: Authentication and Error Handling

  • تلاش مجدد: استراتژی ساده Retries: Simple strategy

  • تلاش مجدد: عقب‌نشینی نمایی با Jitter Retries: Exponential backoff with jitter

  • تاب‌آوری پیشرفته: استراتژی‌های Retry برای API Advanced Resilience: API Retry Strategies

تایپینگ استاتیک و Type Hints Static Typing and Type Hints

  • مقدمه بخش Section introduction

  • تنظیمات Pylance برای کاربران VS Code [For VS Code Users] - Pylance configuration values I'm using for VS Code

  • آشنایی با Type Hints Introduction to type hints

  • اشتباهات رایج در Type Hints Type hints: Common pitfalls

  • تایپینگ برای یک لودر پیکربندی پایه Annotating a Basic Configuration Loader

  • تایپینگ لیست‌ها Typing lists

  • تایپینگ دیکشنری‌ها، تاپل‌ها و مجموعه‌ها Typing dictionaries, tuples and sets

  • تایپ‌های Union و Optional Union and optional types

  • پایه‌های Type Hints و کلکسیون‌های ساده Python Type Hints: Foundations and Basic Collections

  • تایپینگ تابع مدیریت کاربر و نقش Typing a User and Role Management Function

  • دیکشنری‌های تایپ‌شده (TypedDict) Typed dictionaries

  • تایپینگ کلاس‌ها Typing classes

  • ارجاعات تایپی آینده (Forward references) Forward type references

  • تایپینگ ساختاریافته: TypedDict و کلاس‌های سفارشی Structured Typing: TypedDict and Custom Classes

  • کارخانه شیء سرور از روی دیکشنری Server Object Factory from Dictionary

  • آشنایی با Generics Introduction to generics

  • متغیرهای تایپی محدود شده Constrained type variables

  • متغیرهای تایپی کران‌دار (Bounded) Bounded type variables

  • ژنریک‌ها و کلاس‌ها Generics and classes

  • انعطاف‌پذیری پیشرفته با Generics Advanced Flexibility with Generics

  • تایپینگ دکوراتورها Typing decorators

  • بهبود تایپ‌های دکوراتور Improving decorator types

  • تایپینگ ژنراتورها Typing generators

  • تایپینگ Iterableها و Iteratorها Typing iterables and iterators

  • تایپینگ دکوراتورها و ژنراتورها Typing Decorators and Generators

تست خودکار با Pytest Automated Testing with Pytest

  • مقدمه بخش Section introduction

  • تأکیدات (Assertions) در Pytest Assertions in Pytest

  • تمرین عملی: پیاده‌سازی تست‌محور (TDD) Hands-on: Test-driven implementation

  • بررسی خروجی خطا و تقریب اعداد اعشاری Inspecting failure output and float approximation

  • تست استثناها Testing exceptions

  • علامت‌گذاری تست‌ها به عنوان خطاهای مورد انتظار Marking tests as expected failures

  • پیکربندی Pytest Pytest configuration

  • نادیده گرفتن (Skip) تست‌ها Skipping tests

  • مشخص کردن خطاهای مورد انتظار Indicating expected failures

  • مارکرهای سفارشی Custom markers

  • مبانی Pytest: تأکیدات، مارکرها و پیکربندی Pytest Fundamentals: Assertions, Markers, and Configuration

  • آشنایی با Fixtures Introduction to fixtures

  • دامنه (Scope) فیکسچرها Fixture scopes

  • اشتراک‌گذاری فیکسچرها در conftest.py Sharing fixtures in conftest.py

  • آشنایی با پارامتری‌سازی (Parametrization) Introduction to parametrization

  • استفاده از تابع param Using the param function

  • مدیریت وضعیت تست با Fixtures و پارامتری‌سازی Managing Test State with Fixtures and Parametrization

  • مبانی Mocking Mocking fundamentals

  • دکوراتور patch و فیکسچر mocker Patch decorator and mocker fixture

  • پیکربندی اشیاء Mock Configuring mock objects

  • تنظیم استثناها و لیست‌ها به عنوان Side Effect Setting exceptions and lists as side effect

  • استفاده از Callable به عنوان Side Effect Using callable as side effect

  • تفاوت Mock و MagicMock Mock vs. MagicMock

  • تکنیک‌های پیشرفته تست: Mocking با Pytest Advanced Testing Techniques: Mocking with Pytest

ساختاربندی پروژه‌های پایتون Structuring Python Projects

  • مقدمه بخش Section introduction

  • ماژول‌های پایتون Python modules

  • پکیج‌های پایتون Python packages

  • ماژول‌ها و پکیج‌ها: مبانی Python Modules and Packages: The Fundamentals

  • آشنایی با زیرپکیج‌ها (Subpackages) Introduction to subpackages

  • Importهای Absolute در مقابل Relative Absolute vs. Relative imports

  • خطاهای رایج Import و نحوه رفع آن‌ها Common import errors and how to fix them

  • پیمایش پکیج‌ها: Importها و زیرماژول‌ها Navigating Packages: Imports and Submodules

  • اجرای ماژول‌های پایتون Running Python modules

  • فایل pyproject.toml Pyproject.toml file

  • افزودن تست‌ها به پروژه‌های چند فایلی Adding tests to multi-file projects

  • ایجاد پروژه‌های قابل نصب با pyproject.toml Creating Installable Projects with pyproject.toml

CI/CD برای پروژه‌های پایتون CI/CD for Python Projects

  • مقدمه بخش Section introduction

  • آشنایی با کتابخانه click Introduction to click

  • ابزارهای CI/CD برای پروژه ما CI/CD tooling for our project

  • مرور کلی خط لوله (Pipeline) CI/CD CI/CD pipeline overview

  • راه‌اندازی مخزن گیت‌هاب و محیط محلی Setup GitHub repository and local environment

  • مرور کلی برنامه پیاده‌سازی Implementation plan overview

  • ایجاد فایل pyproject.toml Creating our pyproject.toml file

  • پیاده‌سازی ماژول HTTP Checker Implementing the HTTP checker module

  • پیاده‌سازی اسکریپت CLI - بخش اول Implementing the CLI script - Part 1

  • پیاده‌سازی اسکریپت CLI - بخش دوم Implementing the CLI script - Part 2

  • GitHub Actions - استقرار اولین Workflow GitHub Actions - Deploy minimal workflow

  • افزودن بررسی‌های Linting و Format Add linting and format checks

  • افزودن بررسی‌های تایپ استاتیک و امنیت Add static type and security checks

  • Pytest - راه‌اندازی و پیکربندی Pytest - Setup and configuration

  • Pytest - پیاده‌سازی تست‌های HTTP Checker Pytest - Implement HTTP checker tests

  • Pytest - پیاده‌سازی تست‌های CLI Pytest - Implement CLI tests

  • Pytest - یکپارچه‌سازی تست‌های خودکار در Workflow Pytest - Integrate automated tests in the workflow

  • بررسی‌های کیفیت با GitHub Actions Quality Checks with GitHub Actions

  • ساخت کتابخانه پایتون Building the Python library

  • پیکربندی حساب PyPI و اطلاعات OIDC Configuring PyPI account and OIDC information

  • پیکربندی Semantic Release Configure Semantic Release

  • یکپارچه‌سازی Semantic Release در Workflow Integrate Semantic Release in the workflow

  • انتشار در TestPyPI Publishing to TestPyPI

  • انتشار در PyPI Publishing to PyPI

  • بهینه‌سازی Workflow برای بهره‌گیری از Release Assets Optimize workflow to leverage release assets

  • ساخت و انتشار در PyPI Building and Publishing to PyPI

جمع‌بندی Conclusion

  • تبریکات + درس BONUS! Congratulations + BONUS lecture!

نمایش نظرات

آموزش پایتون برای DevOps: تسلط بر اتوماسیون در دنیای واقعی
جزییات دوره
23.5 hours
225
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
6,121
4.6 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Lauro Fialho Müller Lauro Fialho Müller

مشاور ارشد فناوری اطلاعات و توسعه دهنده Full-Stack