· deployment / fly-io / paas
Fly.io năm 2026: sáu tháng chạy production thực tế
Fly.io đạt 7.5/10. Edge deployment tốt nhất với 30+ region ở giá PaaS; bị kéo lại bởi deployment API không ổn định và Managed Postgres còn sơ khai.
Bởi Ethan
2.302 từ · 12 phút đọc
Dùng Fly.io nếu người dùng của bạn nằm rải rác khắp châu lục và latency thực sự ảnh hưởng đến sản phẩm. Nếu bạn là developer solo muốn một cuộc sống bình yên, Railway hay Render sẽ phục vụ tốt hơn với ít đau đầu hơn. Nếu bạn đang đánh giá Fly cho workload regulated hoặc enterprise, lịch sử outage và SLA hỗ trợ mặc định là những điểm chặn — dừng lại ở đây.
Bài này dành cho ai
Developer senior và team nhỏ (2–5 người) đã vượt qua giới hạn single-region của Heroku hay Railway. Bạn cần quen với Docker và không ngại fly.toml. Nếu đây là PaaS đầu tiên của bạn, bắt đầu với Railway — bạn sẽ đến với Fly khi thực sự cần.
Chúng tôi đã kiểm thử điều gì
Dữ liệu giá và tính năng được lấy trực tiếp từ tài liệu Fly.io, kiểm tra vào tháng 5/2026. Đánh giá độ tin cậy dựa trên bài post-mortem về outage tháng 11/2024, các luồng thảo luận trong cộng đồng Fly, và HN. Đánh giá Postgres bao gồm thông báo ngừng hỗ trợ của Supabase từ tháng 4/2025. Các so sánh sử dụng Railway Hobby ($5/tháng), Render Web Service ($7/tháng), và Coolify trên Hetzner (~$15/tháng tự vận hành).
Fly.io làm tốt điều gì
Mô hình Machines
Fly sử dụng Firecracker microVMs — cùng công nghệ bên dưới AWS Lambda — cho phép thanh toán theo từng giây và cold start nhanh. Machines API cho phép bạn kiểm soát trực tiếp vòng đời VM: khởi động, dừng, suspend, xóa — thông qua fly machine run hoặc REST API. Linh hoạt hơn so với Heroku dynos hay Render services.
Một shared-cpu-1x 256 MB Machine ở Amsterdam tốn $0.0028/giờ (~$2.02/tháng). performance-1x 2 GB Machine là $0.0447/giờ. Bạn chỉ trả tiền cho những gì đang chạy.
# Khởi động một machine
fly machine run . --name api-worker --region ams
# Dừng khi xong
fly machine stop <machine-id>
Autostop hữu ích về lý thuyết: đặt auto_stop_machines = "stop" và min_machines_running = 0, Machines nhàn rỗi sẽ không tốn tiền. Nhưng có vấn đề — xem phần pain points.
Edge deployment — 30+ region
Fly tự động định tuyến traffic đến Machine gần nhất đang hoạt động. Bạn chọn region; Fly xử lý phần còn lại. Railway chỉ hỗ trợ một region mỗi service. Render giới hạn ở năm region cố định. Nếu người dùng của bạn đang ở Tokyo, São Paulo và Frankfurt cùng một lúc, Fly giải quyết một lớp vấn đề latency mà các nền tảng khác phải dùng CDN tricks hay custom routing mới xử lý được.
Điều này quan trọng với real-time apps, gaming backend, và API với SLA quốc tế. Với một side project chỉ phục vụ user ở Mỹ thì không cần thiết.
Private networking (WireGuard 6PN)
Mỗi app trong một Fly organization chia sẻ mesh WireGuard mà Fly gọi là “6PN.” Service discovery dùng .internal DNS — mydb.internal để kết nối database, redis.internal cho Redis. Không cần setup VPC, không cần security group rules, không có proxy giữa bạn và các service của mình.
Bạn có thể kết nối laptop dev vào mesh:
fly wireguard create personal ams dev-laptop
Điều này giúp debug với production service trở nên đơn giản. Nhớ cân nhắc trước khi trỏ bất kỳ dữ liệu nhạy cảm vào đây.
Trải nghiệm deploy
flyctl (cũng có thể gọi là fly) bao phủ deployment, secrets, SSH console, log streaming, scaling và quản lý region trong một binary duy nhất. Deploy đầu tiên từ Dockerfile thường dưới năm phút. Các lần deploy sau hưởng lợi từ layer caching. fly deploy hỗ trợ chiến lược rolling, canary và immediate.
Dashboard đã cải thiện đáng kể trong năm 2025 — nay là lựa chọn thực sự thay thế được flyctl cho hầu hết tác vụ hàng ngày. Điều này không đúng một năm trước.
Prometheus + Grafana tích hợp sẵn
Mỗi app đều có một Grafana instance được quản lý tại fly-metrics.net, được hỗ trợ bởi Prometheus store — tự động, không cần setup. Log stream qua NATS — fly logs để xem live, hoặc chuyển tiếp đến Datadog, SigNoz, hay bất kỳ NATS-compatible sink nào.
Với monitoring production giai đoạn đầu, đây tốt hơn ngay từ đầu so với bất kỳ thứ gì Railway hay Render cung cấp ở mức giá tương đương.
Những vấn đề gặp phải sau sáu tháng production
Latency cold start
Autostop được bật mặc định. Khi một Machine đã dừng nhận được request, Fly Proxy xếp hàng connection trong khi VM khởi động lại. Chế độ stop đầy đủ thêm vài giây vào latency của request đầu tiên. Chế độ suspend (giữ nguyên memory) rút ngắn xuống vài trăm millisecond — nhưng suspend có những lưu ý chưa được tài liệu hóa đầy đủ dù docs có đề cập.
Chủ đề cộng đồng: Cold start and health check failures on deployed APIs.
Trên thực tế, với bất kỳ API user-facing nào có traffic bursty, bạn sẽ chạy min_machines_running = 1 để tránh p99 spikes. Điều đó loại bỏ phần lớn lợi ích tiết kiệm chi phí. Autostop thực sự hữu ích cho internal tooling, scheduled job và one-off worker. Không phù hợp cho web service cần chạy liên tục.
Độ tin cậy của deployment API
Đây mới là vấn đề thực sự. Vào tháng 11/2024, deployment API của Fly bị sập do consensus split-brain trong lớp state replication. Monitoring bên ngoài ghi nhận khoảng 16 phút ảnh hưởng; một số người dùng báo cáo lâu hơn. Các app đang chạy vẫn hoạt động — runtime plane không bị ảnh hưởng. Nhưng deploy thất bại.
Co-founder tptacek đã post trên HN thừa nhận đây là rủi ro kiến trúc được biết đến. Nhiều người dùng báo cáo 5–6 sự cố lớn cá nhân. Một người dùng ghi chép lại việc chuyển sang DigitalOcean sau bốn lần down trong bốn tháng trong năm 2023–2024.
Quyết định tách biệt deployment plane khỏi runtime plane là hợp lý. Vấn đề nằm ở khâu thực thi. Nếu team của bạn deploy thường xuyên lên production — nhiều lần mỗi ngày — một deploy thất bại trong lúc push là một tình huống khẩn cấp. Hãy tính đến điều đó.
Nguồn: HN thread: Fly.io outage Nov 2024.
Managed Postgres còn nhiều hạn chế
Postgres cộng đồng cũ không được quản lý (“Fly Postgres”) thực tế đã bị deprecated. Tài liệu chính thức của Fly nêu rõ họ “không thể cung cấp hỗ trợ hay hướng dẫn cho unmanaged Postgres.” Phiên bản thay thế là Managed Postgres (MPG), phát hành năm 2025.
Các hạn chế của MPG tính đến tháng 5/2026:
- Chỉ 12 region — so với 30+ của Machines
- Chỉ PostgreSQL 16 — không có lựa chọn phiên bản, không có upgrade path tại chỗ
- Không có alerting cho khách hàng
- Không có công cụ database migration tích hợp
- Extensions: tất cả trusted extensions từ bản phân phối PostgreSQL 16 mặc định (uuid-ossp, hstore, ltree, citext, pgcrypto, v.v.) cộng
pgvectorvàPostGISnhư là extras rõ ràng; third-party extensions ngoài pgvector và PostGIS không có sẵn - Storage giới hạn 1 TB
Supabase đã deprecated offering Fly Postgres của họ vào ngày 11 tháng 4, 2025, lý do là các ràng buộc kiến trúc.
Nguồn: GitHub Discussion #33413.
Khuyến nghị hiện tại của cộng đồng: dùng Neon hoặc Supabase cho serverless hay scale-to-zero Postgres. Dùng Fly MPG chỉ khi bạn cần mọi thứ trong private network của Fly và chấp nhận được các hạn chế hiện tại.
Hỗ trợ và hóa đơn bất ngờ
Kênh hỗ trợ chính là forum cộng đồng của Fly. Paid support bắt đầu từ $29/tháng. Trong một sự cố production lúc 3 giờ sáng, điều đó khá mỏng. Outage tháng 11/2024 không có thông báo chủ động từ Fly cho đến khi cộng đồng gắn cờ trên HN.
Mô hình billing cộng gộp nhanh: compute theo giây + egress + $2/tháng dedicated IPv4 mỗi app + $0.15/GB/tháng volume storage. Volume bị quên và traffic spike bất ngờ sinh ra hóa đơn bất ngờ. Các organization tạo sau 18/7/2024 tự động bị tính phí cho inter-region private network traffic; organization cũ có thể opt in tự nguyện. Nếu bạn chạy hàng chục service nhỏ, kiểm tra định kỳ.
Tín hiệu từ công ty
Fly sa thải khoảng 40 người vào tháng 9/2024, chủ yếu trong mảng devrel và growth. Co-founder tptacek đăng trên HN rằng mục tiêu là kéo dài runway vượt qua 2026 mà không cần thêm vốn. Fly trước đó đã huy động $70M Series C với định giá $467M. Đội ngũ kỹ thuật cốt lõi phần lớn không bị ảnh hưởng.
Đây là dấu hiệu cần chú ý, chưa phải cờ đỏ. Công ty có doanh thu thực và cái nhìn tỉnh táo về chi phí vận hành. Nhưng với các team đang cam kết production trong ba năm, hãy cân nhắc.
Nguồn: HN thread: Layoffs at Fly.io.
Thực tế về giá
Tất cả số liệu lấy từ trang giá công khai, tháng 5/2026.
Fly.io — Các gói Managed Postgres (MPG):
| Gói | CPU | RAM | Storage | Giá/tháng |
|---|---|---|---|---|
| Basic | Shared-2x | 1 GB | Provisioned | $38 |
| Starter | Shared-2x | 2 GB | Provisioned | $72 |
| Launch | Perf-2x | 8 GB | Provisioned | $282 |
| Scale | Perf-4x | 32 GB | Provisioned | $962 |
Storage: $0.28/GB/tháng từ GB đầu tiên — không có dung lượng tặng kèm. Volume storage: $0.15/GB/tháng. Dedicated IPv4: $2/tháng mỗi app.
Setup production nhỏ điển hình: 2× shared-cpu-1x 512 MB API machines + MPG Basic = ~$42–50/tháng.
So sánh — workload single-region (1× API instance + managed Postgres, tháng 5/2026):
| Nền tảng | Compute | Postgres | Tổng tháng ước tính |
|---|---|---|---|
| Fly.io | shared-1x 256MB (~$2/tháng) | MPG Basic $38 | ~$42 |
| Railway | Hobby $5 cố định + usage | Tính trong usage | ~$10–15 |
| Render | Web Service $7 | Managed PG $6 | ~$13 |
| Coolify + Hetzner | VPS ~$15 cố định | Tự quản lý | ~$15 |
Với workload single-region, Railway hay Render rẻ hơn đáng kể. Lợi thế chi phí của Fly chỉ xuất hiện ở quy mô multi-region và billing theo giây với workload có traffic bất thường.
Nếu bạn đang so sánh Fly với một nền tảng cụ thể, chúng tôi có các bài so sánh chi tiết: Fly.io vs Railway phân tích billing và độ tin cậy cho team nhỏ; Fly.io vs Render so sánh global reach với sự đơn giản khi deploy. Xem tổng quan rộng hơn tại nền tảng deploy tốt nhất cho ứng dụng full-stack 2026.
Nên dùng Fly.io khi nào
Dùng Fly khi:
- Người dùng của bạn phân tán toàn cầu và latency ảnh hưởng rõ ràng đến sản phẩm — gaming backend, real-time collaboration, API với SLA quốc tế
- Bạn quen với Docker,
fly.toml, và các khái niệm distributed systems - Bạn muốn kiểm soát infrastructure chi tiết mà không cần đi hết sang AWS/GCP
- Bạn đang xây dựng với Elixir/Phoenix — Fly đã thuê Chris McCord (người tạo ra Phoenix) và integration là first-class
- Bạn muốn stateful edge — LiteFS và Litestream cho SQLite replication là first-class trên Fly
- Bạn cần scale-to-zero cho nhiều service traffic thấp với tổng chi phí thấp
Không nên dùng Fly khi:
- Team không có kinh nghiệm Docker và muốn DX “push repo, nhận URL” → dùng Railway
- Bạn cần Postgres hoàn toàn được quản lý với hỗ trợ extension rộng → dùng Neon hoặc Supabase
- Tính có thể dự đoán của hóa đơn là ưu tiên hàng đầu → dùng Render với mô hình chi phí cố định
- Bạn cần hỗ trợ 24/7 production không kèm phụ phí $29+/tháng
- Bạn không thể chấp nhận rủi ro phải migrate platform
Đánh giá tổng thể
| Đối tượng | Điểm | Lý do |
|---|---|---|
| Developer solo / indie | 7/10 | Mạnh nhưng không có free tier, learning curve dốc; Railway hay Render thắng về sự đơn giản |
| Team nhỏ (2–5 người) | 7/10 | Giá trị tốt ở quy mô; lịch sử độ tin cậy đòi hỏi paid support |
| Sản phẩm multi-region | 9/10 | Tốt nhất trong phân khúc này ở mức giá này |
| Enterprise / regulated | 5/10 | Lịch sử outage và SLA hỗ trợ mặc định mỏng là điểm chặn thực sự |
Điểm tổng thể 2026: 7.5/10. Mô hình Machines thực sự tốt, câu chuyện multi-region không có đối thủ ở mức giá này, và setup observability tốt hơn bạn kỳ vọng. Lịch sử độ tin cậy của deployment API và Managed Postgres còn non trẻ là thứ giữ điểm dưới 8. Hãy chuẩn bị trả $29/tháng cho support nếu đây là infrastructure production nghiêm túc.
Tài liệu tham khảo
| Nguồn | Link |
|---|---|
| Giá tài nguyên Fly.io (tháng 5/2026) | https://fly.io/docs/about/pricing/ |
| Tài liệu Fly Managed Postgres | https://fly.io/docs/mpg/ |
| Tài liệu autostop/autostart | https://fly.io/docs/launch/autostop-autostart/ |
| Private networking | https://fly.io/docs/networking/private-networking/ |
| Metrics và monitoring | https://fly.io/docs/monitoring/metrics/ |
| HN: Fly.io outage tháng 11/2024 | https://news.ycombinator.com/item?id=42241851 |
| HN: Sa thải tại Fly.io tháng 9/2024 | https://news.ycombinator.com/item?id=41441218 |
| Supabase ngừng hỗ trợ Fly Postgres (tháng 4/2025) | https://github.com/orgs/supabase/discussions/33413 |
| Cộng đồng: lỗi cold start | https://community.fly.io/t/cold-start-and-health-check-failures-on-deployed-apis-repost/26023 |
| Giá Railway | https://docs.railway.com/pricing/plans |