دیپلوی پروژه پایتون روی Google Cloud: راهنمای جامع
دیپلوی (Deployment) یک پروژه پایتون به Google Cloud Platform (GCP) میتواند گامی مهم در مقیاسپذیری و دسترسیپذیری آن باشد. این راهنما به شما کمک میکند تا با استفاده از ابزارهای مختلف GCP، یک پروژه پایتون را به طور موثر دیپلوی کنید. این آموزش در دسته ‘دیپلوی و DevOps با پایتون’ قرار میگیرد و برای توسعهدهندگانی که به دنبال استقرار برنامههای پایتونی خود در یک محیط ابری قوی هستند، مناسب است.
پیشنیازها
قبل از شروع، اطمینان حاصل کنید که موارد زیر را دارید:
- یک حساب کاربری Google Cloud Platform
- نصب Google Cloud SDK
- آشنایی با مفاهیم اولیه پایتون و توسعه وب
- یک پروژه پایتون آماده برای دیپلوی (مثلاً یک برنامه Flask یا Django)
مراحل اصلی دیپلوی
دیپلوی یک پروژه پایتون روی GCP معمولاً شامل مراحل زیر است:
- ایجاد یک پروژه در Google Cloud
- انتخاب یک سرویس مناسب برای دیپلوی (مانند Cloud Run، App Engine، Compute Engine)
- آمادهسازی پروژه پایتون برای دیپلوی (ایجاد فایل requirements.txt و Dockerfile)
- ساخت یک ایمیج Docker (در صورت نیاز)
- دیپلوی پروژه روی سرویس انتخابی
- تنظیمات شبکه و دسترسی
- مانیتورینگ و لاگگیری
انتخاب سرویس مناسب
GCP سرویسهای مختلفی برای دیپلوی برنامههای پایتون ارائه میدهد. انتخاب سرویس مناسب بستگی به نیازهای پروژه شما دارد:
- Cloud Run: یک سرویس کاملاً مدیریتشده برای اجرای کانتینرهای Docker. برای برنامههایی که به مقیاسپذیری سریع و پرداخت بر اساس استفاده نیاز دارند، ایدهآل است.
- App Engine: یک پلتفرم به عنوان سرویس (PaaS) که امکان دیپلوی برنامههای پایتون را با حداقل پیکربندی فراهم میکند. برای برنامههای وب ساده و متوسط مناسب است.
- Compute Engine: یک سرویس ماشین مجازی که به شما کنترل کامل بر زیرساخت میدهد. برای برنامههایی که نیاز به سفارشیسازی بالا دارند، مناسب است.
در این راهنما، ما از Cloud Run برای دیپلوی پروژه پایتون خود استفاده خواهیم کرد.
آمادهسازی پروژه پایتون
قبل از دیپلوی، باید پروژه پایتون خود را آماده کنید. این شامل ایجاد فایل requirements.txt و Dockerfile است.
فایل requirements.txt
فایل requirements.txt شامل لیستی از تمام وابستگیهای پروژه پایتون شما است. برای ایجاد این فایل، از دستور زیر در ترمینال استفاده کنید:
pip freeze > requirements.txt
این دستور تمام پکیجهای نصبشده در محیط مجازی شما را در فایل requirements.txt ذخیره میکند.
Dockerfile
Dockerfile یک فایل متنی است که دستورالعملهای لازم برای ساخت یک ایمیج Docker را مشخص میکند. یک نمونه Dockerfile برای یک برنامه Flask به شکل زیر است:
FROM python:3.9-slim-buster WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . ENV PORT 8080 CMD ["python", "app.py"]
توضیحات:
FROM python:3.9-slim-buster: از ایمیج رسمی پایتون 3.9 بر پایه Debian استفاده میکند.WORKDIR /app: دایرکتوری کاری را به /app تنظیم میکند.COPY requirements.txt .: فایل requirements.txt را به دایرکتوری /app کپی میکند.RUN pip install --no-cache-dir -r requirements.txt: وابستگیهای پروژه را نصب میکند.COPY . .: تمام فایلهای پروژه را به دایرکتوری /app کپی میکند.ENV PORT 8080: متغیر محیطی PORT را به 8080 تنظیم میکند.CMD ["python", "app.py"]: دستور اجرای برنامه را مشخص میکند.
ساخت ایمیج Docker
پس از ایجاد Dockerfile، باید یک ایمیج Docker بسازید. برای این کار، از دستور زیر در ترمینال استفاده کنید:
docker build -t gcr.io/[YOUR_PROJECT_ID]/[YOUR_IMAGE_NAME]:latest .
جایگزین کنید:
[YOUR_PROJECT_ID]: با شناسه پروژه Google Cloud خود[YOUR_IMAGE_NAME]: با نام دلخواه برای ایمیج خود
این دستور یک ایمیج Docker با نام مشخصشده ایجاد میکند.
دیپلوی پروژه روی Cloud Run
پس از ساخت ایمیج Docker، میتوانید پروژه خود را روی Cloud Run دیپلوی کنید.
Push ایمیج به Container Registry
ابتدا باید ایمیج Docker خود را به Container Registry در GCP push کنید:
docker push gcr.io/[YOUR_PROJECT_ID]/[YOUR_IMAGE_NAME]:latest
ایجاد سرویس Cloud Run
سپس، یک سرویس Cloud Run ایجاد کنید. میتوانید از طریق کنسول GCP یا از طریق خط فرمان (gcloud) این کار را انجام دهید.
از طریق کنسول GCP:
- به کنسول GCP بروید و Cloud Run را جستجو کنید.
- روی ‘Create Service’ کلیک کنید.
- نام سرویس را وارد کنید.
- منطقه را انتخاب کنید.
- ایمیج Docker خود را مشخص کنید (gcr.io/[YOUR_PROJECT_ID]/[YOUR_IMAGE_NAME]:latest).
- تنظیمات دیگر را پیکربندی کنید (مانند میزان حافظه و CPU).
- روی ‘Create’ کلیک کنید.
از طریق خط فرمان (gcloud):
gcloud run deploy [YOUR_SERVICE_NAME] --image gcr.io/[YOUR_PROJECT_ID]/[YOUR_IMAGE_NAME]:latest --platform managed --region [YOUR_REGION]
جایگزین کنید:
[YOUR_SERVICE_NAME]: با نام دلخواه برای سرویس خود[YOUR_REGION]: با منطقه مورد نظر خود
این دستور یک سرویس Cloud Run ایجاد میکند و ایمیج Docker شما را دیپلوی میکند.
تنظیمات شبکه و دسترسی
پس از دیپلوی، باید تنظیمات شبکه و دسترسی را پیکربندی کنید. Cloud Run به طور پیشفرض یک URL عمومی برای سرویس شما ایجاد میکند. میتوانید این URL را در کنسول GCP پیدا کنید.
همچنین میتوانید دسترسی به سرویس خود را با استفاده از IAM (Identity and Access Management) کنترل کنید.
مانیتورینگ و لاگگیری
مانیتورینگ و لاگگیری برای اطمینان از عملکرد صحیح پروژه شما ضروری است. GCP ابزارهای مختلفی برای مانیتورینگ و لاگگیری ارائه میدهد، از جمله:
- Cloud Monitoring: برای مانیتورینگ عملکرد سرویس شما (مانند CPU، حافظه، و ترافیک).
- Cloud Logging: برای جمعآوری و تجزیه و تحلیل لاگهای برنامه شما.
با استفاده از این ابزارها، میتوانید مشکلات را به سرعت شناسایی و رفع کنید.
نتیجهگیری
دیپلوی یک پروژه پایتون روی Google Cloud Platform میتواند یک فرآیند نسبتاً ساده باشد، به خصوص با استفاده از سرویسهایی مانند Cloud Run. با دنبال کردن مراحل این راهنما، میتوانید پروژه پایتون خود را به طور موثر دیپلوی کنید و از مزایای یک محیط ابری قوی بهرهمند شوید. این راهنما یک نقطه شروع برای دیپلوی و DevOps با پایتون در GCP است و با کسب تجربه بیشتر، میتوانید از ابزارهای پیشرفتهتر و روشهای بهینهتر استفاده کنید.

بدون دیدگاه