Back to articles
Technology Insight

Tự Dựng Private GitHub Actions Runner Trên Kiến Trúc ARM64 (Oracle Free Tier): Tiết Kiệm Đến 80% Chi Phí Hóa Đơn CI/CD

June 3, 2026

Giới Thiệu: Thách Thức Chi Phí CI/CD Trong Kỷ Nguyên Cloud-Native

Trong quy trình phát triển phần mềm hiện đại, Tích hợp liên tục và Triển khai liên tục (CI/CD) đã trở thành xương sống quyết định tốc độ và chất lượng của mọi dự án. GitHub Actions hiện là một trong những nền tảng phổ biến nhất nhờ tích hợp sâu vào hệ sinh thái mã nguồn. Tuy nhiên, khi quy mô dự án phát triển, số lượng lập trình viên tăng lên, hóa đơn cho các dịch vụ GitHub-hosted runners bắt đầu trở thành một gánh nặng tài chính đáng kể.

Mặc dù GitHub cung cấp một lượng phút miễn phí nhất định, con số này nhanh chóng cạn kiệt trong các môi trường doanh nghiệp hoặc các dự án có tần suất kiểm thử cao. Khi vượt hạn mức, chi phí tính theo phút có thể tích tụ thành hàng trăm, thậm chí hàng ngàn USD mỗi tháng. Để giải quyết bài toán tối ưu chi phí này, giải pháp sử dụng Self-hosted Runner (Private Runner) xuất hiện như một cứu cánh. Đặc biệt hơn, khi kết hợp giải pháp này với kiến trúc ARM64 trên hạ tầng Oracle Cloud Infrastructure (OCI) Free Tier, doanh nghiệp có thể cắt giảm đến 80% chi phí hóa đơn CI/CD mà không phải hy sinh hiệu năng.

Tại Sao Lại Chọn ARM64 Và Oracle Cloud Free Tier?

Trước khi đi vào chi tiết kỹ thuật, chúng ta cần hiểu tại sao sự kết hợp giữa kiến trúc ARM64 và Oracle Cloud lại mang lại hiệu quả kinh tế và kỹ thuật đột phá đến vậy.

1. Sức Mạnh Hiệu Năng Của Kiến Trúc ARM64

Những năm gần đây chứng kiến sự trỗi dậy mạnh mẽ của kiến trúc ARM64 trong không gian máy chủ cloud, dẫn đầu bởi các dòng chip như AWS Graviton hay Ampere Altra. Chip ARM64 mang lại tỷ lệ hiệu năng trên mỗi watt (Performance-per-Watt) vượt trội so với kiến trúc x86 truyền thống. Đối với các tác vụ CI/CD vốn mang tính chất tính toán chuyên sâu (compilation, unit testing, container building), ARM64 xử lý cực kỳ hiệu quả, giúp rút ngắn thời gian build đáng kể.

2. Ưu Đãi Vô Địch Từ Oracle Cloud Free Tier

Oracle Cloud Infrastructure (OCI) nổi tiếng trong cộng đồng DevOps nhờ chính sách "Always Free" vô cùng hào phóng. Cụ thể, Oracle cung cấp cho mỗi tài khoản miễn phí lên đến:

  • 4 Cores CPU Ampere Altra (ARM64)
  • 24 GB bộ nhớ RAM
  • 200 GB ổ cứng NVMe Block Volume

Bạn có thể cấu hình tài nguyên này thành một máy ảo (VM) cấu hình khủng (4 vCPUs, 24GB RAM) hoặc chia nhỏ thành tối đa 4 máy ảo nhỏ hơn. Đây là một lượng tài nguyên khổng lồ, hoàn toàn miễn phí, đủ sức gánh vác các hệ thống CI/CD từ nhỏ đến trung bình mà không tốn một đồng chi phí hạ tầng nào.

Kiến Trúc Tổng Quan Của Hệ Thống Private Runner

Hệ thống tự dựng này sẽ hoạt động dựa trên mô hình Pull-based bảo mật. Private Runner cài đặt trên VM của Oracle Cloud sẽ thiết lập một kết nối HTTPS an toàn hướng ra ngoài (outbound) tới GitHub. Khi có một sự kiện kích hoạt workflow (như push code, pull request), GitHub sẽ đẩy job vào hàng đợi và Runner sẽ chủ động kéo job đó về xử lý. Điều này đồng nghĩa với việc bạn không cần mở bất kỳ cổng inbound (port forwarding) nào trên firewall của Oracle Cloud, giúp hạn chế tối đa rủi ro bảo mật.

Lưu ý quan trọng: Vì Runner chạy trên kiến trúc ARM64, các Docker image hoặc các tác vụ biên dịch trong workflow của bạn cũng cần phải hỗ trợ hoặc tương thích với ARM64. Hầu hết các công cụ hiện đại ngày nay như Node.js, Go, Python, và Docker-v2 đều hỗ trợ native cho ARM64.

Hướng Dẫn Chi Tiết Các Bước Triển Khai

Bước 1: Khởi Tạo Khối Tính Toán Ampere ARM64 Trên Oracle Cloud

Đầu tiên, bạn cần truy cập vào OCI Console và tiến hành tạo một Compute Instance mới:

  1. Đặt tên cho Instance (Ví dụ: github-runner-arm64).
  2. Tại mục Placement, chọn Availability Domain mặc định.
  3. Tại mục Image and Shape, nhấn Edit:
    • Image: Chọn hệ điều hành Ubuntu (phiên bản LTS mới nhất được khuyến nghị vì độ ổn định và tính tương thích cao với GitHub Runner).
    • Shape: Chọn Ampere (VM.Standard.A1.Flex). Tùy chỉnh cấu hình theo nhu cầu, ví dụ: 2 vCPUs và 12GB RAM để dành tài nguyên cho các mục đích khác, hoặc cấu hình tối đa 4 vCPUs và 24GB RAM nếu bạn cần một cỗ máy build siêu tốc.
  4. Tại mục Networking, cấu hình Virtual Cloud Network (VCN) mặc định và đảm bảo máy ảo được cấp một địa chỉ Public IP.
  5. Tại mục SSH Keys, tải xuống khóa Private Key để có thể SSH vào máy ảo sau này.
  6. Nhấn Create và đợi vài phút để máy ảo chuyển sang trạng thái Running.

Bước 2: Chuẩn Bị Môi Trường Trên Máy Ảo Ubuntu ARM64

Sử dụng SSH để truy cập vào máy ảo vừa tạo thông qua IP Public:

ssh -i  ubuntu@

Sau khi đăng nhập thành công, hãy cập nhật hệ thống và cài đặt các công cụ cơ bản cần thiết như Docker, git, và curl. Phần lớn các workflow CI/CD hiện nay đều phụ thuộc vào Docker:

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y curl git jq docker.io
sudo usermod -aG docker ubuntu

Hãy đăng xuất và đăng nhập lại (hoặc chạy lệnh newgrp docker) để user ubuntu có quyền thực thi các lệnh Docker mà không cần sudo.

Bước 3: Đăng Ký Self-Hosted Runner Trên GitHub

Bạn có thể thiết lập Runner ở cấp độ Repository (chỉ dùng cho 1 dự án) hoặc cấp độ Organization (dùng chung cho nhiều dự án). Trong hướng dẫn này, chúng ta sẽ thiết lập ở cấp độ Repository:

  1. Truy cập vào GitHub Repository của bạn, chọn mục Settings.
  2. Ở thanh menu bên trái, tìm đến mục Actions và chọn Runners.
  3. Nhấn vào nút New self-hosted runner.
  4. Chọn nền tảng (Operating System) là Linux và Kiến trúc (Architecture) là ARM64.

GitHub sẽ hiển thị một chuỗi các dòng lệnh hướng dẫn cụ thể. Bạn chỉ cần copy và paste tuần tự các lệnh đó vào terminal của máy ảo Oracle Cloud. Các lệnh này bao gồm việc tạo thư mục actions-runner, tải gói cài đặt tương thích với ARM64, giải nén và tiến hành cấu hình:

mkdir actions-runner && cd actions-runner
curl -o actions-runner-linux-arm64-.tar.gz -L [https://github.com/actions/runner/releases/download/v/actions-runner-linux-arm64-.tar.gz](https://github.com/actions/runner/releases/download/v/actions-runner-linux-arm64-.tar.gz)
tar xzf ./actions-runner-linux-arm64-.tar.gz

Tiếp theo, chạy lệnh cấu hình do GitHub cung cấp (lệnh này chứa một token bảo mật có thời hạn):

./config.sh --url [https://github.com/your-username/your-repo](https://github.com/your-username/your-repo) --token YOUR_EXCLUSIVE_TOKEN

Trong quá trình cấu hình, hệ thống sẽ hỏi bạn một số thông tin:

  • Enter the name of the runner group: Nhấn Enter để chọn group mặc định.
  • Enter the name of runner: Đặt tên định danh cho runner (Ví dụ: oracle-arm64-runner).
  • Enter any additional labels: Đây là bước quan trọng. Ngoài các label mặc định như self-hosted, Linux, ARM64, bạn có thể thêm các tag tùy chỉnh như oracle-free.
  • Enter name of work folder: Nhấn Enter để chọn mặc định (_work).

Bước 4: Cấu Hình Runner Chạy Như Một System D Service

Mặc dù bạn có thể chạy runner bằng lệnh ./run.sh, nhưng cách này sẽ dừng lại ngay khi bạn tắt session SSH. Để đảm bảo runner hoạt động liên tục 24/7 và tự động khởi chạy lại khi máy ảo reboot, chúng ta cần cấu hình nó thành một dịch vụ hệ thống (systemd service):

sudo ./svc.sh install
sudo ./svc.sh start

Kiểm tra trạng thái dịch vụ bằng lệnh:

sudo ./svc.sh status

Quay lại giao diện web của GitHub, tại mục Settings -> Actions -> Runners, bạn sẽ thấy trạng thái của runner chuyển sang màu xanh Idle. Hệ thống đã sẵn sàng tiếp nhận công việc!

Kiểm Thử Và Cấu Hình Workflow Sử Dụng ARM64 Runner

Để chỉ định một GitHub Actions Workflow chạy trên Private Runner vừa tạo, bạn chỉ cần thay đổi thuộc tính runs-on trong file YAML cấu hình của workflow (nằm trong thư mục .github/workflows/).

Thay vì sử dụng runs-on: ubuntu-latest (sẽ chỉ định chạy trên hạ tầng có phí của GitHub), hãy đổi thành:

name: CI/CD Build and Test On ARM64

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: [self-hosted, linux, ARM64]
    
    steps:
    - name: Checkout Source Code
      uses: actions/checkout@v4

    - name: Check System Architecture
      run: uname -a

    - name: Test Docker Installation
      run: docker info

Khi bạn push file cấu hình này lên, GitHub Actions sẽ tự động định tuyến job này đến máy ảo Oracle Cloud ARM64 của bạn. Tốc độ thực thi sẽ khiến bạn bất ngờ nhờ vào băng thông mạng nội bộ cao và tài nguyên RAM dồi dào từ OCI.

Các Biện Pháp Tối Ưu Hóa Và Bảo Mật Nâng Cao

Tự vận hành cơ sở hạ tầng đồng nghĩa với việc bạn phải tự chịu trách nhiệm về mặt quản lý và bảo mật. Dưới đây là các khuyến nghị từ chuyên gia để hệ thống của bạn hoạt động trơn tru:

1. Quản Lý Dọn Dẹp Bộ Nhớ Đệm (Garbage Collection)

Khác với các hosted-runner của GitHub (vốn là các máy ảo dùng một lần rồi xóa - ephemeral VM), Self-hosted Runner giữ lại các dữ liệu của các lần build trước trong thư mục _work và lưu trữ các Docker layer cache. Qua thời gian, ổ đĩa 200GB của bạn có thể bị đầy. Hãy thiết lập một cron job định kỳ để dọn dẹp các tài nguyên Docker thừa:

0 2 * * * docker system prune -af --volumes

2. Bảo Mật Cho Các Kho Mã Nguồn Công Khai (Public Repositories)

Cảnh báo nghiêm trọng: Không bao giờ sử dụng Self-hosted Runner cho các Public Repository mà không có sự kiểm soát chặt chẽ. Kẻ xấu có thể tạo một Pull Request chứa mã độc trong file workflow, kích hoạt runner của bạn thực thi mã độc đó để khai thác tài nguyên máy ảo (như đào tiền ảo) hoặc đánh cắp thông tin bí mật trong mạng nội bộ.

Đối với Private Repository, rủi ro này thấp hơn vì chỉ những người có quyền truy cập vào repo mới có thể chạy workflow. Tuy nhiên, vẫn nên giới hạn quyền hạn của user chạy runner thông qua Docker rootless hoặc cấu hình quyền hạn chặt chẽ trên hệ điều hành.

Kết Luận: Khoản Đầu Tư Xứng Đáng Cho Đội Ngũ DevOps

Việc chuyển dịch từ GitHub-hosted runner sang Private Runner trên kiến trúc ARM64 của Oracle Cloud Free Tier không chỉ là một bài toán cắt giảm chi phí đơn thuần. Nó mang lại quyền tự chủ hoàn toàn về mặt hạ tầng cho đội ngũ phát triển. Bạn có thể tự do cài đặt các công cụ đặc thù, tăng dung lượng bộ nhớ cache, giảm thời gian build nhờ phần cứng mạnh mẽ, và quan trọng nhất là đưa hóa đơn chi phí CI/CD hàng tháng về con số 0 USD.

Chỉ với khoảng 30 phút thiết lập theo hướng dẫn trên, doanh nghiệp của bạn đã sở hữu một hệ thống CI/CD chuẩn Enterprise, bảo mật, hiệu năng cao và cực kỳ kinh tế. Đây chắc chắn là một bước đi chiến lược mà mọi kỹ sư DevOps và Tech Lead nên cân nhắc triển khai ngay hôm nay.

Tự Dựng Private GitHub Actions Runner Trên Kiến Trúc ARM64 (Oracle Free Tier): Tiết Kiệm Đến 80% Chi Phí Hóa Đơn CI/CD | DPTCloud