T
Trinh Digital
Giải pháp Công nghệ

DevOps Setup: Từ deploy 1 lần/tuần → 10 lần/ngày mà không sợ sập

Trinh Digital · · 8 phút đọc

Case study DevOps này kể câu chuyện một team dev 5 người tại startup SaaS ở Hà Nội — từ lúc deploy 1 lần/tuần bằng SSH (và run mỗi lần deploy) đến khi tự tin deploy 10 lần/ngày nhờ CI/CD pipeline tự động. Tất cả setup trong 2 tuần, chi phí gần bằng 0.

Bối cảnh

Về startup

  • Sản phẩm: Platform quản lý dự án cho agency
  • Team dev: 5 người (3 backend, 2 frontend)
  • Tech stack: React + Node.js + PostgreSQL
  • Users: 5,000+ (200 công ty)
  • Server: 1 VPS trên DigitalOcean ($40/tháng)

Quy trình deploy cũ

Dev viết code → Push lên GitHub → Nhắn anh Tuấn (senior dev) → Anh Tuấn SSH vào server
→ git pull → npm install → npm run build → pm2 restart → Test bằng tay → Hy vọng không sập

Thời gian: 30-60 phút mỗi lần deploy. Tần suất: 1 lần/tuần (thứ 6 chiều, để cuối tuần có thời gian fix nếu lỗi).

Vấn đề cụ thể

Vấn đềTần suấtHậu quả
Deploy lỗi, app crash1-2 lần/thángDowntime 30 phút - 2 giờ
”Trên máy em chạy tốt”Hàng tuần2-4 giờ debug environment mismatch
Anh Tuấn đi vắng → không deploy được2-3 lần/thángFeature delay, hotfix chờ
Quên chạy migration1 lần/thángApp crash, rollback thủ công
Merge conflict khi cả team đều push cuối tuầnHàng tuần1-3 giờ resolve
Test bằng tay bỏ sót bugHàng thángBug đến production, khách phàn nàn

Tổng thời gian lãng phí: ~40 giờ/tháng (8 ngày công).

Turning point

Tháng 3: Deploy thứ 6 như mọi khi. Anh Tuấn quên chạy database migration. App crash. Rollback thủ công — nhưng rollback xóa mất 3 giờ data khách hàng mới tạo. Khách hàng phàn nàn trên group Zalo. CEO ra tối hậu thư: “Fix quy trình deploy trong 2 tuần.”

Giải pháp: DevOps Pipeline trong 2 tuần

Tuần 1: CI Pipeline + Docker

Ngày 1-2: Docker hóa ứng dụng

Tạo Dockerfile cho frontend và backend:

Mỗi dev chạy docker compose up → có môi trường giống production trên máy local. Hết “trên máy em chạy tốt”.

Ngày 3-4: CI Pipeline (GitHub Actions)

Setup auto test khi push code — bao gồm lint check, unit tests, và build verification. Mỗi pull request phải pass CI mới merge được. Bật branch protection rules.

Ngày 5: Database migration tự động

Migration chạy tự động trong CI/CD pipeline — không ai quên nữa. Pipeline tự động kiểm tra migration có conflict không, chạy migration trên staging trước.

Tuần 2: CD Pipeline + Monitoring

Ngày 1-2: Staging environment

Setup staging server ($10/tháng DigitalOcean). Mọi code merge vào develop → tự động deploy lên staging trong 5 phút. Team test trên staging trước.

Ngày 3-4: Production deployment

Merge develop vào main → GitHub Actions tự động:

  1. Build Docker images
  2. Push lên container registry
  3. SSH vào production
  4. Pull new images
  5. Docker Compose up (zero-downtime)
  6. Chạy health check
  7. Thông báo Slack

Rollback: 1 click trên GitHub → re-deploy previous image → 2 phút.

Ngày 5: Monitoring + Alerting

Setup monitoring stack miễn phí:

  • Sentry (free tier): Error tracking — biết ngay khi có lỗi JS/API
  • UptimeRobot (free): Ping website mỗi 5 phút, alert khi down
  • Docker health checks: Tự restart container khi crash
  • GitHub Actions notifications: Slack alert khi deploy thành công/thất bại

Pipeline hoàn chỉnh

Developer push code

[GitHub Actions CI]
├── Lint check (1 phút)
├── Unit tests (2 phút)
├── Build Docker images (3 phút)
└── PASS/FAIL notification
        ↓ (nếu PASS)
[Pull Request Review]
├── Teammate review code
└── Approve merge

[Merge to develop]

[Auto Deploy Staging] (3 phút)

[Team test trên staging]

[Merge to main]

[Auto Deploy Production] (5 phút)

[Health Check + Monitoring]
├── Sentry: no new errors ✓
├── UptimeRobot: 200 OK ✓
└── Slack: "Deploy v1.23 thành công"

Tổng thời gian: ~15 phút (từ code → production). Trước: 30-60 phút + rủi ro.

Kết quả

So sánh trước - sau

MetricTrướcSauCải thiện
Deploy frequency1/tuần8-12/ngày+5,600%
Deploy time30-60 phút8 phút (tự động)-87%
Deploy failure rate25%3%-88%
Mean time to recovery1-2 giờ5 phút (rollback)-96%
Time wasted/tháng40 giờ4 giờ-90%
Environment issuesHàng tuần0 (Docker)-100%
Người biết deploy1 (anh Tuấn)5 (cả team)+400%
Test coverage0%72%+72%

Impact cho business

Business metricTrướcSau 3 tháng
Feature release cycle2-4 tuần1-3 ngày
Bugs trên production5-8/tháng1-2/tháng
Customer complaints3-5/tháng0-1/tháng
Developer satisfaction3/54.5/5
Uptime98.5%99.9%

Chi phí đầu tư

Hạng mụcChi phí
Staging server (DigitalOcean)$10/tháng
GitHub Actions$0 (free tier)
Sentry$0 (free tier)
UptimeRobot$0 (free tier)
Docker Hub$0 (free tier)
Thời gian setup (2 tuần × 1 dev)~20 triệu VND (opportunity cost)
Tổng chi phí~20 triệu setup + 250K/tháng

ROI

  • Tiết kiệm: 36 giờ/tháng × 50K/giờ (dev) = 1.8 triệu/tháng
  • Giảm downtime: 2 giờ/tháng × 2 triệu/giờ (doanh thu) = 4 triệu/tháng
  • Nhanh hơn ship feature: Ước tính +10% doanh thu/quý nhờ feature release nhanh
  • ROI tháng đầu tiên: Hoàn vốn setup

Bài học cho team dev nhỏ

1. Bắt đầu đơn giản

Không cần Kubernetes, không cần AWS ECS, không cần Terraform. Docker Compose + GitHub Actions + 1 VPS là đủ cho team < 10 devs.

2. Docker giải quyết 80% vấn đề

“Trên máy em chạy tốt” — câu này biến mất hoàn toàn sau khi dùng Docker. Mọi người chạy cùng 1 Docker image.

3. CI/CD bắt buộc cho mọi team size

Kể cả team 1 người. Auto test + auto deploy = an toàn + nhanh + không stress. Free tools đủ dùng.

4. Rollback quan trọng hơn deploy

Deploy luôn có thể lỗi. Quan trọng là rollback nhanh (< 5 phút). Docker image versioning cho phép rollback 1 click.

5. Monitoring là must-have, không phải nice-to-have

Biết lỗi trước user biết. Sentry + UptimeRobot (miễn phí) cho biết ngay khi có vấn đề — thay vì chờ user phàn nàn.

Tech stack DevOps (miễn phí)

ToolChức năngFree tier
GitHubSource controlUnlimited
GitHub ActionsCI/CD2,000 phút/tháng
DockerContainerizationUnlimited
SentryError tracking5K events/tháng
UptimeRobotUptime monitoring50 monitors
SlackNotificationsUnlimited

Tổng chi phí tools: 0 VND/tháng. DevOps không cần đắt.

Trinh Digital DevOps Services

Tại Trinh Digital, chúng tôi giúp:

  1. DevOps Setup Sprint — Setup CI/CD hoàn chỉnh trong 1 tuần, từ 20 triệu VND
  2. Docker Migration — Dockerize ứng dụng hiện tại
  3. Managed DevOps — Quản trị pipeline hàng tháng
  4. DevOps Training — Workshop 1 ngày cho dev team

FAQ — Câu hỏi thường gặp

1. Team dùng PHP/WordPress, có áp dụng được không?

Được. GitHub Actions + SSH deploy hoạt động với mọi ngôn ngữ. WordPress: auto deploy qua rsync, auto run database migration. Docker optional cho PHP (không bắt buộc).

2. Server cũ (không phải cloud) có setup CI/CD được không?

Được, miễn server có SSH access. GitHub Actions SSH vào server cũ như SSH vào cloud. Chỉ cần internet connection.

3. Làm sao thuyết phục CEO đầu tư 2 tuần cho DevOps?

Tính: 40 giờ/tháng lãng phí × 12 tháng × 50K/giờ = 24 triệu/năm (chỉ riêng thời gian). Cộng thêm rủi ro downtime: 1 lần sập 4 giờ = 8-20 triệu. Setup DevOps: 20 triệu 1 lần. ROI rõ ràng.


Muốn setup DevOps cho team trong 1-2 tuần? Liên hệ Trinh Digital để được tư vấn và hỗ trợ setup.

#deployment#CI/CD#DevOps#case study
Chia sẻ: Z

Sẵn sàng chuyển đổi số cùng Trinh Digital?

Liên hệ ngay để nhận tư vấn miễn phí. Đội ngũ chuyên gia sẽ phân tích nhu cầu và đề xuất giải pháp tối ưu.

Zalo