Danh sách bài viết

Bài 38: Deploy lên AWS / GCP (overview)

Khi nào chuyển từ Render/Railway sang AWS hoặc GCP, chọn service nào trong hàng trăm option, trade-off giữa ECS Fargate, Cloud Run, SageMaker, Vertex AI, Lambda — và các pitfalls về cost cần tránh ngay từ đầu.

27/05/2026
2 lượt xem
1

Mục tiêu bài học

Sau bài này, bạn sẽ:

  • Biết khi nào nên chuyển từ Render/Railway sang AWS hoặc GCP.
  • Phân biệt được ECS Fargate, EKS, SageMaker, Lambda trên AWS — và Cloud Run, GKE, Vertex AI trên GCP.
  • Hiểu trade-off giữa các lựa chọn, không chỉ biết "cái nào tốt hơn".
  • Nhận biết các pitfalls về cost trước khi xảy ra.

Bài này không đi qua từng bước setup chi tiết — tài liệu chính thức của AWS và GCP làm việc đó tốt hơn. Mục tiêu là hiểu bức tranh tổng, biết chọn đúng service, và tránh các lỗi phổ biến.

2

Khi nào cần AWS / GCP thay vì PaaS

Bài 36 và 37 đã trình bày Render, Railway, Fly.io — các PaaS phù hợp cho prototype và traffic nhỏ. AWS và GCP đáp ứng những nhu cầu mà PaaS không đáp ứng tốt:

Scale lớn

PaaS thường có giới hạn instance size và autoscale policy cứng. Khi cần xử lý vài nghìn request/giây, tùy chỉnh autoscale theo custom metric (GPU utilization, queue depth), hoặc chạy model batch trên cluster — AWS/GCP cần thiết hơn.

Service ecosystem

AWS có 200+ service, GCP 150+. Nếu app cần kết hợp nhiều thành phần — message queue, full-text search, managed Redis, vector database, ML pipeline — dùng cùng 1 nhà cung cấp giảm latency và đơn giản hóa network policy.

GPU instance đa dạng

AWS cung cấp T4 (g4dn), A10G (g5), V100 (p3), A100 (p4d), H100 (p5). GCP có T4, L4, A100, H100, và TPU. Pricing thường thấp hơn PaaS ở cùng phần cứng nếu dùng committed use hoặc spot/preemptible.

Compliance và region

Nếu data cần ở trong lãnh thổ cụ thể (VN, US-only, EU GDPR), hoặc cần certification như SOC 2, ISO 27001 — AWS và GCP đều có region toàn cầu và compliance documentation.

Trade-off cần nhận rõ

AWS/GCP phức tạp hơn đáng kể. Learning curve cao. Dễ phát sinh bill lớn nếu config sai (để security group open, idle GPU, endpoint không tắt). Với team 1-2 người ở giai đoạn prototype, PaaS vẫn là lựa chọn hợp lý hơn.

Tiêu chí PaaS (Render/Railway/Fly) AWS / GCP
Setup time Vài phút Vài giờ — vài ngày
Giá ở scale nhỏ Rẻ hơn hoặc tương đương Có thể đắt hơn nếu tính ops time
Giá ở scale lớn Đắt hơn đáng kể Rẻ hơn nếu dùng committed use
GPU instance Giới hạn hoặc không có Đa dạng, nhiều lựa chọn
Ops overhead Thấp Cao hơn
Compliance Hạn chế Đầy đủ

Hybrid pattern phổ biến: prototype trên Render → scale lên AWS/GCP khi traffic thật sự cần.

3

Kiến trúc tổng quát của 1 AI app trên cloud

Bất kể AWS hay GCP, AI app thường có cấu trúc tương tự:

Client (Web / Mobile)
        |
        v
API Gateway / Load Balancer (ALB trên AWS, HTTPS LB trên GCP)
        |
        v
Container Service (ECS Fargate / Cloud Run)
  - FastAPI app
  - Load model weight từ S3 / GCS khi startup
        |
        +--> AI Inference (in-process hoặc gọi sang service riêng)
        |
        +--> Database Layer
              - RDS Postgres / Cloud SQL
              - ElastiCache Redis / Memorystore
              - Vector DB (OpenSearch / AlloyDB / self-hosted Qdrant)
              - Object Storage: S3 / GCS (model weight, dataset, file upload)
        |
Observability
  - CloudWatch / Cloud Logging + Cloud Monitoring
  - Secrets Manager / Secret Manager (credentials)

Với LLM app gọi external API (OpenAI, Anthropic, Gemini), inference layer đơn giản hơn — container chỉ cần forward request và xử lý response. GPU instance chỉ cần thiết khi self-host model.

4

AWS — 5 cách deploy AI app

a) ECS + Fargate — recommended starter

ECS (Elastic Container Service) là service orchestration container của AWS. Fargate là compute engine serverless cho ECS — không cần quản lý EC2 instance, AWS lo phần đó.

Workflow cơ bản:

  1. Build Docker image và push lên ECR (Elastic Container Registry).
  2. Tạo Task Definition: chỉ định image, CPU/memory, env vars, port mapping.
  3. Tạo Service: số replica, kết nối ALB (Application Load Balancer), autoscale policy.

Pricing: tính theo vCPU-second và GB-hour khi container đang chạy.

Phù hợp: API inference CPU hoặc light GPU, team chưa có K8s expertise, muốn kiểm soát nhiều hơn Render nhưng không muốn quản lý EC2.

b) ECS / EKS trên EC2 — fine-grained control

Thay vì dùng Fargate, dùng EC2 instance làm compute cho ECS. Bạn tự chọn instance type (kể cả GPU instance), tự quản lý cluster node.

Ưu điểm: rẻ hơn Fargate khi chạy lâu dài (reserved instance giảm ~40-60%), linh hoạt hơn về instance type.

Nhược điểm: cần quản lý EC2 lifecycle, patch OS, capacity planning.

c) EKS — Kubernetes managed

EKS (Elastic Kubernetes Service) là Kubernetes do AWS quản lý control plane. Node vẫn là EC2 instance do bạn quản lý (hoặc dùng Fargate profile cho EKS).

Phù hợp: team có K8s expertise, organization với nhiều microservice cần orchestration đồng nhất, cần tính năng K8s native (custom operator, HPA chi tiết, etc.).

Không phù hợp: team nhỏ không có K8s background — overhead setup và maintenance cao.

d) SageMaker — ML platform managed

SageMaker là platform của AWS bao gồm training, hyperparameter tuning, và deploy inference endpoint. Bạn dùng SageMaker SDK để đóng gói model, deploy lên endpoint real-time hoặc batch transform.

Điểm mạnh: autoscale built-in, model monitoring (data drift detection), A/B testing endpoint, tích hợp với S3 và ECR. Phù hợp khi team tập trung vào ML, không muốn tự build inference infra.

Điểm yếu: pricing cao hơn ECS/EC2 thuần cho cùng phần cứng (markup ~20-30%). SageMaker endpoint nếu không tắt = tiền trôi đều đặn.

Gợi ý: học SageMaker sau khi đã hiểu ECS Fargate — nếu học SageMaker trước sẽ khó hiểu những gì nó abstract.

e) Lambda + API Gateway — serverless

Lambda là serverless function: chạy code khi có event, trả tiền per-invocation. Kết hợp với API Gateway để expose HTTP endpoint.

Giới hạn Lambda (as of 2025):

  • Max execution time: 15 phút.
  • Max memory: 10 GB.
  • Max ephemeral storage: 10 GB.
  • Container image size: 10 GB.

Phù hợp: gọi API bên ngoài (OpenAI, Anthropic) và xử lý nhẹ, webhook handler, event-driven preprocessing.

Không phù hợp: load LLM weight tự host (model >10 GB, load time dài hơn cold start budget), inference nặng, application cần warm state liên tục.

Cold start Lambda với container image có thể mất 3-10 giây tùy image size — cần tính vào UX nếu traffic thưa.

Tóm tắt lựa chọn AWS

Service Phù hợp khi Không phù hợp khi
ECS Fargate API inference CPU/light GPU, team nhỏ, muốn managed compute Cần GPU nặng, chạy lâu dài muốn tiết kiệm tối đa
ECS/EKS + EC2 GPU inference, chạy 24/7, cần tiết kiệm cost Team không muốn quản lý EC2
EKS Nhiều service, team có K8s Team nhỏ, MVP
SageMaker Team ML-focused, cần model monitoring built-in Budget tight, cần control chi tiết infra
Lambda Gọi external LLM API, webhook nhẹ Self-host LLM, inference dài, cold start sensitive
5

AWS services hỗ trợ AI app

Ngoài compute, AI app thường cần các service sau:

  • S3: object storage. Lưu model weight, dataset, file upload. Pricing rẻ (~$0.023/GB/tháng), nhưng egress (download ra internet) tính tiền riêng.
  • ECR: Elastic Container Registry — private Docker registry của AWS. Dùng để push image trước khi ECS/EKS pull.
  • RDS Postgres: managed Postgres. Multi-AZ cho production, automated backup, read replica.
  • ElastiCache Redis: managed Redis cluster. Dùng cho cache LLM response, session, rate limiting counter.
  • OpenSearch Service: managed OpenSearch (fork của Elasticsearch). Hỗ trợ vector search (k-NN plugin) — alternative cho self-hosted Qdrant/Chroma khi muốn managed service.
  • Bedrock: managed LLM API của AWS — gọi Anthropic Claude, Meta Llama, Cohere, Mistral mà không cần quản lý model. Billing theo token.
  • CloudWatch: logs, metrics, alarms. Container log tự động forward nếu cấu hình log driver.
  • Secrets Manager: lưu credentials (DB password, API key) và rotate tự động. Không hard-code secret trong env var hoặc image.
6

GCP — 4 cách deploy AI app

a) Cloud Run — recommended starter

Cloud Run là serverless container platform của GCP. Deploy Docker image, GCP tự scale từ 0 đến N instance dựa trên traffic. Không quản lý node hay VM.

Điểm nổi bật:

  • Scale to zero — không có traffic thì không trả tiền (khác ECS Fargate luôn chạy replica).
  • Auto HTTPS, custom domain, IAM integration built-in.
  • Gen 2 execution environment cải thiện đáng kể cold start và concurrency.
  • Hỗ trợ GPU (T4, L4) từ năm 2024 — phù hợp inference nhẹ.

Pricing: tính theo vCPU-second và GiB-second khi instance đang xử lý request (kể cả thời gian idle giữa request nếu min-instances > 0).

Phù hợp: API inference với traffic variable, LLM app gọi external API, prototype scale lên production.

b) GKE — Google Kubernetes Engine

Kubernetes managed của GCP. Hai mode:

  • Autopilot: GCP quản lý node, bạn chỉ khai báo workload. Đơn giản hơn, pricing theo Pod resource.
  • Standard: tự chọn node type (kể cả GPU), tự quản lý node pool.

GKE có reputation tốt — Kubernetes được phát triển từ Google, nên GKE thường ổn định và có nhiều tính năng K8s trước các managed K8s khác.

Phù hợp: tương tự EKS — team K8s, nhiều service, cần orchestration phức tạp.

c) Compute Engine — raw VM

Tương đương EC2 của AWS. Tự chọn OS, CPU/RAM, GPU. Có GPU instance: T4, L4, A100, H100.

Phù hợp khi cần full control hoặc đang migrate từ on-premise. Cần tự setup mọi thứ (web server, process manager, monitoring).

d) Vertex AI — ML platform managed

Tương đương SageMaker trên GCP. Bao gồm training job, model registry, prediction endpoint, pipeline, và AutoML. Tích hợp sâu với BigQuery, Dataflow, Pub/Sub.

Điểm mạnh so với SageMaker: tích hợp với Google data ecosystem tốt hơn — nếu data đang trên BigQuery, Vertex AI là lựa chọn tự nhiên.

Tương tự SageMaker: pricing cao hơn Cloud Run thuần, cần hiểu Cloud Run trước.

Tóm tắt lựa chọn GCP

Service Phù hợp khi Không phù hợp khi
Cloud Run API inference, traffic variable, scale to zero Inference cần warm state liên tục, GPU nặng
GKE Autopilot Nhiều service, muốn K8s nhưng không quản lý node Team chưa biết K8s
GKE Standard GPU serving, control node type Team nhỏ, overhead cao
Compute Engine Full control, GPU instance tự quản lý Không muốn ops nhiều
Vertex AI Data đang trên BigQuery, cần ML pipeline managed Budget tight, team muốn control infra
7

GCP services hỗ trợ AI app

  • Cloud Storage (GCS): object storage. Tương đương S3. Lưu model weight, dataset. Egress pricing tương tự AWS.
  • Artifact Registry: private Docker registry và package registry của GCP. Dùng thay cho Docker Hub cho private image.
  • Cloud SQL: managed Postgres / MySQL. Tương đương RDS.
  • Memorystore: managed Redis (và Valkey). Tương đương ElastiCache.
  • AlloyDB: Postgres-compatible, hiệu năng cao hơn Cloud SQL. Có AlloyDB Omni (self-managed) và có hỗ trợ pgvector cho vector search.
  • Pub/Sub: managed message queue. Tương đương SQS/SNS của AWS. Phù hợp async job, event-driven pipeline.
  • Vertex AI Search: enterprise search với vector search built-in. Managed alternative cho OpenSearch.
  • Cloud Logging: structured log aggregation. Container log tự động forward nếu dùng Cloud Run.
  • Cloud Monitoring: metrics, uptime check, alerting. Tích hợp với Prometheus.
  • Secret Manager: tương đương AWS Secrets Manager. Lưu API key, database password, không hard-code.
8

Cloud Run — ví dụ deploy nhanh

Cloud Run là service dễ bắt đầu nhất trên GCP cho AI Engineer. Ví dụ deploy API inference:

# Build và push image lên Artifact Registry
docker build -t asia-southeast1-docker.pkg.dev/PROJECT_ID/ai-repo/ai-api:v1 .
docker push asia-southeast1-docker.pkg.dev/PROJECT_ID/ai-repo/ai-api:v1

# Deploy lên Cloud Run (region Singapore)
gcloud run deploy ai-api \
  --image=asia-southeast1-docker.pkg.dev/PROJECT_ID/ai-repo/ai-api:v1 \
  --region=asia-southeast1 \
  --memory=2Gi \
  --cpu=2 \
  --concurrency=10 \
  --max-instances=5 \
  --set-env-vars=MODEL_NAME=sentence-transformers/all-MiniLM-L6-v2 \
  --set-secrets=OPENAI_API_KEY=openai-key:latest \
  --allow-unauthenticated

Một số flag quan trọng:

  • --concurrency: số request tối đa mỗi instance xử lý song song. Với AI inference nặng, giảm xuống 1 để tránh contention.
  • --max-instances: giới hạn scale-up. Quan trọng để kiểm soát cost.
  • --set-secrets: lấy secret từ Secret Manager thay vì truyền plaintext.
  • --min-instances 1: nếu không muốn cold start, giữ 1 instance warm (trả tiền liên tục).

Cloud Run trả về HTTPS URL ngay sau deploy, có thể map custom domain qua console hoặc gcloud run domain-mappings.

9

AWS vs GCP — so sánh overview

Tiêu chí AWS GCP
Market share ~32% (lớn nhất) ~12%
Job listings Nhiều hơn đáng kể Ít hơn
UX developer Console phức tạp hơn Console gọn hơn, CLI trực quan
AI / ML ecosystem SageMaker, Bedrock Vertex AI, TPU, Gemini API
Data ecosystem Redshift, Glue, Athena BigQuery (mạnh hơn cho analytics)
Starter container service ECS Fargate Cloud Run
Kubernetes managed EKS GKE (reputation tốt)
GPU ASIC riêng Inferentia (inference), Trainium (training) TPU v4/v5

Azure (đề cập ngắn): mạnh ở enterprise, Active Directory integration, và Azure OpenAI Service (GPT-4o, o3 qua Microsoft partnership). Nếu công ty đang dùng Microsoft stack — Azure có lợi thế về SSO và compliance.

Câu trả lời thực tế cho câu hỏi "AWS hay GCP": học cái mà job offer hoặc team hiện tại dùng. Nếu chưa có preference, AWS vì market share lớn hơn và job nhiều hơn. Nhưng GCP không tệ hơn — nhiều concept tương đương nhau, học 1 cloud giúp học cloud kia nhanh hơn.

10

GPU cho LLM serving

GPU instance phổ biến

GPU AWS instance GCP machine type Giá on-demand (~2025)
NVIDIA T4 (16 GB) g4dn.xlarge n1 + T4 GPU ~$0.53–0.75/h
NVIDIA A10G (24 GB) g5.xlarge g2 + L4 (tương đương) ~$1.0–1.3/h
NVIDIA V100 (16 GB) p3.2xlarge n1 + V100 ~$3/h
NVIDIA A100 (40/80 GB) p4d.24xlarge (8×A100) a2-highgpu-1g ~$3–4/h per card
NVIDIA H100 p5.48xlarge (8×H100) a3-highgpu-1g ~$6–8/h per card

Pricing thay đổi theo region và thời điểm. Kiểm tra pricing calculator chính thức trước khi commit.

Spot / Preemptible instance

AWS Spot Instance và GCP Preemptible VM (hoặc Spot VM) giảm giá 60-90% so với on-demand. Nhược điểm: instance có thể bị reclaim với thông báo ngắn (AWS: 2 phút, GCP: 30 giây).

  • Phù hợp: training batch, offline inference job — có thể checkpoint và resume.
  • Không phù hợp: production serving endpoint cần SLA — instance bị reclaim giữa chừng sẽ gây downtime.

AWS Inferentia và GCP TPU

AWS Inferentia (chip ASIC riêng của AWS) cung cấp throughput inference cao hơn GPU NVIDIA ở cùng mức giá, nhưng cần compile model sang Neuron SDK (không phải mọi model đều support). Instance inf2.xlarge có 2 Neuron Core + 32 GB HBM.

GCP TPU (Tensor Processing Unit) tối ưu cho JAX/Flax framework. Nếu model viết bằng PyTorch hoặc TensorFlow, cần convert hoặc dùng PyTorch/XLA — overhead đáng kể. Phù hợp nhất cho team Google Brain / DeepMind workflow.

Serving framework

Khi self-host LLM, hai framework phổ biến:

  • vLLM: throughput cao nhờ PagedAttention, continuous batching. Hỗ trợ hầu hết Hugging Face model.
  • TGI (Text Generation Inference, Hugging Face): dễ deploy, hỗ trợ nhiều model, tích hợp tốt với Hugging Face Hub.

Chi tiết về vLLM và TGI nằm ngoài scope bài này.

11

Cảnh báo cost

Phần lớn bill bất ngờ trên AWS/GCP xuất phát từ vài pattern cụ thể:

Idle GPU

GPU instance chạy 24/7 kể cả không có request. Ví dụ: 1 A100 instance ~$3-4/h × 24h × 30 ngày = khoảng $2,200–2,900/tháng. Nếu dùng cho dev/test mà quên tắt — bill sẽ xuất hiện cuối tháng.

Giải pháp: dùng Cloud Run hoặc ECS Fargate scale-to-zero thay vì EC2/Compute Engine chạy cố định, hoặc set auto-shutdown script.

SageMaker / Vertex AI endpoint không tắt

Endpoint real-time của SageMaker và Vertex AI tính tiền liên tục ngay cả khi không có traffic. Xóa endpoint sau khi demo hoặc dùng serverless inference endpoint (có cold start).

Egress fee

Transfer data ra internet tính tiền: AWS ~$0.09/GB, GCP ~$0.12/GB (tùy region). Transfer trong cùng region thường free hoặc rất rẻ. Nếu API trả response lớn (embedding, image), tính egress vào budget.

S3 / GCS bucket public

Bucket public cho phép ai cũng download data — vừa leak data vừa phát sinh egress fee. Luôn để bucket private, dùng pre-signed URL nếu cần share tạm thời.

Auto-scale không có giới hạn

Nếu không set max-instances (Cloud Run) hoặc max capacity (ECS autoscale), một spike traffic hay bug loop request có thể scale lên hàng trăm instance trước khi bạn kịp phản ứng.

Hành động ngay

  • Bật billing alerts ngay từ đầu (AWS Budgets, GCP Billing Budget). Set ngưỡng $50, $100, $500 và alert khi đạt.
  • Dùng AWS Cost Explorer hoặc GCP Cost Reports để theo dõi hàng tuần.
  • Kiểm tra pricing calculator trước khi chọn instance type: calculator.aws, cloud.google.com/products/calculator.
12

Common pitfalls

  • GPU dev instance để chạy 24/7. Thường xảy ra khi dùng EC2/Compute Engine với GPU để test model, xong quên tắt cuối ngày. Set cron job tắt instance ngoài giờ làm nếu không muốn tắt thủ công.
  • Security group / firewall rule mở quá rộng. Ví dụ: mở port 5432 (Postgres) ra 0.0.0.0/0 để dev cho tiện. Hệ quả là DB expose ra internet, có thể bị brute-force hoặc scan. Dùng VPC và chỉ allow traffic từ trong VPC.
  • Không dùng IAM role, hard-code access key. Access key trong code hoặc Dockerfile có thể leak qua Docker image history, public repo, hoặc log. Dùng IAM role cho EC2/ECS task, workload identity cho GKE/Cloud Run.
  • Không set resource limit cho container. Container không có memory limit có thể dùng hết RAM của host, crash các container khác. Luôn set --memory--cpu.
  • Không monitor endpoint sau deploy. Một endpoint scale lên 100 instance vì bug hoặc traffic spike mà không có alert — bill cuối tháng mới phát hiện.
  • Dùng SageMaker / Vertex AI trước khi hiểu ECS/Cloud Run. Service abstraction cao khó debug, khó hiểu underlying. Học layer thấp hơn trước.
13

Infrastructure as Code và CI/CD

Click console để setup hạ tầng là cách học, không phải cách production. Hai vấn đề chính:

  • Không reproduce được chính xác — cấu hình nằm trong đầu, không trong code.
  • Không audit được — ai đổi gì, lúc nào.

Infrastructure as Code (IaC)

Khai báo hạ tầng dưới dạng code, commit vào git:

  • Terraform: multi-cloud, declarative. Provider cho AWS (hashicorp/aws) và GCP (hashicorp/google) đều mature. Phổ biến nhất trong industry.
  • AWS CloudFormation / CDK: AWS-native. CDK dùng TypeScript/Python để generate CloudFormation template.
  • GCP Deployment Manager / Config Connector: GCP-native, ít dùng hơn Terraform trong thực tế.

Bài này không đi sâu vào IaC — đó là topic riêng trong Module 7 (MLOps) và DevOps. Điểm cần nhớ: không dùng IaC cho production là technical debt.

CI/CD pattern cơ bản

Push code → GitHub Actions trigger
  → Run tests
  → Build Docker image
  → Push image lên ECR / Artifact Registry
  → Deploy lên ECS / Cloud Run (update service với image mới)

GitHub Actions có action chính thức cho cả AWS (aws-actions/amazon-ecs-deploy-task-definition) và GCP (google-github-actions/deploy-cloudrun). Module 7 sẽ trình bày CI/CD cho ML pipeline chi tiết hơn.

14

Bắt đầu từ đâu

Lộ trình học thực tế cho AI Engineer mới tiếp cận cloud:

  1. Chọn 1 cloud để học trước. AWS vì market share và job listing nhiều hơn. GCP nếu đang làm với data pipeline trên BigQuery hoặc dùng Gemini/Vertex AI. Không cần học song song — concept tương đương, chuyển cloud sau khi thành thạo 1 cái dễ hơn nhiều.
  2. Bắt đầu với service đơn giản nhất. ECS Fargate (AWS) hoặc Cloud Run (GCP). Deploy cùng Docker image đã có từ bài 33-35. Không bắt đầu bằng SageMaker hay Vertex AI.
  3. Set billing alert trước khi làm gì khác. Không bỏ qua bước này.
  4. Học IAM sớm. Hiểu role, policy, least privilege. Security misconfiguration là nguyên nhân phổ biến nhất của cả data breach lẫn bill bất ngờ.
  5. Tránh SageMaker / Vertex AI giai đoạn đầu. Học khi đã hiểu raw container deploy, hoặc khi job yêu cầu cụ thể.

Free tier

Cả AWS và GCP đều có free tier để học:

  • AWS Free Tier: 12 tháng đầu có nhiều service miễn phí (EC2 t2.micro 750h/tháng, S3 5GB, RDS 750h/tháng). Một số service luôn free (Lambda 1M request/tháng, CloudWatch basic).
  • GCP Free Tier: $300 credit 90 ngày cho account mới. Một số service luôn free (Cloud Run 2M request/tháng, Cloud Storage 5GB).

Free tier đủ để học và chạy demo. GPU instance không nằm trong free tier — trả tiền nếu dùng.

15

Bài tiếp theo

Bài 39: MLOps là gì? Khác biệt với DevOps truyền thống — Module 7 bắt đầu: định nghĩa MLOps, vòng đời model trong production, và tại sao deploy model khác deploy web app thông thường.