Learn AI with Python · Lezione

Scalabilità e auto-scaling degli endpoint dei modelli

Kubernetes HPA per i pod del modello, scalabilità basata sul traffico, deployment A/B, rilasci canary

Lezione 4 di 413 passaggi

Scalabilità e auto-scaling degli endpoint dei modelli è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Perché l'auto-scaling

Il traffico di inferenza raramente è costante. Configurare risorse per il carico di picco spreca denaro durante la notte; configurarle per il carico medio non è sufficiente nei momenti di picco. L'auto-scaling adatta automaticamente il numero di repliche in base alla domanda, così paga solo ciò che utilizza e mantiene il servizio reattivo.

Pod e repliche

Su Kubernetes, un server del modello viene eseguito come Deployment composto da pod identici (repliche). Scalare significa modificare il numero di repliche. Un Service distribuisce il carico delle richieste tra le repliche disponibili.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: model-server
spec:
  replicas: 2
  template:
    spec:
      containers:
        - name: server
          image: my-model:latest

Horizontal Pod Autoscaler

Horizontal Pod Autoscaler (HPA) monitora una metrica e aggiunge o rimuove pod per mantenerla vicina a un valore obiettivo. La metrica classica è l'utilizzo della CPU.

HPA sull'utilizzo della CPU

targetCPUUtilizationPercentage indica all'HPA di mantenere l'utilizzo medio della CPU vicino a un valore obiettivo. Se i pod utilizzano in media l'80% della CPU e l'obiettivo è il 50%, l'HPA aumenta il numero di repliche finché l'utilizzo non torna verso il 50%.

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: model-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: model-server
  minReplicas: 2
  maxReplicas: 10
  targetCPUUtilizationPercentage: 50

Limiti dello scaling basato sulla CPU

La CPU è un indicatore poco affidabile per alcuni carichi di lavoro. Un modello GPU potrebbe essere limitato dalla GPU mentre l'utilizzo della CPU rimane basso, oppure un worker asincrono potrebbe avere una coda in crescita mentre la CPU è inattiva. In questi casi, esegua lo scaling in base a un segnale specifico del carico di lavoro.

KEDA per lo scaling guidato dagli eventi

KEDA (Kubernetes Event-Driven Autoscaling) esegue lo scaling in base a metriche esterne come la lunghezza della coda, il ritardo di Kafka o le query Prometheus. Può persino ridimensionare il sistema fino a zero quando non c'è lavoro, cosa che HPA non può fare autonomamente.

ScaledObject di KEDA basato sulla coda

Questo ScaledObject di KEDA aggiunge worker quando cresce una coda di messaggi. Ogni unità di arretrato indicata da queueLength attiva un'altra replica, così il consumer riesce a gestire i picchi.

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: inference-worker
spec:
  scaleTargetRef:
    name: inference-worker
  minReplicaCount: 0
  maxReplicaCount: 20
  triggers:
    - type: rabbitmq
      metadata:
        queueName: inference
        queueLength: "10"

Bilanciamento del carico con Ingress

Il traffico esterno raggiunge i pod tramite un ingress. Un controller ingress nginx termina TLS e distribuisce le richieste tra le repliche gestite dal Service, così lo scaling verso l'alto distribuisce immediatamente il carico.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: model-ingress
spec:
  ingressClassName: nginx
  rules:
    - host: api.example.com
      http:
        paths:
          - path: /predict
            pathType: Prefix
            backend:
              service:
                name: model-server
                port:
                  number: 8000

Rilasci sicuri: canary

Distribuire una nuova versione del modello a tutto il traffico in una sola volta è rischioso. Un rilascio canary invia una piccola parte del traffico alla nuova versione, ne monitora le metriche e poi sposta gradualmente una quantità maggiore di traffico.

Canary con pesi del traffico

Le annotazioni canary dell'ingress nginx indirizzano una percentuale di richieste a un secondo deployment. Inizi dal 10%, verifichi il tasso di errore e la latenza, quindi aumenti gradualmente il peso fino al 100%.

metadata:
  annotations:
    nginx.ingress.kubernetes.io/canary: "true"
    nginx.ingress.kubernetes.io/canary-weight: "10"

Combinare le strategie di scaling

Una configurazione solida combina tutti questi elementi:

  • HPA o KEDA imposta il numero di repliche in base alla domanda
  • Ingress bilancia il carico tra le repliche
  • I pesi canary distribuiscono in modo sicuro le nuove versioni

Insieme offrono un servizio dei modelli elastico, resiliente e a basso rischio.

Verifica rapida

Verifichi le Sue conoscenze sullo scaling.

Riepilogo

Ha imparato a scalare gli endpoint dei modelli:

  • HPA con targetCPUUtilizationPercentage esegue lo scaling in base alla CPU
  • KEDA esegue lo scaling in base alla lunghezza della coda e supporta lo scaling fino a zero
  • Ingress nginx bilancia il carico tra le repliche
  • I pesi canary spostano gradualmente il traffico per rilasci sicuri
Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
53
Lezioni
225

Domande Frequenti

La lezione «Scalabilità e auto-scaling degli endpoint dei modelli» è gratuita?

Sì — il testo completo di «Scalabilità e auto-scaling degli endpoint dei modelli» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Scalabilità e auto-scaling degli endpoint dei modelli»?

Kubernetes HPA per i pod del modello, scalabilità basata sul traffico, deployment A/B, rilasci canary Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Scalabilità e auto-scaling degli endpoint dei modelli»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Containerizzazione dei modelli ML con Docker
  2. Deployment nel cloud: AWS SageMaker
  3. Serving ad alte prestazioni con Triton Inference Server
  4. Scalabilità e auto-scaling degli endpoint dei modelli
← Torna a Learn AI with Python