Dịch vụ DevOps

Phát hành phần mềm mà không phải chọn giờ ít người dùng

HiTechCloud xây dựng pipeline CI/CD, hạ tầng dưới dạng mã và hệ thống giám sát để đội phát triển triển khai được nhiều lần trong ngày — và quay lui trong vài phút khi cần. Năng lực DevOps của chúng tôi đã được AWS ghi nhận bằng DevOps Competency.

Năng lực được ghi nhận
AWS DevOps Competency
Phạm vi
CI/CD · IaC · Container · Giám sát
Mô hình hợp tác
Dựng nền tảng, đồng hành, hoặc vận hành trọn gói
Nền tảng
HiTechCloud · AWS · Hạ tầng tại chỗ
Tổng quan

DevOps là bỏ bớt thao tác tay, không phải mua thêm công cụ

Ở phần lớn doanh nghiệp chúng tôi tiếp cận, việc phát hành vẫn có ít nhất một bước làm bằng tay: chép tệp lên máy chủ, chạy một câu lệnh cập nhật cơ sở dữ liệu, sửa một dòng cấu hình. Chính những bước đó khiến việc phát hành phải chờ đến đêm và khiến không ai dám sửa hệ thống vào thứ Sáu.

Công việc của chúng tôi là chuyển từng bước thủ công ấy thành mã: hạ tầng dựng lại được từ kho mã nguồn, phát hành chạy tự động qua pipeline, và mỗi thay đổi đều để lại dấu vết ai làm, làm lúc nào, thay đổi những gì.

Kết quả cần đo được. Chúng tôi theo dõi bốn chỉ số quen thuộc — tần suất phát hành, thời gian từ commit tới môi trường thật, tỷ lệ phát hành gây lỗi và thời gian khôi phục — và so sánh trước sau, thay vì kết luận bằng cảm nhận.

Vấn đề thường gặp

Dấu hiệu quy trình phát hành đang cản trở đội phát triển

Chỉ một người biết cách phát hành

Quy trình nằm trong đầu một kỹ sư. Người đó nghỉ phép là toàn bộ việc phát hành dừng lại.

Môi trường thử nghiệm khác môi trường thật

Mã chạy tốt ở môi trường kiểm thử nhưng lỗi khi lên thật, vì hai môi trường được dựng bằng tay ở hai thời điểm khác nhau.

Quay lui mất hàng giờ

Khi bản phát hành có lỗi, việc khôi phục phải làm thủ công và đôi khi phải phục hồi từ bản sao lưu.

Không biết hệ thống hỏng ở đâu

Không có log tập trung và chỉ số theo dõi, nên mỗi lần sự cố đều bắt đầu bằng việc đăng nhập từng máy chủ để tìm nguyên nhân.

Dịch vụ

Phạm vi triển khai

Pipeline CI/CD

Tự động hóa từ commit tới môi trường thật: dựng bản, chạy kiểm thử, quét bảo mật, phê duyệt và triển khai theo từng môi trường.

Hạ tầng dưới dạng mã

Mô tả toàn bộ hạ tầng bằng Terraform hoặc công cụ tương đương, để môi trường mới dựng lại được từ kho mã nguồn trong thời gian ngắn.

Container và điều phối

Đóng gói ứng dụng bằng Docker, triển khai trên Kubernetes hoặc dịch vụ container quản lý, kèm chính sách tài nguyên và tự động co giãn.

Giám sát và log tập trung

Thu thập chỉ số, log và dấu vết yêu cầu về một nơi, dựng bảng theo dõi và cảnh báo theo ngưỡng có ý nghĩa với nghiệp vụ.

Bảo mật trong quy trình

Quét phụ thuộc và ảnh container, quản lý bí mật tập trung, phân quyền theo vai trò và ghi nhật ký toàn bộ thao tác triển khai.

Chuyển giao cho đội nội bộ

Đào tạo và kèm cặp đội kỹ thuật của doanh nghiệp để tự vận hành nền tảng sau khi dự án kết thúc.

Quy trình phát hành phần mềm tự động
Cách bắt đầu

Chọn một dịch vụ, làm cho đúng, rồi nhân rộng

Chúng tôi không dựng nền tảng cho toàn bộ hệ thống ngay từ đầu. Một dịch vụ được chọn làm mẫu, chạy trọn vẹn quy trình mới, rồi mô hình đó mới được áp cho phần còn lại.

  • Chọn một dịch vụ có tần suất thay đổi cao nhưng rủi ro vừa phải.
  • Dựng pipeline và hạ tầng dưới dạng mã cho riêng dịch vụ đó.
  • Đo bốn chỉ số phát hành trước và sau khi áp dụng.
  • Chuẩn hóa thành khuôn mẫu dùng lại cho các dịch vụ tiếp theo.
Quy trình

Cách một dự án DevOps diễn ra

  1. 01

    Đánh giá hiện trạng

    Rà soát quy trình phát hành, môi trường, công cụ đang dùng và đo các chỉ số hiện tại làm mốc so sánh.

  2. 02

    Thiết kế nền tảng

    Chọn công cụ phù hợp với đội ngũ và hạ tầng sẵn có, thiết kế mô hình môi trường, phân quyền và quy trình phê duyệt.

  3. 03

    Triển khai mẫu

    Dựng pipeline và hạ tầng dưới dạng mã cho một dịch vụ, chạy thật và tinh chỉnh cho tới khi ổn định.

  4. 04

    Nhân rộng

    Áp khuôn mẫu cho các dịch vụ còn lại, bổ sung giám sát và tài liệu cho từng phần.

  5. 05

    Chuyển giao

    Đào tạo đội nội bộ, bàn giao tài liệu vận hành và thống nhất mô hình hỗ trợ sau dự án.

Sơ đồ tự động hóa quy trình phát hành phần mềm
Cách triển khai

Tự động hóa từng bước, mỗi bước đều quay lui được

Không đổi toàn bộ quy trình trong một lần. Mỗi bước tự động hóa được đưa vào chạy song song với cách làm cũ cho tới khi đội ngũ tin tưởng.

  • Cách phát hành cũ vẫn giữ nguyên cho tới khi pipeline chạy ổn định.
  • Mọi thay đổi hạ tầng đều nằm trong kho mã nguồn, xem lại được lịch sử.
  • Quyền triển khai lên môi trường thật tách khỏi quyền sửa pipeline.
Công nghệ

Công cụ thường dùng

Bộ công cụ được chọn theo hạ tầng và kỹ năng sẵn có của đội ngũ doanh nghiệp, không áp đặt một chồng công nghệ cố định.

CI/CD

  • GitLab CI
  • GitHub Actions
  • Jenkins
  • Argo CD

Hạ tầng dạng mã

  • Terraform
  • Ansible
  • CloudFormation
  • Packer

Container

  • Docker
  • Kubernetes
  • Helm
  • Harbor

Giám sát và log

  • Prometheus
  • Grafana
  • Loki
  • Elastic Stack
  • CloudWatch
Khách hàng

Dịch vụ này phù hợp với ai

Đội phát triển phát hành thủ công

  • Việc lên bản mới cần một người thao tác theo trí nhớ.
  • Mỗi lần phát hành phải chọn khung giờ ít người dùng.
  • Quay lui khi có lỗi mất hàng giờ và không chắc chắn.

Doanh nghiệp có nhiều môi trường không đồng nhất

  • Môi trường kiểm thử và môi trường thật dựng bằng tay ở hai thời điểm.
  • Dựng môi trường cho một dự án mới mất nhiều ngày.
  • Cấu hình nằm rải rác, không lưu trong kho mã nguồn.

Đội vận hành muốn tự làm nhưng thiếu người dẫn

  • Có kỹ sư nhưng chưa từng dựng pipeline hoàn chỉnh.
  • Cần khuôn mẫu dùng lại thay vì làm lại từ đầu cho từng dịch vụ.
  • Muốn nhận chuyển giao để tự vận hành sau dự án.
Hỏi đáp

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

Đội chúng tôi chỉ có vài lập trình viên, DevOps có quá sức không?

Không nhất thiết. Với đội nhỏ, phạm vi hợp lý thường là pipeline tự động và hạ tầng dưới dạng mã, chưa cần đến Kubernetes. Chúng tôi đề xuất mức độ phù hợp với quy mô thật thay vì áp dụng trọn bộ.

Có bắt buộc dùng Kubernetes không?

Không. Kubernetes chỉ đáng dùng khi số lượng dịch vụ và nhu cầu co giãn đủ lớn. Nhiều hệ thống vận hành tốt hơn với máy ảo và dịch vụ container quản lý, với chi phí vận hành thấp hơn nhiều.

HiTechCloud làm rồi bàn giao hay vận hành lâu dài?

Cả hai mô hình đều có. Một số doanh nghiệp muốn chúng tôi dựng nền tảng rồi đào tạo đội nội bộ tiếp quản; số khác giao luôn phần vận hành theo hợp đồng dịch vụ dài hạn.

Hệ thống đang chạy có phải dừng để triển khai không?

Không. Pipeline và hạ tầng dưới dạng mã được dựng song song trên môi trường riêng, chỉ chuyển sang dùng chính thức khi đã chạy ổn định và được nghiệm thu.

Đo thử quy trình phát hành hiện tại của bạn

Liên hệ để HiTechCloud rà soát quy trình phát hành, chỉ ra các bước còn làm thủ công và đề xuất phạm vi tự động hóa phù hợp với quy mô đội ngũ.