Docker Compose kullanarak hızlı bir API uygulaması nasıl oluşturulur?

0 Hisse senetleri
0
0
0
0

giriiş

FastAPI, özellikle yapay zeka tabanlı uygulamalar geliştirmek için harika bir seçim haline gelen, yüksek performans sunmak üzere tasarlanmış Python için modern bir web çerçevesidir.

Bu eğitim, Docker Compose kullanarak bir Ubuntu makinesinde FastAPI uygulaması oluşturma ve dağıtma sürecinde size rehberlik edecektir. Bu yöntem, dağıtımı basitleştirir ve yapay zekayı uygulamalarınıza entegre etmek için güçlü bir temel sağlar.

Ön koşullar
  • Sudo ayrıcalıklarına sahip, root olmayan bir kullanıcı ve etkin bir güvenlik duvarı ile Ubuntu çalıştıran bir sunucu. Kurulum talimatları için lütfen bu listeden dağıtımınızı seçin ve Sunucuya Başlarken kılavuzumuzu takip edin. Lütfen desteklenen bir Ubuntu sürümü çalıştırdığınızdan emin olun. Bu eğitimde, Ubuntu 24.04 LTS bir makine kullanacağız.
  • Linux Komut Satırını Tanımak Komut satırına giriş veya bilgilerinizi tazelemek için Linux Komut Satırı Kılavuzu'ndaki bu kılavuza göz atabilirsiniz.
  • Sisteminizde yapılandırılmış depolar üzerinden yazılımların en son sürümlerinin ve güvenlik güncellemelerinin bulunduğundan emin olmak için Ubuntu terminalinde sudo apt-get update komutunu çalıştırın.

Bu talimatlar Ubuntu'nun en son sürümleri olan Ubuntu 24.04, Ubuntu 22.04, Ubuntu 20.04 ve Ubuntu 18.04 için geçerlidir. Ubuntu 16.04'ten önce kullanıyorsanız, Ubuntu artık bu sürümleri desteklemediğinden en son sürüme yükseltmenizi öneririz. Bu talimatlar, Ubuntu makinenizi yükseltmenize yardımcı olacaktır.

Adım 1 – Python ortamının kurulumu

Ubuntu 24.04 yüklü bir bilgisayarda Python 3 varsayılan olarak yüklüdür. Bir terminal açın ve Python 3'ün yüklü olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın:

python3 --version

Bilgisayarınızda Python 3 yüklüyse, bu komut Python 3'ün güncel sürümünü döndürür. Yüklü değilse, aşağıdaki komutu çalıştırıp Python 3 kurulumunu alabilirsiniz:

sudo apt install python3

Ardından, sisteminize pip ve dev paket yükleyicilerini yüklemeniz gerekiyor. Python Paket Dizini'ndeki paketleri yüklemek için pip paket yöneticisi, derlenmiş kod içeren Python modülleri oluşturmak için ise dev paketi gereklidir. Terminalde aşağıdaki komutu çalıştırın:

sudo apt install python3-pip python3-dev

Adım 2 – Sanal ortamı oluşturun ve etkinleştirin

<$>[not] Ubuntu sürüm < 24.04 kullanıyorsanız, sanal ortam oluşturmanıza gerek yoktur. Bir sonraki adıma geçin<$>.

Bir sonraki adım, Python paketlerini sistem ortamınızdan izole etmek için Ubuntu kurulumunuzun içinde sanal bir ortam oluşturmaktır. Bunu yapmak için çalışma dizininize gidin ve aşağıdaki komutu çalıştırın:

python3 -m venv fastapi-env

Bu komut, fastapi-env adlı dizinde yeni bir sanal ortam oluşturacaktır. Bundan sonra yükleyeceğiniz tüm paketler diğer projelerden izole edilecektir.

Daha sonra bu sanal ortamı etkinleştirerek bundan sonra yükleyeceğiniz paketlerin bu izole ortama kurulmasını sağlamalısınız.

source fastapi-env/bin/activate

Çalıştırdığınızda, sanal ortam adınızın ön ekinin aşağıdaki gibi olduğunu gösteren bir terminal istemi göreceksiniz:

Output
(fastapi-env) ubuntu@user:

Adım 3 – Docker'ı yükleyin ve etkinleştirin

Bir sonraki adım sanal ortama Docker ve Docker Compose'u kurmaktır.

sudo apt install -y docker.io

Docker'ı yükledikten sonra Docker servisini başlatın ve sistem önyüklemesinde başlamasını sağlayın:

sudo systemctl start docker
sudo systemctl enable docker

Docker Compose'un en son kararlı sürümünü aldığınızdan emin olmak için apt kullanmak yerine onu resmi GitHub deposundan indireceksiniz.

Öncelikle Docker'ın resmi GitHub sürümleri sayfasında en son sürümün mevcut olduğundan emin olun, ardından terminalde aşağıdaki CURL komutunu çalıştırın.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose

Docker-compose ikili dosyasını makinedeki herhangi bir kullanıcı tarafından çalıştırılabilir hale getirmek için aşağıdaki komutu çalıştırın.

sudo chmod +x /usr/bin/docker-compose

Kurulumu şu komutu çalıştırarak doğrulayın:

docker-compose --version

Adım 4 – Bir FastAPI uygulaması oluşturun

Şimdi FastAPI çerçevesini kullanan bir Python uygulaması oluşturmaya başlamanın zamanı geldi. İlk olarak bir main.py dosyası oluşturun:

nano main.py

Aşağıda, FastAPI çerçevesini ve önceden eğitilmiş bir AI modelini kullanarak verilen bir metnin duygusunu analiz etmek için basit bir web API'si oluşturan bir Python programı örneği bulunmaktadır.

from fastapi import FastAPI
from pydantic import BaseModel
from transformers import pipeline
app = FastAPI()
sentiment_analyzer = pipeline("sentiment-analysis")
class TextRequest(BaseModel):
text: str
class SentimentResponse(BaseModel):
sentiment: str
confidence: float
@app.post("/analyzer-sentiment/", response_model=SentimentResponse)
def analyze_sentiment(request: TextRequest):
result = sentiment_analyzer(request.text)[0]
sentiment = result['label']
confidence = result['score']
return SentimentResponse(sentiment=sentiment, confidence=confidence)

Bu uygulamayı başarıyla çalıştırmak için gerekli bağımlılıklara ihtiyacınız var, ancak bunları manuel olarak yüklemeniz gerekmiyor. Bu paketlerin kurulumu, bir sonraki adımda açıklanan Dockerfile içinde yapılır.

Adım 5 – Dockerfile ve YAML yapılandırmasını oluşturun

Ardından, bu uygulama için bir Dockerfile oluşturacaksınız. Bu Dockerfile, FastAPI uygulamanızın çalışacağı ortamı tanımlar. Aşağıdakileri çalıştırarak proje dizininde bir Dockerfile oluşturun:

nano Dockerfile

Metin düzenleyicide aşağıdaki içeriği ekleyin:

FROM python:3.12-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir fastapi pydantics transformers uvicorn
EXPOSE 80
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]

Docker Compose, çoklu konteyner uygulamalarının yönetimini kolaylaştırır. Ardından, proje dizininde bir docker-compose.yml yapılandırma dosyası oluşturmanız gerekir.

nano docker-compose.yml

Boş dosyaya aşağıdaki içeriği ekleyin:

version: '3.8'
services:
web:
build: .
ports:
- "8000:80"
volumes:
- .:/app

Bu yapılandırmada,

  • Sürüm: Kullanılacak Docker Compose sürümünü belirtir.
  • Hizmetler: Oluşturulması gereken hizmetleri tanımlar.
  • web: FastAPI uygulamanızı çalıştıran servisin adını belirtir.
  • build: Docker görüntüsünün derleneceği dizini belirtir. Bu durumda, docker-compose.yml dosyasının bulunduğu dizinle aynıdır.
  • Portlar: Ana bilgisayardaki 8000 portunu konteyner içindeki 80 portuna eşler.
  • volumes: Geçerli dizini kapsayıcının içinde bir birim olarak bağlar, böylece canlı kodu yeniden yükleyebilirsiniz.

Adım 6 – Docker konteynerini oluşturun ve çalıştırın

Bu Docker imajını oluşturmak ve konteyneri başlatmak için Docker Compose'u kullanın:

sudo docker-compose build

Bu komut, geçerli dizindeki Dockerfile dosyasından Docker imajını oluşturacaktır. Şimdi, uygulamayı çalıştırmak için terminalde aşağıdaki komutu çalıştırın:

sudo docker-compose up

Adım 7 – FastAPI uygulamanıza erişin

Konteyner çalışmaya başladıktan sonra web tarayıcınızda http://localhost:8000 adresine giderek FastAPI uygulamanıza erişebilirsiniz.

Adım 8 [İsteğe bağlı] – Docker konteynerinizi yönetin

FastAPI uygulamanızı çalıştıran konteyner ortamını daha iyi kontrol etmenize yardımcı olacak birkaç ipucu:.

  • Çalışan bir konteyneri durdurmak için Ctrl + C veya Command + .. tuşlarına basın.
  • Konteyner arka planda çalışırken kontrolü geri almak için aşağıdakileri kullanın:
sudo docker-compose up -d
  • Konteynerinizi durdurmak ve kaldırmak için şunu çalıştırın:
sudo docker-compose down

Çözüm

Bu eğitimde, Docker Compose kullanarak bir Ubuntu makinesinde FastAPI uygulamasını nasıl oluşturup dağıtacağınızı öğrendiniz. FastAPI'nin hızı ve Docker'ın verimliliğiyle, sağlam ve ölçeklenebilir uygulamaları güvenle oluşturabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz