Deployment & DevOps (ডিপ্লয়মেন্ট ও ডেভঅপস)
কোড লেখা শেষ করার পর সেটিকে ইন্টারনেটে লাইভ করা এবং মেইনটেইন করাই হলো আসল চ্যালেঞ্জ। এই চ্যাপ্টারে আমরা শিখবো কীভাবে প্রফেশনাল উপায়ে FastAPI অ্যাপ ডিপ্লয় করতে হয়।
১. Dockerizing FastAPI (Best Practices)
ডকার ব্যবহারের ফলে আপনার অ্যাপ যেকোনো এনভায়রনমেন্টে (লিিনাক্স, উইন্ডোজ, ক্লাউড) একইভাবে চলবে।
১.১. Dockerfile তৈরি:
# ১. পাইথন ইমেজ ব্যবহার
FROM python:3.10-slim
# ২. ডিরেক্টরি সেট করা
WORKDIR /code
# ৩. ডিপেন্ডেন্সি কপি এবং ইন্সটল করা
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# ৪. কোড কপি করা
COPY ./app /code/app
# ৫. সার্ভার রান করা
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]২. Gunicorn + Uvicorn Worker
প্রোডাকশনে শুধু uvicorn ব্যবহার না করে Gunicorn ব্যবহার করা ভালো কারণ এটি মাল্টিপল "Worker" প্রসেস ম্যানেজ করতে পারে।
pip install gunicorn
# ৪টি ওয়ার্কার দিয়ে অ্যাপ রান করা
gunicorn -w 4 -k uvicorn.workers.UvicornWorker app.main:app৩. Nginx Reverse Proxy & SSL
আপনার এপিআই সরাসরি ইন্টারনেটে না খুলে সামনে একটি Nginx সার্ভার রাখা ভালো। এটি সিকিউরিটি বাড়ায় এবং SSL (HTTPS) হ্যান্ডেল করতে পারে।
৩.১. Nginx কনফিগ ফাইল:
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}৪. CI/CD Pipeline (GitHub Actions)
আপনার প্রতিটি পুশ (Push) করার সাথে সাথে অটোমেটিক টেস্ট এবং ডিপ্লয়মেন্ট করার জন্য GitHub Actions ব্যবহার করতে পারেন।
৪.১. .github/workflows/main.yml:
name: CI/CD Pipeline
on:
push:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.10'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: pytest৫. Practice Exercises (অনুশীলন)
১. একটি ছোট FastAPI অ্যাপের জন্য Dockerfile তৈরি করুন এবং তা আপনার লোকাল মেশিনে docker run করে দেখুন। ২. Gunicorn ব্যবহার করে আপনার অ্যাপ রান করুন এবং দেখুন একসাথে কতগুলো রিকোয়েস্ট প্রসেস হচ্ছে। ৩. GitHub-এ একটি রিপোজিটরি খুলে উপরের টেস্ট পাইপলাইনটি সেটআপ করুন।
৬. Best Practices
- Keep Images Small: সব সময়
slimবাalpineপাইথন ইমেজ ব্যবহার করুন। - Environment Secrets: পাসওয়ার্ড বা সিক্রেট কি কখনোই ডকার ফাইলে লিখবেন না, সব সময়
.envবা ডকার সিক্রেটস ব্যবহার করুন। - Auto-scaling: ইউজারের সংখ্যা বাড়লে যেন অটোমেটিক ওয়ার্কার বা কন্টেইনার বাড়ে এমনভাবে আর্কিটেকচার ডিজাইন করুন।
- Monitoring: অ্যাপের স্ট্যাটাস দেখার জন্য লগিং সিস্টেম (যেমন: Sentry বা ELK Stack) ব্যবহার করুন।
অভিনন্দন!
আপনি সফলভাবে FastAPI Complete Learning Guide শেষ করেছেন। বেসিক রাউটিং থেকে শুরু করে প্রোডাকশন ডিপ্লয়মেন্ট পর্যন্ত আপনি এখন একজন পুরোদস্তুর FastAPI ডেভেলপার। শুভকামনা আপনার পরবর্তী প্রজেক্টের জন্য! 🚀