CI/CD là gì? Hướng dẫn tự động deploy từ GitHub lên VPS
Mục lục
Các bài trong series Vibe Coding
- Bài 1: Vibe Coding là gì? Từ AI viết code đến triển khai ứng dụng lên VPS
- Bài 2: Vibe Coding thực chiến: Từ AI viết code đến GitHub
- Bài 3: Docker cho Vibe Coder: Từ source code đến container trên Ubuntu
- Bài 4: Hướng dẫn deploy ứng dụng Vibe Coding lên VPS Ubuntu bằng Coolify
- Bài 5: CI/CD là gì? Hướng dẫn tự động deploy từ GitHub lên VPS ← Bạn đang đọc
- Bài 6: Docker Production: Tối ưu Dockerfile, Docker Compose và bảo mật container (Đang cập nhật)
- Bài 7: Docker → Coolify → VPS: Hướng dẫn triển khai ứng dụng production (Đang cập nhật)
Khi sử dụng AI để viết ứng dụng theo phương pháp Vibe Coding, tốc độ phát triển source code có thể nhanh hơn rất nhiều so với cách làm truyền thống. Tuy nhiên, viết xong code mới chỉ là một phần của quy trình. Ứng dụng vẫn cần được kiểm tra, build và triển khai lên môi trường VPS trước khi người dùng có thể truy cập.
Nếu mỗi lần cập nhật code đều phải đăng nhập vào VPS, chạy git pull, cài dependency, build lại ứng dụng rồi restart service thủ công, quy trình sẽ nhanh chóng trở nên mất thời gian và dễ xảy ra sai sót.
Đây là lúc CI/CD phát huy tác dụng.
CI/CD giúp tự động hóa một phần hoặc toàn bộ quy trình từ khi developer đưa code lên GitHub cho đến khi phiên bản mới được triển khai lên VPS.
Một workflow phổ biến có thể được mô tả đơn giản như sau:
Developer
↓
Git commit
↓
Git push
↓
GitHub
↓
CI/CD Pipeline
↓
Test / Build
↓
Deploy
↓
VPS
↓
ApplicationTrong bài viết này, chúng ta sẽ tìm hiểu CI/CD là gì, GitHub đóng vai trò như thế nào và cách xây dựng một quy trình GitHub → VPS tự động deploy bằng GitHub Actions, SSH và Docker.
CI/CD là gì ?
CI/CD là tập hợp các phương pháp và quy trình giúp tự động hóa việc tích hợp, kiểm tra, build và triển khai phần mềm.
CI là viết tắt của Continuous Integration, nghĩa là tích hợp liên tục.
CD thường được hiểu là Continuous Delivery hoặc Continuous Deployment, tùy vào cách triển khai của từng hệ thống.
Thay vì developer phải tự thực hiện toàn bộ quy trình sau mỗi lần thay đổi code, CI/CD cho phép máy chủ hoặc nền tảng tự động xử lý các bước đã được cấu hình trước.
Ví dụ, thay vì:
Sửa code
↓
SSH vào VPS
↓
git pull
↓
npm install
↓
npm run build
↓
restart service
↓
Kiểm tra websiteCI/CD có thể biến thành:
Sửa code
↓
git push
↓
GitHub
↓
CI/CD
↓
Build
↓
Deploy
↓
VPSDeveloper chỉ cần thực hiện những bước liên quan trực tiếp đến source code, còn các công việc lặp lại được tự động hóa.
CI là gì ?
Continuous Integration – CI tập trung vào quá trình đưa code mới vào hệ thống một cách thường xuyên và kiểm tra code tự động.
Mỗi khi có commit hoặc Pull Request, hệ thống CI có thể thực hiện các bước như:
- cài dependency;
- kiểm tra syntax;
- chạy lint;
- chạy unit test;
- build application;
- kiểm tra một số lỗi trước khi merge hoặc deploy.
Ví dụ với một ứng dụng Node.js:
npm ci
npm run lint
npm test
npm run buildNếu một trong những bước này thất bại, pipeline có thể dừng lại.
Điều này giúp phát hiện lỗi trước khi code được đưa lên môi trường production.
CI giúp giải quyết vấn đề gì ?
Không có CI, một developer có thể sửa một phần của application nhưng vô tình làm hỏng một chức năng khác.
Nếu project có nhiều người cùng làm việc, nguy cơ này càng lớn.
CI tạo ra một lớp kiểm tra tự động giữa source code và môi trường production.
Developer A
↓
Developer B
↓
GitHub
↓
CI
┌───────────┐
│ Test │
│ Lint │
│ Build │
└─────┬─────┘
↓
Passed
↓
Ready to deployCD là gì ?
CD là phần tiếp theo sau CI.
Có hai cách hiểu phổ biến.
Continuous Delivery
Code sau khi vượt qua các bước kiểm tra sẽ được chuẩn bị sẵn để triển khai.
Tuy nhiên, bước đưa code lên production vẫn có thể yêu cầu con người xác nhận.
GitHub
↓
CI
↓
Test
↓
Build
↓
Ready
↓
Manual approval
↓
ProductionContinuous Deployment
Với Continuous Deployment, quá trình triển khai có thể được thực hiện tự động sau khi code vượt qua các điều kiện đã cấu hình.
Ví dụ:
git push
↓
CI
↓
Test
↓
Build
↓
Deploy
↓
VPSĐây là mô hình phù hợp với các project có quy trình phát triển thường xuyên và muốn giảm thao tác thủ công.
CI/CD khác gì so với deploy thủ công ?
Với deploy thủ công, developer thường phải trực tiếp thực hiện các bước trên server.
Ví dụ:
ssh user@server
cd /var/www/my-app
git pull
npm install
npm run build
pm2 restart my-appCách này hoàn toàn có thể hoạt động với project nhỏ.
Vấn đề xuất hiện khi application được cập nhật thường xuyên.
Mỗi lần deploy lại phải lặp lại nhiều thao tác giống nhau. Chỉ cần chạy sai một lệnh hoặc quên restart service cũng có thể khiến phiên bản mới chưa được áp dụng.
Với CI/CD:
git push
↓
GitHub
↓
GitHub Actions
↓
Build / Test
↓
SSH
↓
VPS
↓
DeployCác bước được chuẩn hóa trong workflow.
Vì sao Vibe Coding nên kết hợp với CI/CD ?
Vibe Coding giúp rút ngắn thời gian từ ý tưởng đến source code.
Bạn có thể sử dụng AI để:
- tạo cấu trúc project;
- viết component;
- tạo API;
- sửa lỗi;
- refactor code;
- viết Dockerfile;
- tạo configuration;
- hỗ trợ debug.
Nhưng tốc độ tạo code nhanh cũng đồng nghĩa với việc số lượng thay đổi trong repository có thể tăng lên.
Nếu mỗi thay đổi đều phải triển khai thủ công, phần deployment có thể trở thành điểm nghẽn.
CI/CD giải quyết phần này.
Workflow có thể trở thành:
Ý tưởng
↓
AI hỗ trợ viết code
↓
Developer kiểm tra
↓
Git commit
↓
Git push
↓
CI/CD
↓
VPSAI chịu trách nhiệm hỗ trợ quá trình phát triển.
GitHub quản lý source code.
CI/CD tự động hóa kiểm tra và deployment.
VPS chạy application.
Đây là cách kết hợp Vibe Coding với một quy trình phát triển có kiểm soát hơn.
GitHub đóng vai trò gì trong CI/CD ?
GitHub thường được sử dụng làm trung tâm quản lý source code.
Một repository có thể chứa:
my-app/
├── src/
├── public/
├── package.json
├── Dockerfile
├── docker-compose.yml
├── README.md
└── .github/
└── workflows/
└── deploy.ymlTrong đó thư mục:
.github/workflows/
có thể chứa các workflow dành cho GitHub Actions.
Khi developer push code lên repository, GitHub Actions có thể tự động kích hoạt workflow tương ứng.
Git commit và Git push khác nhau như thế nào ?
git commit lưu thay đổi vào lịch sử Git trên máy local.
Ví dụ:
git add .
git commit -m "Update homepage"git push đưa commit đó lên GitHub:
git push origin mainChính hành động git push thường là điểm bắt đầu của một pipeline CI/CD.
Local
↓
git commit
↓
git push
↓
GitHub
↓
WorkflowQuy trình GitHub → VPS tự động deploy hoạt động như thế nào ?
Một hệ thống CI/CD đơn giản có thể gồm 5 thành phần:
Developer
↓
GitHub
↓
GitHub Actions
↓
SSH / Docker
↓
VPSMỗi thành phần có một nhiệm vụ riêng.

Developer
Tạo và thay đổi source code.
GitHub
Lưu trữ repository và quản lý version.
GitHub Actions
Thực hiện các bước CI/CD được cấu hình.
SSH
Cho phép workflow kết nối an toàn tới VPS.
VPS
Chạy application production.
Toàn bộ quá trình có thể diễn ra như sau:
Developer sửa code
↓
git push origin main
↓
GitHub nhận commit
↓
GitHub Actions được kích hoạt
↓
Run test
↓
Build
↓
SSH vào VPS
↓
Pull source / cập nhật image
↓
Restart application
↓
Health check
↓
Application phiên bản mớiGitHub Actions là gì ?
GitHub Actions là hệ thống automation tích hợp trong GitHub, cho phép chạy các workflow dựa trên những sự kiện xảy ra trong repository.
Ví dụ:
- push code;
- Pull Request;
- tạo release;
- chạy theo lịch;
- thực hiện workflow thủ công.
Một workflow GitHub Actions thường được lưu dưới:
.github/workflows/Ví dụ:
.github/workflows/deploy.ymlĐây chính là nơi chúng ta có thể định nghĩa quy trình CI/CD.
Cấu trúc cơ bản của GitHub Actions
Một workflow có thể có dạng:
name: Deploy
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build
run: npm ci && npm run buildTrong ví dụ này:
on:
push:
branches:
- maincó nghĩa workflow được kích hoạt khi có code được push vào branch main.
Xây dựng CI/CD từ GitHub lên VPS
Có nhiều cách để triển khai CI/CD.
Trong bài này, chúng ta sử dụng mô hình dễ hiểu và phổ biến:
GitHub
↓
GitHub Actions
↓
SSH
↓
VPS Ubuntu
↓
Docker
↓
ApplicationGiả sử application đã được triển khai trên VPS và source code nằm tại:
/opt/my-appKhi có code mới, GitHub Actions sẽ kết nối tới VPS và yêu cầu server cập nhật application.
Bước 1: Chuẩn bị VPS Ubuntu
VPS cần có:
- Ubuntu Server;
- user có quyền triển khai;
- SSH;
- Git;
- Docker nếu application sử dụng Docker;
- network hoạt động bình thường.
Kiểm tra Docker:
docker --versionKiểm tra Git:
git --versionKiểm tra hệ thống:
uname -aKiểm tra dung lượng:
df -hKiểm tra RAM:
free -hBước 2: Đưa source code lên GitHub
Một repository có thể có cấu trúc:
my-app/
── src/
├── package.json
├── Dockerfile
├── docker-compose.yml
└── .gitignoreSau khi hoàn thành source code:
git add .
git commit -m "Initial application"
git push origin mainBước 3: Chuẩn bị SSH cho GitHub Actions
GitHub Actions cần có cách xác thực khi kết nối đến VPS.
Một phương pháp phổ biến là sử dụng SSH key thay vì password.
Trên máy quản trị hoặc môi trường phù hợp, tạo SSH key:
ssh-keygen -t ed25519Sau đó public key được thêm vào:
~/.ssh/authorized_keystrên VPS.
Private key không được commit vào GitHub repository.
Đây là nguyên tắc rất quan trọng.
Private key nên được lưu dưới dạng GitHub Actions Secret.
Bước 4: Tạo GitHub Secrets
Trong repository, tạo các secret cần thiết.
Ví dụ:
VPS_HOST
VPS_USER
VPS_SSH_KEYTrong đó:
VPS_HOST: IP hoặc hostname của VPS;VPS_USER: user dùng để deploy;VPS_SSH_KEY: private SSH key.
Không nên viết trực tiếp các thông tin này trong file workflow.
Ví dụ không nên:
host: 103.xxx.xxx.xxx
username: root
password: my-passwordThông tin xác thực cần được quản lý bằng secret.
Bước 5: Tạo workflow deploy.yml
Trong project tạo:
.github/workflows/deploy.ymlMột workflow đơn giản có thể có dạng:
name: Deploy to VPS
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Deploy to VPS
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.VPS_SSH_KEY }}
script: |
cd /opt/my-app
git pull origin main
docker compose up -d --buildKhi developer chạy:
git push origin mainGitHub Actions sẽ kích hoạt workflow.
Workflow sau đó kết nối đến VPS và thực hiện:
cd /opt/my-app
git pull origin main
docker compose up -d --buildApplication được build và khởi động lại với source code mới.
Docker giúp CI/CD ổn định hơn như thế nào ?
Nếu application được chạy trực tiếp trên VPS, môi trường server có thể ảnh hưởng đến quá trình deployment.
Ví dụ application yêu cầu:
Node.js 22
npm
system dependencies
environment variablesNếu VPS sử dụng phiên bản Node.js khác với môi trường development, application có thể phát sinh lỗi.
Docker giúp đóng gói application và môi trường chạy thành container.
Ví dụ:
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]Khi đó quá trình triển khai có thể trở thành:
Source code
↓
Dockerfile
↓
Docker image
↓
Container
↓
VPSĐây là một trong những lý do Docker thường được sử dụng cùng CI/CD.
Sử dụng Docker Compose trong quá trình deploy
Với application có nhiều service, Docker Compose giúp quản lý chúng dễ dàng hơn.
Ví dụ:
services:
app:
build: .
restart: unless-stopped
ports:
- "3000:3000"Sau khi source code được cập nhật, workflow có thể chạy:
docker compose up -d --buildDocker sẽ build image mới và khởi động container theo configuration.
Nếu application có thêm database, Redis hoặc service khác, Docker Compose có thể quản lý nhiều container trong cùng một project.

CI/CD không chỉ là tự động deploy
Một pipeline tốt không nên chỉ làm nhiệm vụ:
git push → deployMà nên có thêm các bước kiểm tra.
Ví dụ:
Git push
↓
Install dependencies
↓
Lint
↓
Test
↓
Build
↓
Deploy
↓
Health checkNếu test thất bại:
Test
↓
FAILED
↓
STOPCode chưa được deploy lên production.
Điều này giúp giảm nguy cơ đưa một phiên bản lỗi lên VPS.
VPS cần cấu hình như thế nào để chạy CI/CD ?
Không có một cấu hình VPS cố định cho tất cả project.
Tài nguyên cần thiết phụ thuộc vào:
- framework;
- số lượng container;
- database;
- lượng traffic;
- tần suất build;
- kích thước Docker image;
- số lượng service;
- yêu cầu CPU/RAM của application.
CPU
CPU ảnh hưởng trực tiếp đến tốc độ build và xử lý application.
Nếu application thường xuyên build Docker image hoặc chạy các tác vụ CPU-intensive, nên lựa chọn VPS có CPU phù hợp.
RAM
RAM không chỉ dành cho application.
Một VPS production có thể đồng thời chạy:
Application
Docker
Database
Redis
Reverse Proxy
MonitoringVì vậy cần tính tổng mức sử dụng RAM của toàn bộ hệ thống.
SSD/NVMe
Build Docker image và application thường phát sinh nhiều thao tác đọc/ghi.
SSD NVMe có thể giúp cải thiện khả năng xử lý I/O và thời gian build so với storage có hiệu năng thấp hơn.
Network
Network ảnh hưởng đến việc:
- tải Docker image;
- tải dependency;
- cập nhật source;
- phục vụ request;
- kết nối API bên ngoài.
Nên chọn VPS nào để chạy CI/CD ?
Việc chọn VPS nên dựa trên workload thay vì chỉ nhìn vào giá.
VPS giá rẻ cho project nhỏ và môi trường thử nghiệm
Với website cá nhân, landing page, API nhỏ, project Vibe Coding hoặc môi trường staging, một VPS giá rẻ có thể đáp ứng tốt nhu cầu ban đầu.
Đây cũng là cách khá thực tế để bắt đầu làm quen với Git, Docker và CI/CD mà không phải đầu tư quá nhiều vào hạ tầng ngay từ đầu.
Tại EZ TECH, dòng VPS giá rẻ sử dụng CPU Intel Xeon Gold, SSD NVMe U.2, kết nối 100Mbps trong nước và quốc tế, kèm IPv4 riêng. Gói cơ bản từ 2 Core, 2GB RAM và 30GB NVMe, phù hợp với những ứng dụng có quy mô nhỏ và nhu cầu triển khai vừa phải.
Khi application phát triển, bạn có thể theo dõi mức sử dụng CPU, RAM và storage để quyết định thời điểm nâng cấp thay vì lựa chọn cấu hình lớn ngay từ đầu.
VPS AMD cho workload cần CPU tốt hơn
Nếu application thường xuyên build, xử lý backend hoặc thực hiện các tác vụ cần nhiều CPU hơn, cấu hình VPS cần được tính toán khác so với một website thông thường.
Trong trường hợp này, VPS AMD của EZ TECH có thể là một lựa chọn để cân nhắc khi xây dựng môi trường chạy application, API hoặc các workload cần hiệu năng CPU tốt hơn.
Đặc biệt với workflow Vibe Coding, khi source code được cập nhật thường xuyên và Docker image phải build lại nhiều lần, CPU có thể trở thành một trong những yếu tố ảnh hưởng trực tiếp đến thời gian triển khai.
Tuy nhiên, không nên chỉ nhìn vào CPU. Một hệ thống production vẫn cần cân đối giữa CPU, RAM, NVMe và network để tránh tình trạng một thành phần quá mạnh nhưng tài nguyên khác lại trở thành điểm nghẽn.
VPS vSAN cho hệ thống production cần nhiều tài nguyên
Khi application phát triển thành hệ thống có nhiều container, database, API hoặc các service chạy đồng thời, nhu cầu về tài nguyên sẽ tăng lên đáng kể.
Lúc này, VPS vSAN của EZ TECH có thể phù hợp với những workload cần nhiều tài nguyên hơn. Hạ tầng sử dụng CPU Intel Xeon Platinum 8272CL kết hợp NVMe U.3, hướng đến các hệ thống cần khả năng xử lý và I/O ổn định.
Ví dụ một project production có thể chạy:
Nginx
+
Application
+
Docker
+
Database
+
Redis
+
MonitoringKhi nhiều service cùng hoạt động trên một VPS, việc có đủ RAM, CPU và tốc độ storage sẽ quan trọng hơn rất nhiều so với việc chỉ quan tâm đến số lượng core trên thông số kỹ thuật.
Không phải project nào cũng cần VPS cấu hình cao
Một sai lầm phổ biến khi bắt đầu triển khai application là lựa chọn server dựa trên cấu hình tối đa thay vì workload thực tế.
Bạn có thể bắt đầu với một VPS phù hợp với project hiện tại, sau đó theo dõi:
CPU Usage
RAM Usage
Disk Usage
Network
Container Load
Response TimeKhi workload tăng, việc nâng cấp VPS sẽ có cơ sở rõ ràng hơn.
Đây cũng là cách tiếp cận phù hợp khi xây dựng các project Vibe Coding: bắt đầu nhỏ, triển khai nhanh, đo lường thực tế và mở rộng khi cần.
CI/CD có thay thế việc quản trị VPS không ?
Không.
CI/CD chỉ tự động hóa quy trình tích hợp và triển khai phần mềm.
VPS vẫn cần được quản trị.
Bạn vẫn cần quan tâm đến:
- cập nhật Ubuntu;
- SSH security;
- firewall;
- Docker;
- disk usage;
- RAM;
- CPU;
- database;
- backup;
- SSL;
- domain;
- monitoring;
- log;
- quyền truy cập.
Một pipeline deploy tự động tốt nhưng VPS không được bảo mật hoặc backup đúng cách vẫn có thể gây ra rủi ro cho hệ thống.
Những lỗi thường gặp khi triển khai CI/CD lên VPS
GitHub Actions không chạy
Kiểm tra:
- workflow file;
- branch;
- trigger;
- YAML syntax;
- GitHub Actions có được bật hay không.
Ví dụ:
on:
push:
branches:
- mainNếu bạn push lên branch khác, workflow trên có thể không được kích hoạt.
GitHub Actions không kết nối được VPS
Kiểm tra:
- VPS có public IP;
- SSH port;
- firewall;
- username;
- SSH key;
- GitHub Secret.
Không nên mở quyền truy cập SSH rộng hơn mức cần thiết.
Docker build thất bại
Kiểm tra:
docker build .trực tiếp trên môi trường phù hợp để xác định lỗi nằm ở Dockerfile hay pipeline.
Các nguyên nhân thường gặp:
- thiếu dependency;
- sai Node/PHP/Python version;
- lỗi build;
- thiếu environment variable;
- Dockerfile không chính xác.
Deploy thành công nhưng website không hoạt động
Deployment thành công chỉ chứng minh workflow đã hoàn thành các bước được cấu hình.
Application vẫn có thể lỗi runtime.
Kiểm tra container:
docker psXem log:
docker logs <container_name>Kiểm tra port:
ss -tulpnNgoài ra cần kiểm tra reverse proxy, domain, SSL và firewall.
Làm thế nào để có thể rollback khi deploy lỗi ?
Đây là một vấn đề quan trọng khi chuyển từ deploy thủ công sang CI/CD.
Nếu phiên bản mới có lỗi, bạn cần khả năng quay về phiên bản trước.
Git giúp lưu lịch sử thay đổi:
Commit A
↓
Commit B
↓
Commit CNếu Commit C có lỗi, có thể xác định lại phiên bản phù hợp thay vì chỉnh sửa trực tiếp trên production.
Với Docker, bạn cũng có thể quản lý image theo version hoặc commit SHA để dễ xác định phiên bản đang chạy.
Một hệ thống production tốt nên biết rõ:
Version đang chạy
Version vừa deploy
Version trước đóĐiều này giúp quá trình xử lý sự cố nhanh và có kiểm soát hơn.
CI/CD nâng cao có thể phát triển như thế nào ?
Sau khi xây dựng được pipeline cơ bản, bạn có thể tiếp tục mở rộng:
GitHub
↓
Pull Request
↓
CI
├── Lint
├── Test
└── Build
↓
Merge
↓
Deploy
↓
Staging
↓
Approval
↓
ProductionCác hệ thống lớn hơn có thể bổ sung:
- staging environment;
- automated testing;
- Docker registry;
- database migration;
- monitoring;
- error tracking;
- notification;
- rollback;
- release management.
CI/CD vì vậy không phải một công cụ duy nhất mà là một cách tổ chức quy trình phát triển và triển khai phần mềm.
Coolify có thể nằm ở đâu trong hệ thống CI/CD ?
Nếu không muốn tự xây dựng toàn bộ quy trình deployment bằng GitHub Actions, SSH và Docker Compose, bạn có thể sử dụng các nền tảng hỗ trợ triển khai ứng dụng như Coolify.
Coolify có thể kết nối với Git repository và đơn giản hóa một số công việc triển khai application lên VPS.
Tuy nhiên, dù sử dụng Coolify hay GitHub Actions, nguyên lý phía sau vẫn tương tự:
Source Code
↓
Git
↓
Build
↓
Deploy
↓
ApplicationVì vậy, hiểu cách CI/CD hoạt động trước sẽ giúp bạn dễ dàng làm việc với các nền tảng deployment khác nhau.
Internal link đề xuất: Xem thêm bài hướng dẫn triển khai ứng dụng Vibe Coding lên VPS nếu bạn muốn tìm hiểu quy trình deploy ứng dụng lên server trước khi xây dựng CI/CD.
Từ Vibe Coding đến CI/CD: một workflow hoàn chỉnh
Khi kết hợp những công nghệ đã tìm hiểu, một workflow Vibe Coding hoàn chỉnh có thể trở thành:
Ý tưởng
↓
AI hỗ trợ viết code
↓
Developer kiểm tra
↓
Git
↓
GitHub
↓
GitHub Actions
↓
Test
↓
Build
↓
Docker
↓
SSH / Deployment
↓
VPS
↓
Application
↓
Người dùngỞ đây, mỗi thành phần có một nhiệm vụ riêng.
- AI giúp tăng tốc quá trình viết và chỉnh sửa code.
- Git quản lý lịch sử source code.
- GitHub lưu trữ repository.
- GitHub Actions thực hiện automation.
- Docker đóng gói môi trường chạy.
- VPS cung cấp hạ tầng production.
- CI/CD kết nối các bước này thành một quy trình tự động.
Nếu bạn đang xây dựng project từ Vibe Coding và cần một môi trường VPS để chạy Docker, API, website hoặc application production, có thể bắt đầu từ cấu hình vừa đủ cho workload hiện tại rồi nâng cấp khi hệ thống phát triển.
EZ TECH cung cấp các lựa chọn từ VPS giá rẻ, VPS AMD đến VPS vSAN, giúp bạn lựa chọn hạ tầng theo quy mô và nhu cầu tài nguyên thực tế thay vì phải sử dụng một cấu hình cố định cho mọi project.
Đây là bước tiếp theo hợp lý sau khi bạn đã biết cách sử dụng AI để tạo ứng dụng và triển khai ứng dụng lên VPS.
Kết luận
CI/CD giúp thay đổi cách developer triển khai phần mềm từ quy trình thủ công sang quy trình tự động và có thể kiểm soát được.
Thay vì mỗi lần cập nhật application lại phải đăng nhập VPS và thực hiện nhiều lệnh, workflow có thể được rút gọn thành:
git add .
git commit -m "Update application"
git push origin mainSau đó:
GitHub
↓
GitHub Actions
↓
Test
↓
Build
↓
SSH / Docker
↓
VPS
↓
Application mớiĐặc biệt với Vibe Coding, CI/CD giúp giải quyết một vấn đề quan trọng: AI có thể giúp bạn tạo code nhanh, nhưng quy trình đưa những thay đổi đó lên production cũng cần nhanh, nhất quán và có kiểm soát.
Khi đã xây dựng được pipeline GitHub → CI/CD → VPS, bạn có thể tiếp tục mở rộng sang Docker Compose, staging/production, automated testing, monitoring và rollback để hình thành một quy trình DevOps hoàn chỉnh hơn.
Các bài trong series Vibe Coding
- Bài 1: Vibe Coding là gì? Từ AI viết code đến triển khai ứng dụng lên VPS
- Bài 2: Vibe Coding thực chiến: Từ AI viết code đến GitHub
- Bài 3: Docker cho Vibe Coder: Từ source code đến container trên Ubuntu
- Bài 4: Hướng dẫn deploy ứng dụng Vibe Coding lên VPS Ubuntu bằng Coolify
- Bài 5: CI/CD là gì? Hướng dẫn tự động deploy từ GitHub lên VPS ← Bạn đang đọc
- Bài 6: Docker Production: Tối ưu Dockerfile, Docker Compose và bảo mật container (Đang cập nhật)
- Bài 7: Docker → Coolify → VPS: Hướng dẫn triển khai ứng dụng production (Đang cập nhật)

