
7464
1 Mục Tiêu
- Tự động hóa quá trình build, test, deploy thông qua CI/CD Pipeline.
- Tích hợp GitHub Actions hoặc AWS CodePipeline để đảm bảo các bước triển khai được thực hiện tuần tự.
- Hỗ trợ triển khai staging trước khi lên production.
2 Kiến Trúc CI/CD Pipeline
Luồng triển khai CI/CD
- Source Control (GitHub hoặc CodeCommit)
- Kích hoạt pipeline khi push code hoặc tạo pull request.
- Build Stage
- Kiểm tra code, chạy test, build ứng dụng.
- Deploy Stage
- Staging → kiểm tra ứng dụng.
- Production → triển khai chính thức.
- Notification
- Gửi thông báo pipeline success/failure đến Slack hoặc Discord.
3 Cách Cài Đặt CI/CD Pipeline
Bước 1: Cấu hình SSH Proxy qua Bastion Host
Vì server production thường không mở port SSH ra ngoài, ta dùng Bastion Host làm trung gian.
Tạo file SSH config (~/.ssh/config
) trên CI/CD Runner
Host bastion
HostName <Bastion Public IP>
User <Bastion User>
IdentityFile ~/.ssh/bastion_key.pem
Host private-server
HostName <Private Server IP>
User <Private User>
IdentityFile ~/.ssh/private_key.pem
ProxyJump bastion
- ProxyJump bastion: CI/CD chỉ cần SSH vào Bastion, rồi Bastion kết nối đến Private Server.
- Security Group AWS:
- Bastion Host → mở SSH (port 22) từ GitHub Actions hoặc CodePipeline.
- Private Server → chỉ cho phép SSH từ Bastion Host.
Bước 2: Thiết lập GitHub Actions Workflow
Tạo file .github/workflows/ci-cd-bastion.yml
:
- Giải thích:
- Checkout code từ GitHub.
- Thiết lập SSH Proxy để kết nối qua Bastion đến Private Server.
- Deploy code, cài đặt package, build, và restart app bằng PM2.
Bước 3: AWS CodePipeline với Bastion Host (Tùy chọn)
Nếu muốn triển khai với AWS CodePipeline, ta cần:
Tạo script kết nối Bastion để triển khai (deploy-via-bastion.sh
)
Tạo file buildspec.yml
để sử dụng với AWS CodeBuild
- Giải thích:
- Install dependencies.
- Build ứng dụng.
- Deploy thông qua Bastion Host bằng script deploy-via-bastion.sh.
Bước 4: Kiểm Tra CI/CD
- Push code lên GitHub (branch main hoặc develop).
- Kiểm tra GitHub Actions hoặc AWS CodePipeline.
- Nếu thành công, ứng dụng sẽ được deploy & restart.
4 Tích Hợp CI/CD
- GitHub Actions Workflow:
- Trigger khi có push hoặc pull request.
- Build → Deploy Staging → Deploy Production.
- AWS CodePipeline (Tùy chọn):
- Source lấy từ GitHub hoặc AWS CodeCommit.
- Build bằng AWS CodeBuild.
- Deploy thông qua Bastion Host.
5 Tổng Kết
✅ CI/CD tự động hóa quá trình build, test, deploy.
✅ Hỗ trợ triển khai an toàn qua Bastion Host.
✅ GitHub Actions hoặc AWS CodePipeline đều có thể sử dụng.
✅ Dễ dàng mở rộng và tối ưu hóa.
Danh mục
Bài viết liên quan

AWS Region
27.09.2024
Author: | ADMIN |
---|
Bài viết này giải thích chi tiết về AWS Region, bao gồm đặc điểm, lợi ích và cách chọn Region phù hợp. Tìm hiểu về Availability Zones, tuân thủ quy định, tối ưu hóa chi phí và giảm độ trễ. Nắm vững kiến thức để triển khai ứng dụng đám mây hiệu quả.

Auto Trigger Notification to Discord/Teams/Slack
05.02.2025
Author: | ADMIN |
---|
Hướng dẫn chi tiết giám sát lỗi backend với AWS CloudWatch Logs, AWS Lambda, Discord. Phân loại lỗi, chống spam, thông báo lỗi nghiêm trọng. Cấu hình CloudWatch Logs, Lambda, S3.

Maintenance Mode
05.02.2025
Author: | ADMIN |
---|
Tự động hóa Maintenance Mode Nginx với file flag, IP whitelist, script và tích hợp CI/CD (GitHub Actions). Hướng dẫn từng bước cấu hình Nginx, script và workflow để bảo trì hệ thống hiệu quả.
Bài viết khác

Blade Basics
01.08.2024
Author: | ADMIN |
---|
Khám phá Blade trong Laravel: từ if-else, loops, kế thừa layout đến include sub-views. Giúp code gọn gàng, dễ quản lý và bảo trì hơn!

9 Mẹo Hữu Ích Khi Sử Dụng Blade Trong Laravel
01.08.2024
Author: | ADMIN |
---|
Khám phá 9 mẹo Blade giúp bạn viết code Laravel sạch, tối ưu và chuyên nghiệp hơn. Từ @forelse, @auth, @guest, đến format ngày, tối ưu SEO – tất cả trong một bài viết súc tích, dễ áp dụng!

Hiển thị giá trị trong Blade
01.08.2024
Author: | ADMIN |
---|
Hướng dẫn hiển thị biến trong Laravel Blade: escape HTML tự động, hiển thị dữ liệu thô, giá trị mặc định và cách truy xuất mảng, đối tượng. Giúp bạn tối ưu hiển thị dữ liệu một cách an toàn!