زبان خود را انتخاب کنید

در این وبلاگ، من در مورد اینکه چرا برای DevOps به پایتون نیاز دارید و موارد استفاده آن در دنیای واقعی بحث خواهم کرد. همچنین، منابع و نقشه راه یادگیری پایتون برای یک مهندس DevOps را اضافه کرده‌ام.

برنامه‌نویسی در حال تبدیل شدن به یک مهارت ضروری برای مهندسان DevOps است. این بدان معنا نیست که مهندسان DevOps باید مانند توسعه‌دهندگان، برنامه‌های کاربردی کاملی توسعه دهند. مورد استفاده توسعه برای مهندسان DevOps متفاوت است.

در راهنمای مهندسان DevOps، من در مورد اهمیت برنامه‌نویسی و اسکریپت‌نویسی برای مهندسان DevOps نوشته‌ام.

وقتی صحبت از DevOps می‌شود، پایتون زبان برنامه‌نویسی ترجیحی برای اتوماسیون است.

آخرین نظرسنجی توسعه‌دهندگان پایتون که توسط JetBrains انجام شده است، نشان می‌دهد که ۳۸٪ از استفاده از پایتون برای DevOps، اتوماسیون و مدیریت سیستم گزارش شده است.

حالا بیایید به موارد استفاده مختلف پایتون برای DevOps نگاهی بیندازیم.

1. CI/CD، تأمین زیرساخت و مدیریت پیکربندی

ابزارهای متن‌باز زیادی برای تأمین زیرساخت، مدیریت پیکربندی، ادغام مداوم، استقرار مداوم و غیره در دسترس هستند. با این حال، سناریوهایی وجود دارد که در آنها ممکن است عملکرد ابزارهای بومی برای پیاده‌سازی قابلیت‌های مورد نیاز کافی نباشد. اینجاست که زبان‌هایی مانند پایتون به کار می‌آیند. به عنوان مثال،

ایجاد یک فراخوانی API برای دریافت یک توکن مخفی هنگام استقرار.

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

در Ansible، می‌توانید ماژول‌های سفارشی را با استفاده از پایتون ایجاد کنید، زمانی که هیچ ماژولی برای پیاده‌سازی مورد نظر شما در دسترس نیست.

2. ابزارسازی پلتفرم DevOps

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

۳. اتوماسیون ابری

Boto3 نمونه‌ای عالی از کاربرد پایتون برای اتوماسیون ابری است. این یک ماژول پایتون پرکاربرد برای اتوماسیون و اسکریپت‌های مرتبط با ابر AWS است. به عنوان یک مهندس DevOps، ممکن است مجبور باشید توابع لامبدا را در پایتون برای وظایف مرتبط با زیرساخت توسعه دهید.

۴. نظارت و هشدار

اگرچه هر سازمانی ابزارهای نظارتی دارد، اما مواردی وجود دارد که در آنها به یک راه‌حل سفارشی برای نظارت و هشدار نیاز دارید. می‌توانید از SDKهای پایتون یا ماژول‌های سفارشی مربوطه برای پیاده‌سازی راه‌حل در چنین مواردی استفاده کنید.

به عنوان مثال، یک مقیاس‌پذیر خودکار سفارشی مبتنی بر هشدارها که در آن یک وب‌هوک به هشدارهای ورودی گوش می‌دهد تا تصمیمات مقیاس‌بندی را اتخاذ کند. می‌توانید کل فرآیند مقیاس‌پذیری خودکار را با استفاده از یک برنامه ساده پایتون فلاسک خودکار کنید.

۵. MLOPS

یکی دیگر از حوزه‌هایی که پایتون به طور گسترده در آن استفاده می‌شود، MLOPS (عملیات یادگیری ماشین) است. وقتی مهندسان DevOps با تیم‌های توسعه برنامه‌های یادگیری ماشین کار می‌کنند، اکثر گردش‌های کاری به پایتون نیاز دارند. به عنوان مثال، ابزار Airflow یک ابزار استاندارد خط لوله مهندسی یادگیری ماشین و داده است. در بیشتر موارد، مهندسان DevOps مسئول ایجاد این خطوط لوله با همکاری مهندسان ML و Data هستند. با این حال، موارد استفاده پیچیده‌ای وجود دارد که در آنها مشارکت مهندسان داده مورد نیاز است.

نقشه راه یادگیری پایتون برای مهندسان DevOps

اگر سفر مهندسی DevOps خود را آغاز کرده‌اید و می‌خواهید پایتون را یاد بگیرید، ممکن است این سوال برایتان پیش بیاید که چه میزان پایتون برای DevOps مورد نیاز است؟

در اینجا یک نقشه راه یادگیری پایتون برای مهندسان DevOps به همراه منابع مربوطه ارائه شده است.

  1. تنظیمات محیط پایتون
  2. نحو پایه
  3. متغیرها
  4. انواع داده پایتون
  5. شرطی‌ها
  6. حلقه‌ها
  7. عبارات منظم
  8. روش‌ها
  9. ماژول‌ها
  10. مدیریت استثنا
  11. استفاده از SDKهای ابری پایتون (Boto3)

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

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

  1. یادگیری پایتون ۳ از ابتدا
  2. مقدمه‌ای بر برنامه‌نویسی پایتون
  3. پایتون برای مبتدیان - دوره کامل

ماژول‌های مهم پایتون برای اتوماسیون DevOps

ماژول‌های پایتون زیادی برای موارد استفاده مختلف وجود دارد. با این حال، وقتی صحبت از DevOps می‌شود، کتابخانه‌های DevOps پایتون وجود دارند که باید بارها و بارها برای وظایف اتوماسیون از آنها استفاده کنید.

در اینجا لیست آنها آمده است.

  1. ماژول os
  2. پلتفرم
  3. زیرفرآیند
  4. sys
  5. psutil
  6. re (عبارت منظم)
  7. scapy
  8. درخواست‌ها و urllib3
  9. logging
  10. getpass
  11. boto3
  12. paramiko
  13. JSON
  14. PyYAML
  15. pandas: یکی از بهترین چارچوب‌های علم داده. با این حال، برای وظایف اتوماسیون DevOps که با فایل‌های CSV سروکار دارند بسیار مفید است.
  16. smtplib

موارد استفاده از پایتون در اتوماسیون دنیای واقعی برای DevOps

حالا بیایید نگاهی به برخی از موارد استفاده واقعی اسکریپت‌نویسی پایتون در DevOps بیندازیم. من موارد استفاده را در دسته‌بندی‌های مختلف اضافه کرده‌ام.

موارد استفاده عمومی پایتون در DevOps

  1. اسکریپت پایتون برای پرس و جو از پایگاه‌های داده
  2. اسکریپت پایتون برای اجرای یک اسکریپت shell و دستورات shell.
  3. پرس و جو از لاگ‌های Splunk برای هشدارهای خاص
  4. اسکریپت پایتون برای ایجاد موضوعات Kafka
  5. اسکریپت پایتون برای گرفتن پشتیبان.
  6. اسکریپت پایتون برای کانتینرهای init در Kubernetes برای دریافت اطلاعات محرمانه از vault یا سایر راه‌حل‌های مدیریت اطلاعات محرمانه.
  7. اسکریپت پایتون برای دریافت IP سرورهای زنده در یک گروه مقیاس‌بندی خودکار.
  8. تابع AWS Lambda در پایتون برای توقف اجرای نمونه‌ها در آخر هفته‌ها.
  9. اسکریپت پایتون برای کارهای ETL.
  10. یافتن تاریخ انقضای SSL با استفاده از پایتون
  11. توسعه برنامه‌های CLI سفارشی با استفاده از پایتون
  12. عملیات CRUD با استفاده از پایتون برای پایگاه‌های داده.
  13. اسکریپت‌های سفارشی هنگام استفاده از ابزارهای مدیریت پیکربندی.

موارد استفاده پایتون مخصوص ابر

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

  1. منابع AWS را با استفاده از CDK پایتون AWS فراهم کنید.
  2. استفاده از ماژول‌های Boto3 برای مدیریت سرویس‌های AWS.
    • برنامه‌ی Boto3 پایتون برای مدیریت نمونه‌های AWS ec2.
    • برنامه‌ی Boto3 پایتون برای مدیریت ذخیره‌سازی AWS S3.
    • برنامه‌ی Boto3 پایتون برای بازیابی اسرار از انباره‌ی پارامترها و مدیریت اسرار.

موارد استفاده‌ی خاص پایتون در Kubernetes

بسیاری از مهندسان توسعه‌ی نرم‌افزار (devops) این سوال را داشتند که چگونه از دانش پایتون با Kubernetes استفاده کنند.

در ادامه کارهایی که می‌توانید با پایتون هنگام یادگیری Kubernetes انجام دهید، آمده است.

  1. با ایجاد برنامه‌های پایتون برای تعامل با APIهای Kubernetes با استفاده از مکانیسم‌های مختلف احراز هویت (توکن، گواهینامه‌ها و غیره) شروع کنید.
  2. سعی کنید اسکریپت‌های سفارشی پایتون را با کانتینرهای init اجرا کنید تا فایلی را که یک کانتینر در زمان اجرا به آن نیاز دارد، تغییر دهید.
  3. یک webhook سفارشی با استفاده از API فلاسک پایتون برای کنترل‌کننده‌های اعتبارسنجی و جهش پذیرش Kubernetes بنویسید.
  4. نوشتن یک عملگر Kubernetes در پایتون با استفاده از چارچوب Kopf را در نظر بگیرید. یک مثال کاربردی برای یک عملگر سفارشی Kubernetes می‌تواند خودکارسازی پشتیبان‌گیری از etcd در Amazon S3 باشد. می‌توانید از چارچوب پایتون kopf استفاده کنید.

مخزن گیت‌هاب پایتون برای DevOps

من یک مخزن گیت‌هاب ایجاد کرده‌ام که در آن اسکریپت‌ها و برنامه‌های پایتون مرتبط با DevOps برای یادگیری و پیاده‌سازی اضافه می‌شوند. این مخزن در درجه اول بر اسکریپت‌های عمومی پایتون، boto3، اسکریپت‌های پایتون مرتبط با سیستم عامل و موارد دیگر تمرکز دارد. این یک مخزن متن‌باز است که مشارکت‌های جامعه را می‌پذیرد.

مخزن: اسکریپت‌های پایتون برای DevOps

یا می‌توانید مخزن را کلون کنید.

git clone https://github.com/techiescamp/python-for-devops

 

پایتون چقدر برای مهندسان DevOps مهم است؟

کدنویسی برای مهندسان DevOps موضوعی بسیار بحث‌برانگیز است. با این حال، در تجربه من به عنوان یک مهندس DevOps، با موقعیت‌های زیادی مواجه شدم که مجبور شدم از پایتون برای DevOps در زمینه‌های اتوماسیون، ادغام/استقرار/تحویل مداوم (CI/CD) و راه‌حل‌های مقیاس‌بندی خودکار سفارشی استفاده کنم.

همچنین، وقتی صحبت از مصاحبه‌های مهندس DevOps می‌شود، پایتون نقش کلیدی ایفا می‌کند. اکثر دورهای مصاحبه اولیه DevOps دارای جلسات کدنویسی زنده هستند. بنابراین، شما باید چالش‌های برنامه‌نویسی مربوط به DevOps را حل کنید. با دانش خوب پایتون، می‌توانید به راحتی در این مصاحبه‌ها موفق شوید.

من یک پورتال شغلی برای فرصت‌های شغلی DevOps جستجو کرده‌ام و بیش از ۷۹۴۱ شغل، پایتون را به عنوان یک الزام در تمام سطوح تجربه ذکر کرده‌اند.

 

مطالعات موردی اتوماسیون پایتون

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

  1. NetFlix چگونه از پایتون استفاده می‌کند
  2. مهندسی فیسبوک چگونه از پایتون استفاده می‌کند

 

پرسش‌های متداول پایتون برای DevOps

آیا پایتون برای DevOps مفید است؟

پایتون یکی از بهترین زبان‌های برنامه‌نویسی برای اتوماسیون در DevOps است. تیم‌های DevOps از پایتون برای خودکارسازی وظایف تکراری، تأمین زیرساخت و استقرار مبتنی بر API، گردش‌های کاری CI/CD و موارد دیگر استفاده می‌کنند.

آیا باید Golang یا Python را برای DevOps یاد بگیرم؟

Golang و Python زبان‌های برنامه‌نویسی پرکاربردی در DevOps هستند. انتخاب یک زبان به مورد استفاده بستگی دارد. شروع پایتون آسان است و پشتیبانی قوی برای اتوماسیون و وظایف مدیریت سیستم دارد و می‌تواند برای ساخت گردش‌های کاری و خطوط لوله پیچیده همراه با ابزارهای موجود devops استفاده شود. Golang عملکرد بهتر و ویژگی‌های پیشرفته‌تری را برای سیستم‌های توزیع‌شده ارائه می‌دهد. ابزارهایی مانند Kubernetes و Terraform با Golang ساخته شده‌اند و می‌توانید این ابزارها را با استفاده از Golang گسترش دهید.


نتیجه‌گیری

دانش برنامه‌نویسی و اسکریپت‌نویسی برای مهندسان DevOps ضروری می‌شود. و یکی از بهترین زبان‌های برنامه‌نویسی برای DevOps نیز پایتون است.

همچنین، وقتی صحبت از ابزارهای DevOps می‌شود، در نهایت از یک زبان برنامه‌نویسی یا اسکریپت‌نویسی برای دستیابی به پیاده‌سازی‌های سفارشی استفاده خواهید کرد.

حتی اگر در شغل روزانه خود به عنوان مهندس DevOps به طور فعال روی اسکریپت‌نویسی کار نمی‌کنید، اکیداً پیشنهاد می‌کنم پایتون را یاد بگیرید و ابزارها و اسکریپت‌های متن‌باز ایجاد کنید. این قطعاً در درازمدت به شما کمک خواهد کرد.