Search

Top 5 Hosting Cho .NET Developer: So Sánh Chi Tiết 2026

Top 5 Hosting Cho .NET Developer: So Sánh Chi Tiết 2026

Mỗi lần khởi project .NET mới, câu hỏi "host ở đâu?" luôn tốn thời gian hơn cần thiết. Azure là obvious choice nhưng bill tháng đầu tiên nhìn muốn xỉu. Heroku bỏ free tier từ lâu rồi. AWS thì 47 service tên giống nhau không biết chọn cái nào. VPS rẻ nhưng phải tự setup mọi thứ.

Mình đã host .NET app trên đủ loại platform trong 3 năm qua — từ side project $0/tháng đến production app serve hàng triệu request. Bài viết này là kết quả: 5 lựa chọn tốt nhất cho .NET developer ở các mức khác nhau, kèm pricing thực tế, deploy workflow cụ thể, và quan trọng nhất — cái nào phù hợp cho use case nào.

Lưu ý: Pricing tham khảo tại thời điểm viết bài. Cloud providers thay đổi giá thường xuyên — check website chính thức trước khi quyết định.

Tiêu chí đánh giá

Mình đánh giá dựa trên 6 tiêu chí, đều nhìn từ góc .NET developer:

  • .NET support: runtime version, build pipeline, Docker support
  • Developer experience: deploy dễ hay khó, CI/CD tích hợp, logging/monitoring
  • Pricing: cost thực tế cho các tier khác nhau, hidden costs
  • Performance: cold start, response time, scaling
  • Database: PostgreSQL/SQL Server đi kèm hay phải setup riêng
  • Production readiness: SSL, custom domain, backup, uptime SLA

1. Azure App Service — best cho .NET, không bàn cãi

Tại sao số 1?

Microsoft làm cả .NET lẫn Azure. Sự tích hợp sâu không platform nào sánh được: deploy từ Visual Studio bằng right-click, .NET 8 runtime sẵn không cần Docker, Application Insights monitoring gần như zero-config, Azure DevOps pipeline template có sẵn.

Pricing thực tế

Free tier (F1):         $0/mo — 1GB RAM, 60 min CPU/day, shared infra
                        → đủ cho demo, không dùng production

Basic (B1):             ~$13/mo — 1.75GB RAM, custom domain, SSL
                        → side project nhỏ, API ít traffic

Standard (S1):          ~$70/mo — 1.75GB RAM, auto-scale, staging slot
                        → production thật sự

Premium (P1V3):         ~$140/mo — 8GB RAM, enhanced performance
                        → high traffic, enterprise

Database: Azure SQL từ ~$5/mo (Basic 2GB) hoặc PostgreSQL Flexible Server từ ~$13/mo. Đây là hidden cost mà nhiều người quên — app service rẻ nhưng database cộng vào thì bill tăng đáng kể.

Deploy workflow

# cách 1: CLI (nhanh nhất)
az webapp up --name myapp --resource-group mygroup --runtime "DOTNETCORE:8.0"

# cách 2: GitHub Actions (recommended cho team)
# azure-deploy.yml
- uses: azure/webapps-deploy@v3
  with:
    app-name: 'myapp'
    publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
    package: './publish'

# cách 3: Docker container
az webapp create --name myapp --resource-group mygroup \
  --plan myplan --deployment-container-image ghcr.io/myorg/myapp:latest

Ưu điểm

  • .NET runtime native — không cần Docker nếu không muốn, deploy ZIP thẳng
  • Deployment slots — swap staging ↔ production zero-downtime
  • Application Insights — distributed tracing, performance monitoring, exception tracking out of the box
  • Managed Identity — connect database, Key Vault không cần connection string trong code
  • Scale-out tự động dựa trên CPU/memory/request count

Nhược điểm

  • Giá leo nhanh. App Service + SQL Database + Application Insights + Storage = dễ dàng $100+/mo cho một app nhỏ
  • Cold start ở tier thấp. Free và Shared plan cold start 10-30 giây — app ngủ khi không có request
  • Vendor lock-in. Managed Identity, App Configuration, Azure-specific SDKs — migrate đi platform khác không đơn giản
  • Azure Portal phức tạp. Hàng chục blade, setting nằm lung tung, documentation dài nhưng khó tìm đúng thứ cần

Phù hợp cho

Enterprise, team dùng Visual Studio + Azure DevOps, app cần compliance (SOC 2, HIPAA), hoặc khi company đã có Azure subscription.

2. Railway — deploy nhanh nhất, DX tốt nhất

Tại sao chọn?

Railway là thứ Heroku lẽ ra nên trở thành. Push code lên GitHub → Railway tự build → deploy. Xong. Không config Dockerfile nếu không muốn (Nixpacks auto-detect .NET), không setup CI/CD, không SSH vào server. Từ git push đến app live mất dưới 2 phút.

Pricing thực tế

Trial:                  $5 credit — thử nghiệm
Pro:                    $5/mo base + usage (vCPU + RAM + network)
                        → .NET app nhỏ: ~$5-10/mo
                        → API medium traffic: ~$15-25/mo

Tính usage:
  vCPU:                 $0.000463/min
  RAM:                  $0.000231/min/GB
  Network egress:       $0.10/GB

Database: PostgreSQL add-on miễn phí 1GB, sau đó $0.000231/min/GB RAM. Thực tế app nhỏ + Postgres tốn khoảng $7-12/mo.

Deploy workflow

# cách 1: connect GitHub repo — tự động deploy mỗi push
# trên Railway dashboard: New Project → Deploy from GitHub repo → Done

# cách 2: Railway CLI
npm install -g @railway/cli
railway login
railway init
railway up

# cách 3: Dockerfile (custom)
# Railway auto-detect Dockerfile và build

Railway tự detect .NET project qua .csproj, chạy dotnet publish, serve bằng Kestrel. Zero config cho 90% trường hợp.

Ưu điểm

  • DX xuất sắc. Dashboard đẹp, deploy log real-time, rollback 1 click, environment variables UI rõ ràng
  • Nixpacks auto-detect. Push .NET project lên, nó tự biết build thế nào. Không cần Dockerfile
  • Preview environments. Mỗi PR tạo preview deploy riêng — review feature trước khi merge
  • Database included. PostgreSQL, Redis, MySQL — add 1 click, connection string auto-inject
  • Monorepo support. Nhiều service trong 1 repo, mỗi service deploy riêng

Nhược điểm

  • Không có free tier lâu dài. $5/mo tối thiểu sau trial — side project $0/mo không có
  • Region hạn chế. US-West, US-East, EU-West — không có Asia. Latency cao cho user Việt Nam (~200ms)
  • Không có auto-scale horizontal. Vertical scaling (thêm RAM/CPU) OK, nhưng không tự thêm instance khi traffic tăng
  • Usage-based billing khó dự đoán. App bị bot spam → bill tăng vọt mà không có cap

Phù hợp cho

Side project cần lên nhanh, startup MVP, API cho mobile app, indie developer ghét config server. Đặc biệt tốt khi cần PostgreSQL đi kèm và không muốn setup riêng.

3. Hetzner + Coolify — self-hosted PaaS, giá không tưởng

Tại sao chọn?

Hetzner là cloud provider Đức với giá rẻ khó tin — VPS 2 vCPU, 4GB RAM, 40GB SSD chỉ €4.5/tháng. Nhân 3 lần rẻ hơn DigitalOcean cùng spec. Cộng thêm Coolify — open-source PaaS giống Heroku/Railway nhưng chạy trên server riêng — bạn có platform deploy-bằng-git-push với giá VPS thuần.

Pricing thực tế

Hetzner VPS:
  CX22 (2 vCPU, 4GB RAM):      €4.5/mo (~$5)
  CX32 (4 vCPU, 8GB RAM):      €8.5/mo (~$9.5)
  CX42 (8 vCPU, 16GB RAM):     €16/mo (~$18)

Coolify:                         $0 (self-hosted, open source)

Tổng cost cho production stack:
  CX32 + Coolify + PostgreSQL + Redis = ~$9.5/mo
  (chạy tất cả trên 1 VPS)

So sánh: Azure App Service B1 + Azure SQL Basic = ~$18/mo. Hetzner CX32 mạnh hơn gấp đôi, chạy được cả app + database + cache, giá bằng một nửa.

Deploy workflow

# 1. Tạo VPS Hetzner (1 lần)
# Dashboard → Create Server → CX32 → Docker pre-installed

# 2. Cài Coolify (1 lần, 2 phút)
curl -fsSL https://cdn.coolify.io/install.sh | bash

# 3. Trong Coolify dashboard:
#    - Add GitHub source
#    - New Resource → Docker Compose / Dockerfile
#    - Connect repo → Auto deploy on push

# 4. Thêm database:
#    - New Resource → PostgreSQL → 1 click
#    - Connection string auto-generate

Coolify cung cấp: auto SSL (Let's Encrypt), reverse proxy (Traefik), log viewer, environment variables, database backup schedule, webhook deploy — tất cả qua web UI.

Ưu điểm

  • Giá không thể rẻ hơn. €4.5/mo cho VPS mạnh hơn Azure B1. Chạy 3-4 app + database trên cùng VPS
  • Full control. SSH vào server bất cứ lúc nào. Muốn install gì, config gì tùy ý. Không bị vendor limitation
  • Coolify = Railway experience trên VPS riêng. Git push deploy, auto SSL, database 1-click — nhưng data ở server bạn own
  • EU datacenter. Hetzner có datacenter Đức và Finland — GDPR compliance tự nhiên. Cũng có US-East
  • Predictable billing. Flat rate hàng tháng, không usage-based surprise

Nhược điểm

  • Tự quản lý server. Security updates, disk full, server down lúc 3h sáng — trách nhiệm của bạn. Managed service lo hết, VPS thì bạn lo
  • Không có Asia datacenter. Gần nhất là US-East hoặc Finland. User Việt Nam latency ~180-250ms. Cần CDN cho static assets
  • Coolify vẫn đang phát triển. Đôi khi bug, update breaking, community nhỏ hơn các managed platform. Không có SLA
  • Backup phải tự setup. Hetzner có snapshot (tính phí), nhưng database backup schedule phải configure trong Coolify hoặc cron
  • Scaling manual. Thêm traffic → phải nâng VPS tier bằng tay hoặc setup load balancer riêng

Phù hợp cho

Developer thoải mái với Linux/Docker, budget hạn chế, host nhiều project trên cùng server, cần EU hosting cho GDPR, hoặc đơn giản là không muốn trả $50+/mo cho cái mà VPS $10 làm được.

4. Fly.io — edge deployment, global latency thấp

Tại sao chọn?

Fly.io deploy app lên nhiều datacenter toàn cầu — app chạy gần user nhất. API server ở cả Singapore, Tokyo, Amsterdam, São Paulo cùng lúc. User Việt Nam hit Singapore instance (~30ms), user Mỹ hit Chicago instance (~20ms). Không platform nào ở tầm giá này cho multi-region dễ như Fly.

Pricing thực tế

Free tier:             3 shared-CPU VMs, 256MB RAM mỗi cái
                       → đủ cho 1-2 side project nhỏ

Pay-as-you-go:
  Shared CPU (1x):     ~$2/mo
  Dedicated CPU (1x):  ~$30/mo
  RAM:                 $6/GB/mo
  Storage (volume):    $0.15/GB/mo

Typical .NET app:
  1 shared-1x VM, 512MB RAM = ~$3-5/mo
  + Fly Postgres (256MB): ~$0 (trong free allowance)
  = $3-5/mo cho global deployment

Deploy workflow

# cài CLI
curl -L https://fly.io/install.sh | sh

# trong thư mục project (cần Dockerfile)
fly launch
# → auto-detect Dockerfile, chọn region, tạo app

fly deploy
# → build, push, deploy

# scale ra nhiều region
fly scale count 2 --region sin,nrt
# → 1 instance Singapore + 1 instance Tokyo

Fly.io yêu cầu Dockerfile — không có Nixpacks như Railway. Nhưng Dockerfile cho .NET khá standard.

Ưu điểm

  • Multi-region dễ dàng. fly scale count 2 --region sin,hkg — xong, app chạy ở Singapore và Hong Kong. Latency cho user châu Á cực thấp
  • Free tier thật sự dùng được. 3 shared-CPU VMs miễn phí — host 2-3 side project nhỏ thoải mái
  • Fly Postgres. Managed PostgreSQL chạy trên Fly infrastructure — replicate theo region, read replica tự động
  • Anycast networking. Một IP, request tự route đến instance gần nhất. Không cần DNS-based load balancing
  • WireGuard private network. Các app trên Fly nói chuyện với nhau qua private network — không expose internal service ra internet

Nhược điểm

  • Bắt buộc Docker. Không có native .NET runtime support — phải viết Dockerfile. Với dev chưa quen Docker, đây là rào cản
  • RAM giới hạn ở tier rẻ. 256MB RAM cho .NET hơi chật — app phức tạp cần tối thiểu 512MB
  • Developer experience trung bình. CLI-first, không có dashboard đẹp như Railway. Log viewer basic, monitoring phải dùng tool ngoài
  • Cold start. Machine stop khi không có traffic (auto-stop), cold start 3-8 giây. Phải pay thêm để machine always-on
  • Pricing phức tạp. CPU per-second, RAM per-second, bandwidth, volume storage — khó estimate bill trước

Phù hợp cho

App cần low latency cho user nhiều quốc gia, API cho mobile app global audience, hoặc khi bạn muốn free tier tốt cho side project. Đặc biệt mạnh nếu user chính ở Đông Nam Á — datacenter Singapore.

5. DigitalOcean App Platform — balanced, không drama

Tại sao chọn?

DigitalOcean không phải rẻ nhất, không phải feature nhiều nhất, không phải nhanh nhất. Nhưng nó ổn định, predictable, documentation tốt, và dashboard dễ dùng. Nó là Toyota Camry của hosting — không exciting nhưng đáng tin cậy.

Pricing thực tế

App Platform:
  Starter:              $0/mo — static sites only
  Basic:                $5/mo — 512MB RAM, 1 vCPU
  Pro:                  $12/mo — 1GB RAM, 1 vCPU, auto-scale

Droplet (VPS):
  Basic:                $6/mo — 1GB RAM, 1 vCPU, 25GB SSD
  Premium:              $8/mo — 1GB RAM, 1 vCPU, NVMe SSD

Managed Database:
  PostgreSQL:           $15/mo (1GB RAM, 10GB storage)
  → đắt hơn Hetzner/Railway nhưng fully managed

Deploy workflow

# App Platform — Git push deploy (giống Railway)
# Dashboard → Create App → Connect GitHub → Select branch → Deploy

# Droplet — Docker deploy
doctl compute droplet create myapp \
  --image docker-20-04 --size s-1vcpu-1gb --region sgp1

# SSH vào, docker compose up — manual nhưng full control

Ưu điểm

  • Singapore datacenter. Latency cho user Việt Nam ~30-50ms — tốt nhất trong 5 lựa chọn (trừ khi tự host VPS ở VN)
  • App Platform đơn giản. Git push deploy, auto SSL, managed database — PaaS experience ổn
  • Predictable pricing. Flat rate, không usage-based surprise. $5/mo là $5/mo
  • Documentation xuất sắc. Tutorial cho mọi thứ, community lớn, Stack Overflow answers nhiều
  • Kubernetes managed. Nếu sau này cần scale lên K8s, DOKS (DigitalOcean Kubernetes) setup dễ

Nhược điểm

  • Managed database đắt. PostgreSQL $15/mo cho spec mà Hetzner cho €4.5 — premium cho "managed"
  • App Platform .NET support trung bình. Auto-detect chậm hơn Railway, đôi khi cần custom Dockerfile
  • Không có free tier cho app. Static site free, nhưng .NET app tối thiểu $5/mo
  • Không có edge deployment. App chạy ở 1 region — không multi-region như Fly.io
  • Scale-out hạn chế ở App Platform. Pro plan auto-scale nhưng max 3 instances, cần manual config nhiều hơn

Phù hợp cho

Team nhỏ cần hosting đáng tin, user chính ở Đông Nam Á (Singapore DC), budget trung bình, hoặc khi bạn muốn platform "just works" mà không cần đọc 50 trang docs.

Bảng so sánh tổng hợp

                    Azure        Railway      Hetzner      Fly.io       DO
──────────────────────────────────────────────────────────────────────────
Giá khởi điểm      $0 (free)    $5/mo        €4.5/mo      $0 (free)    $5/mo
Giá production      ~$70/mo     ~$15/mo      ~$9.5/mo     ~$10/mo      ~$17/mo
.NET native         ✓            ✓(Nixpacks)  Docker       Docker       Docker
Database kèm        Riêng($5+)   ✓(free 1GB)  ✓(Coolify)   ✓(Fly PG)    Riêng($15)
Auto-scale          ✓            ✗            ✗            ✓(region)    Limited
Asia datacenter     ✓(Japan)     ✗            ✗            ✓(SIN,NRT)   ✓(SGP)
Custom domain       ✓            ✓            ✓            ✓            ✓
SSL auto            ✓            ✓            ✓(Coolify)   ✓            ✓
Deploy difficulty    Trung bình   Dễ           Trung bình   Trung bình   Dễ
Monitoring          Excellent    Basic        Self-setup    Basic        Basic
SLA                 99.95%       99.9%        99.9%        99.99%       99.99%
──────────────────────────────────────────────────────────────────────────

Recommendation theo use case

"Side project, $0/mo"

Fly.io free tier. 3 shared VMs miễn phí, đủ cho hobby project. Cần Dockerfile nhưng template .NET có sẵn.

Hoặc Azure Free tier nếu đã có Azure account. 60 phút CPU/ngày — đủ cho demo.

"Startup MVP, cần ship nhanh, $10-20/mo"

Railway. Git push deploy, database included, preview environments. Focus vào build product, không vào config server.

"Production thật, budget $10-30/mo"

Hetzner + Coolify. Giá thấp nhất cho resource cao nhất. Cần thoải mái Docker và Linux cơ bản.

Hoặc Fly.io nếu cần multi-region và user nhiều quốc gia.

"Production enterprise, budget $50+/mo"

Azure App Service. Không bàn cãi. Deployment slots, Application Insights, Managed Identity, compliance certifications. Nếu company đã dùng Azure, đây là lựa chọn duy nhất hợp lý.

"User chủ yếu Việt Nam/Đông Nam Á"

DigitalOcean SGP hoặc Fly.io SIN. Cả hai có datacenter Singapore, latency ~30-50ms cho Việt Nam.

Hetzner và Railway không có Asia DC — latency 180-250ms. Chấp nhận được cho API, nhưng website cần responsive thì nên chọn platform có Asian presence.

Dockerfile chuẩn cho .NET — dùng chung mọi platform

Fly.io, Hetzner, DigitalOcean đều cần Docker. Template này mình dùng cho mọi project:

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src

COPY *.csproj .
RUN dotnet restore

COPY . .
RUN dotnet publish -c Release -o /app/publish --no-restore

FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
RUN adduser --disabled-password --gecos '' appuser && chown -R appuser /app
USER appuser
COPY --from=build /app/publish .

HEALTHCHECK --interval=30s --timeout=3s \
    CMD curl -f http://localhost:8080/health || exit 1

ENV ASPNETCORE_URLS=http://+:8080
EXPOSE 8080
ENTRYPOINT ["dotnet", "MyApp.dll"]

Copy file .csproj trước, restore riêng → Docker cache layer. Source code thay đổi chỉ rebuild bước publish, không restore lại packages. Build time từ 3 phút giảm xuống 30 giây.

Chi phí ẩn cần chú ý

Bandwidth. Hầu hết platform cho miễn phí 100GB-1TB/mo. Nhưng nếu app serve nhiều ảnh, video, hoặc bị DDoS — bandwidth bill có thể vượt app cost.

Database backup. Azure và DigitalOcean managed DB auto-backup. Hetzner/Coolify phải tự setup. Mất database mà không có backup = thảm họa.

Log storage. Application Insights giữ log 90 ngày miễn phí. Railway log 7 ngày. Fly.io log chỉ real-time. Cần log lâu hơn → phải export sang service riêng (Seq, Loki, Datadog).

SSL renewal. Let's Encrypt auto-renew nhưng đôi khi fail silently. Monitor SSL expiry — cert hết hạn = website die với browser warning.

Domain cost. Mọi platform hỗ trợ custom domain nhưng domain bạn phải mua riêng. ~$10-15/năm cho .com.

Tổng kết

Không có hosting "tốt nhất" — chỉ có hosting phù hợp nhất cho bạn lúc này.

Mới bắt đầu, budget $0? → Fly.io free tier. Cần ship nhanh? → Railway. Cần rẻ mà mạnh? → Hetzner + Coolify. Cần enterprise grade? → Azure. Cần Asia latency? → DigitalOcean Singapore hoặc Fly.io Singapore.

Điều mình muốn nhấn mạnh: đừng over-invest vào hosting khi sản phẩm chưa có user. $5/mo Railway đủ cho MVP. Khi có traction rồi — có tiền, có traffic, có yêu cầu cụ thể — lúc đó mới cần Azure hay self-hosted cluster. Premature infrastructure optimization tốn thời gian mà không mang lại giá trị.

Deploy lên, ship sản phẩm, rồi optimize sau.

Culi Dev

Culi Dev

Enjoy coding, enjoy life!

Leave a comment

Your email address will not be published. Required fields are marked *

Your experience on this site will be improved by allowing cookies Cookie Policy