Close Menu
  • Trang chủ
  • Đời sống
    • Cách làm đẹp
    • Sức khỏe
    • Thể dục & Tập luyện
    • Thời trang
  • Khám phá
    • Người nổi tiếng
    • Công nghệ
    • Hướng dẫn du lịch
    • Kinh doanh
  • Thủ thuật
    • Hosting & Máy chủ
    • Hướng dẫn Blogger
    • WordPress & Plugin
  • Tiếng Việt
    • Tiếng Việt
    • Hmong
    • English
Facebook YouTube X (Twitter) Instagram
Trending
  • Cài Windows 8.1, 10, 11 bằng giấy phép hợp lệ như thế nào?
  • Đưa website thành nguồn ưu tiên trên Google Search đúng cách
  • Cài Brevo cho WordPress: từ sender đến email thử qua SMTP
  • Samsung Galaxy S27 Ultra: Pin 5.700mAh, sạc 60W và những điểm còn bỏ ngỏ
  • Cách tạo khung bình luận đẹp cho Blogger bằng CSS
  • Amazfit cập nhật ngưỡng lactate: Dùng dữ liệu để chạy vừa sức hơn
  • Yandex Webmaster cho người mới: Từ URL chính thức đến báo cáo tìm kiếm
  • Checklist Yandex Webmaster: nghiệm thu thiết lập và theo dõi 30 ngày
Facebook YouTube X (Twitter) Instagram
SaibABCSaibABC
Chú thích cho quảng cáo
  • Trang chủ
  • Đời sống
    1. Cách làm đẹp
    2. Sức khỏe
    3. Thể dục & Tập luyện
    4. Thời trang
    5. View All

    AI phân tích da có chính xác không? Cách dùng an toàn, tránh mua máy móc

    25/08/2026

    Chăm sóc da đầu tại nhà: Gội, tẩy tế bào chết và massage đúng cách

    25/08/2026

    Chăm sóc da khi giảm cân: Giữ da ẩm, khỏe và săn chắc hơn

    24/08/2026

    PDRN, peptide và mỹ phẩm công nghệ sinh học: Cách đọc quảng cáo

    24/08/2026

    Amazfit cập nhật ngưỡng lactate: Dùng dữ liệu để chạy vừa sức hơn

    28/09/2026

    Chạy bộ trong nắng nóng: Đọc WBGT và biết lúc nào phải dừng

    19/09/2026

    Tập luyện khi rung nhĩ: Bắt đầu và tăng vận động thế nào cho an toàn?

    19/09/2026

    Vì sao Suunto Run đã cập nhật nhưng vùng nhịp tim vẫn có thể sai?

    19/09/2026

    Chạy bộ trong nắng nóng: Đọc WBGT và biết lúc nào phải dừng

    19/09/2026

    Tập luyện khi rung nhĩ: Bắt đầu và tăng vận động thế nào cho an toàn?

    19/09/2026

    Bài tập 5 phút tại văn phòng: Lịch vận động snack-sized

    23/08/2026

    Bài tập core hiệu quả: Từ người mới đến nâng cao

    16/01/2024

    Trang phục du lịch mùa đông cho nam và nữ: Gợi ý theo thời tiết

    30/08/2026

    Digital Product Passport thời trang: Đọc gì trên mã QR quần áo?

    23/08/2026

    Thời trang 2026: Cách xây tủ đồ tối giản nhưng vẫn linh hoạt

    21/08/2026

    Amazfit cập nhật ngưỡng lactate: Dùng dữ liệu để chạy vừa sức hơn

    28/09/2026

    Chạy bộ trong nắng nóng: Đọc WBGT và biết lúc nào phải dừng

    19/09/2026

    Tập luyện khi rung nhĩ: Bắt đầu và tăng vận động thế nào cho an toàn?

    19/09/2026

    Vì sao Suunto Run đã cập nhật nhưng vùng nhịp tim vẫn có thể sai?

    19/09/2026
  • Khám phá
    1. Người nổi tiếng
    2. Công nghệ
    3. Hướng dẫn du lịch
    4. Kinh doanh
    Featured

    Cài Windows 8.1, 10, 11 bằng giấy phép hợp lệ như thế nào?

    By Nuj Coom14/10/2026
    Recent

    Cài Windows 8.1, 10, 11 bằng giấy phép hợp lệ như thế nào?

    14/10/2026

    Samsung Galaxy S27 Ultra: Pin 5.700mAh, sạc 60W và những điểm còn bỏ ngỏ

    29/09/2026

    Review Samsung Galaxy S26 Ultra: Đáng mua ở điểm nào, còn thiếu gì?

    16/09/2026
  • Thủ thuật
    1. Hosting & Máy chủ
    2. Hướng dẫn Blogger
    3. WordPress & Plugin
    4. View All

    Cài Let’s Encrypt trên Vultr: Bật HTTPS và tự động gia hạn chứng chỉ

    09/09/2026

    Cài WordPress trên VPS Vultr chi tiết và đưa website chạy HTTPS an toàn

    08/09/2026

    Kết nối tên miền với VPS Vultr và xác minh website hoạt động

    08/09/2026

    Đăng ký và triển khai VPS Ubuntu trên Vultr qua SSH

    07/09/2026

    Cách tạo khung bình luận đẹp cho Blogger bằng CSS

    28/09/2026

    Sao lưu Blogger đúng cách và phân quyền cộng tác viên an toàn

    26/09/2026

    Sau khi đăng ký AdSense: Đọc phản hồi, bật quảng cáo và theo dõi thanh toán

    26/09/2026

    Đăng ký hoặc liên kết AdSense với Blogger từng bước

    26/09/2026

    Cài Brevo cho WordPress: từ sender đến email thử qua SMTP

    29/09/2026

    Yandex Webmaster cho người mới: Từ URL chính thức đến báo cáo tìm kiếm

    26/09/2026

    Checklist Yandex Webmaster: nghiệm thu thiết lập và theo dõi 30 ngày

    26/09/2026

    Yandex Webmaster và Metrica: Khi nào nên dùng cả hai?

    26/09/2026

    Đưa website thành nguồn ưu tiên trên Google Search đúng cách

    14/10/2026

    Cài Brevo cho WordPress: từ sender đến email thử qua SMTP

    29/09/2026

    Cách tạo khung bình luận đẹp cho Blogger bằng CSS

    28/09/2026

    Yandex Webmaster cho người mới: Từ URL chính thức đến báo cáo tìm kiếm

    26/09/2026
  • Tiếng Việt
    • Tiếng Việt
    • Hmong
    • English
SaibABCSaibABC
Home»Khám phá»Công nghệ»Lập kế hoạch dự phòng GitHub Actions khi GitHub ngừng hoạt động nhiều giờ
Công nghệ 12 Mins ReadKhông có bình luận

Lập kế hoạch dự phòng GitHub Actions khi GitHub ngừng hoạt động nhiều giờ

Nuj CoomBy Nuj CoomUpdated:23/09/2026
Facebook Twitter Pinterest LinkedIn Tumblr Email
Chú thích cho quảng cáo

Contents

  1. Xác định mức liên tục cần bảo vệ
  2. Vẽ bản đồ phụ thuộc của pipeline
  3. Chuẩn bị đường CI/CD thay thế
    1. Mẫu chạy khẩn cấp từ mirror
  4. Tách mã nguồn, dependency và artefact khỏi một điểm lỗi
  5. Chuẩn bị quyền truy cập và bí mật khẩn cấp
  6. Runbook khi GitHub Actions hoặc API bắt đầu lỗi
    1. 1. Xác nhận sự cố nền tảng
    2. 2. Đóng băng thao tác có thể làm tăng hậu quả
    3. 3. Chọn chế độ vận hành
    4. 4. Ghi sổ mọi hành động
  7. Khôi phục sau outage và tránh phát hành trùng
  8. Danh sách kiểm tra trước khi coi kế hoạch hoàn tất
  9. Nguồn tham khảo

Câu trả lời ngắn: Khi GitHub Actions hoặc GitHub API có thể ngừng hoạt động trong nhiều giờ, hãy chuẩn bị đường CI/CD bên ngoài GitHub, mirror mã nguồn có thể truy cập độc lập, kho artefact hoặc container registry không cùng điểm lỗi, bản sao cấu hình và bí mật cần thiết, cùng runbook chuyển đổi đã được diễn tập.

Đừng xem self-hosted runner là phương án dự phòng hoàn chỉnh. Runner tự quản lý vẫn cần kết nối với GitHub để nhận job và tải phiên bản runner; nếu control plane hoặc Actions API gặp sự cố, runner có thể không nhận được công việc mới (theo docs.github.com).

Bài viết dành cho đội ngũ nhỏ và người mới làm DevOps. Mục tiêu thực tế là giữ ba khả năng: đưa hệ thống về trạng thái an toàn, tạo artefact đáng tin cậy cho một bản phát hành khẩn cấp và quay lại quy trình bình thường mà không tạo lịch sử phát hành trùng lặp. Bài viết không giả định rằng bạn cần xây dựng một nền tảng thay thế có quy mô tương đương doanh nghiệp lớn.

Xác định mức liên tục cần bảo vệ

Trước khi chọn công cụ, hãy quyết định điều gì phải tiếp tục trong outage. Với nhiều đội ngũ, thứ tự ưu tiên hợp lý là:

  1. Mức 1 – an toàn vận hành: không phát hành tính năng mới, nhưng vẫn rollback về bản ổn định đang chạy.
  2. Mức 2 – phát hành khẩn cấp: build và triển khai một thay đổi nhỏ đã được con người kiểm tra.
  3. Mức 3 – liên tục đầy đủ: vẫn chạy tự động lint, unit test, build, scan và deploy gần như bình thường.

Đội ngũ nhỏ nên hoàn thành Mức 1 và Mức 2 trước. Mức 3 chỉ phù hợp khi gián đoạn phát hành gây thiệt hại lớn hoặc hệ thống có yêu cầu thời gian khôi phục nghiêm ngặt. Đây là lựa chọn về mức chấp nhận rủi ro và chi phí vận hành, không phải yêu cầu kỹ thuật giống nhau cho mọi dự án.

Chú thích cho quảng cáo
Loại hệ thốngMục tiêu nên đặtGiải pháp tối thiểu
Website hoặc ứng dụng ít thay đổiRollback và phát hành khẩn cấpLưu image đã ký, runbook triển khai thủ công và quyền khẩn cấp có thời hạn
Sản phẩm SaaS đang vận hànhGiữ khả năng sửa lỗi nghiêm trọngCI/CD thay thế cho nhánh phát hành, registry ngoài GitHub và kiểm tra bắt buộc
Hệ thống xử lý giao dịch hoặc dữ liệu quan trọngGiảm tối đa thời gian ngừng phát hànhHai đường CI/CD, secret manager độc lập, diễn tập định kỳ và phê duyệt hai người

Vẽ bản đồ phụ thuộc của pipeline

Lập một bảng cho từng dịch vụ trong quy trình hiện tại. Ghi chủ sở hữu, địa chỉ truy cập, thời gian lưu giữ, quyền cần có và cách kiểm tra. Nếu một mục không có người phụ trách hoặc không có đường truy cập khi GitHub hỏng, đó là điểm lỗi đơn cần xử lý.

Thành phầnPhụ thuộc thường gặpCâu hỏi khi outagePhương án dự phòng
Mã nguồnGitHub repository, Git clone, pull requestCó lấy được commit đã phê duyệt không?Git mirror ngoài GitHub hoặc bản sao định kỳ chỉ đọc
CIGitHub Actions workflowCó chạy test và lint được không?CI/CD độc lập hoặc script chạy cục bộ với phiên bản cố định
RunnerGitHub-hosted runner, self-hosted runnerRunner có nhận job mới không?Runner do hệ thống CI thay thế điều phối
Phụ thuộc buildnpm, PyPI, Maven, NuGet, Docker base imageCó tải được package và image không?Proxy hoặc registry mirror độc lập với điểm lỗi chính
ArtefactActions artifacts, GitHub Packages, image registryCó lấy được bản đã build để triển khai không?Kho artefact độc lập, retention rõ ràng và checksum
Bí mậtSecrets, signing key, cloud credentialsCó thể xác thực mà không cần GitHub không?Secret manager và credential khẩn cấp có thời hạn
Triển khaiCloud API, Kubernetes, VM, CDNAi được phép triển khai và bằng cách nào?Runbook thủ công hoặc hệ thống deploy độc lập

Chuẩn bị đường CI/CD thay thế

Đường thay thế không cần chạy mọi workflow. Route tối thiểu nên lấy đúng commit hoặc gói mã đã được phê duyệt, cài dependency từ nguồn đã kiểm soát, chạy các kiểm tra bắt buộc, tạo artefact bất biến, ghi metadata build và chỉ triển khai sau phê duyệt độc lập.

  1. Lấy commit cố định từ mirror, không đọc nhánh main đang nằm trên GitHub.
  2. Cài dependency từ lockfile, cache hoặc proxy registry đã kiểm soát phiên bản.
  3. Chạy lint, unit test, kiểm tra dependency và build theo tiêu chí đã định trước.
  4. Đóng gói artefact hoặc container image với mã phiên bản bất biến.
  5. Ghi commit SHA, checksum, thời điểm build, phiên bản công cụ và người phê duyệt.
  6. Chỉ triển khai sau phê duyệt thủ công hoặc cơ chế bảo vệ tương đương.

Control plane, credential và log của đường thay thế phải độc lập với GitHub ở mức phù hợp với mục tiêu liên tục. Một hệ thống CI khác nhưng vẫn lấy mã, secret, image nền và artefact từ cùng một dịch vụ có thể chỉ giảm một phần rủi ro.

Nếu repository dùng reusable workflow hoặc action nội bộ, hãy cố định tham chiếu tới commit SHA thay vì nhánh thay đổi khi gọi chúng; đây là biện pháp tăng tính ổn định và khả năng kiểm toán (theo docs.github.com).

Mẫu chạy khẩn cấp từ mirror

Mẫu dưới đây được chạy trong shell trên máy CI khẩn cấp hoặc máy vận hành đã được phê duyệt, không chạy trong giao diện GitHub. Các script ci/test-required.sh, ci/build-image.sh, ci/verify-release.sh và ci/deploy-approved.sh là thành phần bạn phải chuẩn bị trước; chúng phải trả mã lỗi khác 0 khi kiểm tra hoặc triển khai thất bại.

#!/usr/bin/env bash
set -Eeuo pipefail

: "${MIRROR_URL:?Đặt MIRROR_URL tới Git mirror độc lập}"
: "${COMMIT_SHA:?Đặt COMMIT_SHA của commit đã được phê duyệt}"
: "${IMAGE_REPOSITORY:?Đặt IMAGE_REPOSITORY của registry độc lập}"
: "${IMAGE_TAG:?Đặt IMAGE_TAG bất biến, ví dụ release-abc1234}"
: "${DEPLOY_ENV:?Đặt DEPLOY_ENV, ví dụ staging hoặc production}"

WORKDIR="${WORKDIR:-/tmp/emergency-release-${COMMIT_SHA}}"
IMAGE_REF="${IMAGE_REPOSITORY}:${IMAGE_TAG}"

rm -rf -- "$WORKDIR"
git clone --no-checkout "$MIRROR_URL" "$WORKDIR"
git -C "$WORKDIR" fetch --no-tags origin "$COMMIT_SHA"
git -C "$WORKDIR" cat-file -e "${COMMIT_SHA}^{commit}"
git -C "$WORKDIR" checkout --detach "$COMMIT_SHA"

cd "$WORKDIR"
./ci/test-required.sh
./ci/build-image.sh "$IMAGE_REF"
./ci/verify-release.sh "$IMAGE_REF" "$COMMIT_SHA"

printf 'Đã build và kiểm tra %s từ commit %s.\n' "$IMAGE_REF" "$COMMIT_SHA"
printf 'Chỉ tiếp tục sau phê duyệt theo runbook; môi trường: %s\n' "$DEPLOY_ENV"
./ci/deploy-approved.sh "$IMAGE_REF" "$DEPLOY_ENV" "$COMMIT_SHA"

printf 'Đã gửi triển khai %s tới %s. Hãy kiểm tra health check và log triển khai.\n' "$IMAGE_REF" "$DEPLOY_ENV"

Thay các biến môi trường bằng giá trị thật trước khi chạy. Kết quả mong đợi là mã nguồn được checkout ở trạng thái detached tại đúng commit, các bước kiểm tra kết thúc thành công, image có tham chiếu bất biến và script triển khai ghi nhận đúng môi trường. Nếu git fetch không tìm thấy commit, dừng lại; không thay bằng nhánh mới nhất. Nếu bước xác minh hoặc health check thất bại, không tiếp tục phát hành và chuyển sang rollback.

Không đưa token, khóa riêng hoặc mật khẩu vào lệnh, repository hay log. Script triển khai phải lấy credential từ secret manager độc lập, giới hạn quyền theo môi trường và không in giá trị bí mật ra đầu ra chuẩn.

Tách mã nguồn, dependency và artefact khỏi một điểm lỗi

Mã nguồn: tạo mirror định kỳ sang nhà cung cấp hoặc máy chủ Git độc lập. Ghi thời điểm đồng bộ cuối cùng và commit mới nhất đã có trong mirror. Kiểm tra định kỳ cả thao tác clone và việc lấy đúng commit, vì một mirror chưa từng được khôi phục chỉ là giả định.

Artefact: không coi Actions artifact là bản lưu trữ phát hành lâu dài. Với mỗi bản phát hành, lưu image hoặc gói nhị phân vào kho có chính sách retention rõ ràng, kèm commit SHA, checksum, manifest dependency và hướng dẫn rollback.

Dependency: lockfile, cache hoặc proxy registry giúp route khẩn cấp không tự kéo phiên bản mới nhất trong lúc sự cố. Việc build lại với dependency mới có thể tạo artefact khác bản đã kiểm thử; nếu không thể lấy đúng dependency, nên rollback hoặc chờ thay vì bỏ qua kiểm tra.

Kiểm tra chuỗi cung ứng: duy trì quét dependency ngoài thời điểm outage và định trước cách xử lý cảnh báo trước khi phát hành. Nếu đang dùng GitHub Dependabot, có thể xem hướng dẫn bật cảnh báo mã độc Dependabot; tuy nhiên, kế hoạch liên tục không nên chỉ dựa vào một giao diện hoặc API của GitHub.

Chuẩn bị quyền truy cập và bí mật khẩn cấp

Chuẩn bị quyền truy cập và bí mật khẩn cấp
  • Tạo credential triển khai khẩn cấp có phạm vi quyền hẹp, thời hạn ngắn và chỉ dùng cho môi trường cần thiết.
  • Bảo đảm có ít nhất hai người có thể phê duyệt hoặc kích hoạt quy trình, tránh phụ thuộc vào một cá nhân.
  • Dùng secret manager độc lập với GitHub, có log truy cập và quy trình thu hồi.
  • Bảo vệ khóa ký artefact hoặc image riêng; không chép khóa riêng vào repository, máy cá nhân hoặc file script.
  • Duy trì danh sách liên hệ ngoài GitHub để thông báo khi issue, pull request và comment không truy cập được.

Quyền khẩn cấp không nên là token quản trị toàn quyền được lưu trong file văn bản. Sau khi sử dụng, hãy thu hồi hoặc xoay vòng credential, kiểm tra log và ghi lại commit, artefact, người phê duyệt cùng thời điểm triển khai.

Runbook khi GitHub Actions hoặc API bắt đầu lỗi

1. Xác nhận sự cố nền tảng

Kiểm tra trang trạng thái GitHub, thử một yêu cầu API an toàn, ghi thời điểm lỗi và so sánh với repository hoặc workflow khác. Không vội sửa YAML hoặc tạo hàng loạt lần chạy lại khi dịch vụ đang bất ổn.

Nếu API trả mã 403 hoặc 429, hãy phân biệt giới hạn tốc độ với outage. Tôn trọng retry-after, thời điểm reset và dùng backoff tăng dần; tiếp tục gửi request sau khi bị giới hạn có thể làm integration bị chặn (theo docs.github.com).

2. Đóng băng thao tác có thể làm tăng hậu quả

  • Tạm dừng auto-deploy, migration dữ liệu và job có tác dụng ghi ngoài hệ thống.
  • Không xóa workflow run, artefact hoặc runner để “làm sạch hàng đợi”.
  • Ghi lại commit, bản phát hành và thay đổi đang chờ xử lý.
  • Thông báo trạng thái cho nhóm phát triển, vận hành và người chịu trách nhiệm sản phẩm qua kênh liên lạc ngoài GitHub.

3. Chọn chế độ vận hành

  • Chế độ chờ: dùng khi chưa có nhu cầu phát hành; chỉ giám sát và chuẩn bị rollback.
  • Chế độ phát hành khẩn cấp: dùng khi có lỗi nghiêm trọng; chạy route thay thế với commit cố định, kiểm tra tối thiểu và phê duyệt hai người.
  • Chế độ thủ công có kiểm soát: chỉ dùng khi route CI thay thế không sẵn sàng; một người build, một người kiểm tra log và artefact, người có quyền riêng mới triển khai.

4. Ghi sổ mọi hành động

Tạo bản ghi ngoài GitHub gồm mã sự cố, thời gian bắt đầu, commit sử dụng, kết quả kiểm thử, checksum artefact, người phê duyệt, lệnh triển khai, kết quả health check và quyết định rollback. Đây là nguồn đối soát khi GitHub hoạt động trở lại.

Khôi phục sau outage và tránh phát hành trùng

Khi GitHub hoạt động bình thường, không lập tức chạy lại mọi workflow. Thực hiện theo thứ tự:

  1. Đối chiếu workflow đã thành công, thất bại, queued và chưa từng tạo được run.
  2. So sánh commit đã build trong route dự phòng với commit hiện có trên GitHub.
  3. Kiểm tra artefact và môi trường sản xuất để tránh triển khai cùng một thay đổi hai lần.
  4. Chỉ chạy lại workflow cần thiết, ưu tiên commit SHA hoặc sự kiện mới có chủ đích.
  5. Đánh dấu rõ bản phát hành thủ công trong hệ thống quản lý thay đổi.
  6. Thu hồi credential khẩn cấp, kiểm tra quyền và lưu log cho post-incident review.

GitHub từng ghi nhận có sự kiện trong thời gian incident không thể tự động replay, vì vậy không nên giả định rằng hệ thống sẽ tự chạy bù. Mỗi workflow quan trọng cần tiêu chí rõ ràng: retry, trigger lại bằng commit mới, hay bỏ qua vì artefact đã được phát hành.

Danh sách kiểm tra trước khi coi kế hoạch hoàn tất

  • Có sơ đồ phụ thuộc và chủ sở hữu cho mã nguồn, CI, runner, registry, secret và deploy.
  • Có mirror mã nguồn ngoài GitHub và đã kiểm tra cách lấy đúng commit.
  • Có artefact hoặc container image ở kho độc lập, kèm checksum và thông tin build.
  • Có route build–test–deploy thay thế không cần GitHub Actions control plane.
  • Có credential khẩn cấp giới hạn quyền, thời hạn sử dụng và quy trình thu hồi.
  • Có runbook với điều kiện chuyển chế độ, người phê duyệt và quy trình rollback.
  • Có cơ chế ngăn build từ dependency chưa khóa phiên bản.
  • Đã diễn tập với tình huống GitHub API không phản hồi và kiểm tra trong môi trường không sản xuất trước.
  • Có quy trình đối soát workflow, artefact và log sau khi GitHub phục hồi.

Điểm bắt đầu thực tế: trước tiên hãy hoàn thành mirror mã nguồn, lưu một artefact phát hành ngoài GitHub, viết runbook rollback và chạy thử build–test–deploy bằng commit cố định trong môi trường không sản xuất. Sau khi xác nhận route này hoạt động, mới quyết định có cần đầu tư vào CI/CD thay thế đầy đủ hay không.

Nguồn tham khảo

  • GitHub availability report: August 2026
  • The August 17 outage, and the work ahead
  • Self-hosted runners reference
  • Adding self-hosted runners
  • Reusing workflow configurations
  • Rate limits for the REST API

Chú thích cho quảng cáo
bảo mật phần mềm CI/CD DevOps disaster recovery GitHub Actions GitHub API tính liên tục dịch vụ
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Bài trước đóGiảm thông báo web rác: kiểm tra quyền trước khi gửi bằng Chrome và FCM
Bài tiếp theo Thiết kế pipeline cảnh báo package độc hại có thể phát hiện và hoàn tác
Nuj Coom
  • Website
  • Facebook
  • X (Twitter)
  • Instagram

I'm a doctor, for sure. But I also love writing and sharing knowledge, life experiences, web tricks, and useful lectures. Let's cheer for your passion.

Bài viết liên quan

Cài Windows 8.1, 10, 11 bằng giấy phép hợp lệ như thế nào?

14/10/2026

Samsung Galaxy S27 Ultra: Pin 5.700mAh, sạc 60W và những điểm còn bỏ ngỏ

29/09/2026

Review Samsung Galaxy S26 Ultra: Đáng mua ở điểm nào, còn thiếu gì?

16/09/2026
Add A Comment
Leave A Reply Cancel Reply

Bài gần đây

Passkey là gì? Cách đăng nhập không cần mật khẩu

Kiểm tra robots.txt và noindex để Yandex không bị chặn nhầm

Vì sao Suunto Run đã cập nhật nhưng vùng nhịp tim vẫn có thể sai?

Du lịch cuối hè Việt Nam 2026: Lập lịch trình ít đông, ít mưa

Digital Product Passport thời trang: Đọc gì trên mã QR quần áo?

Advertisement
Chú thích cho quảng cáo

ĐĂNG KÝ THÔNG BÁO

Nhận tin tức sáng tạo mới nhất từ ​​SaibABC.Com về các thủ thuật, thiết kế và kinh doanh trên web.

Copyright © 2024. Designed by NujCoom.
  • Trang chủ
  • Chính sách
  • Liên hệ
  • Hmong
  • English

Type above and press Enter to search. Press Esc to cancel.