Thiết kế và triển khai số liệu và truy vấn

Hoàn thành

Thu thập các chỉ số liên quan đến vòng đời dự án cho phép các tổ chức có được thông tin chi tiết về các phương pháp phát triển phần mềm của họ và hợp lý hóa các quy trình DevOps của họ. Bằng cách cho phép thu thập dữ liệu đo từ xa từ các hoạt động của dự án, các nhóm có thể theo dõi quá trình chạy quy trình, cập nhật mục công việc và các sự kiện khác liên quan đến DevOps trong thời gian thực.

Tại sao chỉ số dự án lại quan trọng

Cách tiếp cận này rất quan trọng vì một số lý do:

Tăng cường khả năng hiển thị:

  • Xem trạng thái thời gian thực của tất cả các dự án và nhóm
  • Hiểu phân bổ công việc và năng lực
  • Theo dõi tiến độ đối với các mốc quan trọng và thời hạn
  • Xác định sớm các phần phụ thuộc và trình chặn

Giám sát hiệu suất:

  • Đo lường tốc độ và thông lượng của nhóm
  • Theo dõi xu hướng thời gian chu kỳ và thời gian thực hiện
  • Theo dõi tỷ lệ thành công trong quá trình xây dựng và triển khai
  • Xác định các mẫu suy giảm hiệu suất

Tối ưu hóa vòng đời phát triển phần mềm:

  • Xác định các nút thắt cổ chai trong quy trình làm việc của dự án
  • Đưa ra quyết định dựa trên dữ liệu về cải tiến quy trình
  • Liên tục cải tiến thực tiễn phát triển
  • Tương quan các hoạt động phát triển với hiệu suất ứng dụng

Lợi ích chính:

  • Trao quyền cho các nhóm đưa ra quyết định dựa trên dữ liệu
  • Cung cấp các số liệu khách quan cho các cuộc hồi tưởng
  • Hỗ trợ lập kế hoạch và dự báo năng lực
  • Cho phép quản lý rủi ro chủ động

So sánh các nền tảng: GitHub và Azure DevOps

Cả GitHub và Azure DevOps đều hỗ trợ thu thập và phân tích phép đo từ xa liên quan đến dự án, nhưng khả năng của chúng khác nhau đáng kể:

Khả năng theo dõi dự án GitHub

Các tính năng của GitHub Insights:

  • Các chỉ số tích hợp: Hoạt động kho lưu trữ, hiệu suất yêu cầu kéo, sự tham gia của cộng đồng
  • Chế độ xem xung: Tóm tắt hoạt động cho kho lưu trữ
  • Biểu đồ người đóng góp: Đóng góp mã theo thời gian
  • Phân tích lưu lượng truy cập: Lượt xem, bản sao, liên kết giới thiệu

Hạn chế:

  • Phân tích theo dõi dự án bị hạn chế so với các công cụ quản lý dự án chuyên dụng
  • Ít chỉ số được xác định trước hơn để quản lý dự án linh hoạt
  • Khả năng trực quan hóa cơ bản
  • Tùy chọn báo cáo tùy chỉnh hạn chế
  • Không tích hợp sẵn với Azure Monitor

Khả năng theo dõi dự án Azure DevOps

Các tính năng của Azure DevOps Analytics:

  • Bộ tính năng phân tích và báo cáo toàn diện được thiết kế đặc biệt để giám sát dự án
  • Bảng điều khiển có thể tùy chỉnh: Tiện ích kéo và thả cho chế độ xem tùy chỉnh
  • Khả năng báo cáo phong phú: Tích hợp Power BI, nguồn cấp dữ liệu OData
  • Một loạt các chỉ số và truy vấn được xác định trước: Vận tốc, burndown, thời gian chu kỳ, thời gian thực hiện
  • Tạo điều kiện theo dõi tiến độ công việc trong suốt vòng đời phát triển phần mềm

Lợi thế:

  • Được xây dựng có mục đích để quản lý dự án linh hoạt
  • Thư viện tiện ích mở rộng cho bảng điều khiển
  • Khả năng truy vấn nâng cao với Ngôn ngữ truy vấn WIT
  • Tích hợp sâu với các dịch vụ Azure

Mở rộng giám sát với các dịch vụ Azure

Ngoài chức năng đo từ xa được tích hợp trong GitHub và Azure DevOps, bạn có thể mở rộng phạm vi giám sát bằng cách tận dụng các dịch vụ Azure như Azure Monitor và Application Insights:

Khả năng tích hợp:

  • Azure DevOps: Cung cấp tích hợp phong phú và hợp lý hơn GitHub
  • Kết nối gốc: Quy trình Azure DevOps tích hợp nguyên bản với Application Insights
  • Chú thích phát hành: Tương quan tự động giữa triển khai với các chỉ số hiệu suất
  • Tích hợp hạng mục công việc: Tạo các mục công việc trực tiếp từ cảnh báo Application Insights
  • Bảng điều khiển hợp nhất: Kết hợp số liệu dự án với phép đo từ xa ứng dụng

Sử dụng chức năng theo dõi dự án tích hợp sẵn của GitHub

Trong các dự án GitHub, theo dõi tiến độ liên quan đến việc theo dõi các chỉ số phát triển chính:

Các chỉ số chính của GitHub:

  • Thông lượng vấn đề: Tỷ lệ tạo và đóng phát hành
  • Vấn đề lão hóa: Các vấn đề vẫn mở trong bao lâu
  • Thời gian quay vòng xem xét mã: Thời gian từ khi tạo PR đến khi xem xét và phê duyệt lần đầu tiên
  • Thời gian hợp nhất yêu cầu kéo: Thời lượng từ khi tạo PR đến khi hợp nhất
  • Hoạt động cộng tác viên: Tần suất và khối lượng đóng góp

Các chỉ số này cung cấp thông tin chi tiết về tình trạng dự án, hiệu quả nhóm và chất lượng mã, giúp xác định các lĩnh vực cần cải thiện.

Thông tin chi tiết về GitHub

Cách đơn giản nhất để xem xét chỉ số là sử dụng chức năng Thông tin chi tiết:

  • Trực quan hóa hoạt động kho lưu trữ theo thời gian
  • Theo dõi hiệu suất yêu cầu kéo (mở, hợp nhất, đóng)
  • Theo dõi sự tham gia của cộng đồng (fork, sao, người theo dõi)
  • Xem số liệu thống kê của người đóng góp và tần suất mã

Tự động hóa tùy chỉnh với GitHub Actions

Tạo quy trình làm việc GitHub Actions tùy chỉnh để tự động hóa việc thu thập chỉ số:

  • Dựa trên trình kích hoạt: Các sự kiện như yêu cầu kéo, sự cố hoặc đẩy mã
  • Dự kiến: Chạy theo lịch trình cron để báo cáo định kỳ
  • Hành động: Thu thập và phân tích số liệu, tạo báo cáo, đăng lên bảng điều khiển

Truy cập có lập trình với REST API

Tận dụng GitHub REST API để truy cập dữ liệu dự án theo chương trình:

  • Số liệu về vấn đề và yêu cầu kéo
  • Thống kê người đóng góp
  • Dữ liệu hoạt động của kho lưu trữ
  • Xây dựng bảng điều khiển hoặc báo cáo tùy chỉnh bằng các công cụ phân tích

Sử dụng tính năng theo dõi dự án tích hợp sẵn Azure DevOps

Azure DevOps cung cấp một số lượng lớn các chỉ số tích hợp phản ánh các khía cạnh khác nhau của quản lý dự án: thời gian chu kỳ, thời gian thực hiện, hiệu quả quy trình làm việc và tình trạng tồn đọng. Các chỉ số này có thể được nhóm thành nhiều loại:

Chỉ số mục công việc

  • Số lượng các hạng mục công việc: Theo dõi tổng số hạng mục công việc được tạo, hoàn thành hoặc đang tiến hành theo thời gian
  • Tuổi mục công việc: Theo dõi tuổi của các mục công việc đang mở để xác định các nhiệm vụ quá hạn
  • Vận tốc: Đo lường tốc độ hoàn thành các mục công việc qua các lần lặp lại hoặc chạy nước rút
  • Tăng trưởng backlog: Giám sát tỷ lệ tạo mục công việc mới so với hoàn thành
  • Phân phối hạng mục công việc: Theo dõi các loại mục công việc (lỗi, tính năng, nhiệm vụ)

Chỉ số xây dựng và phát hành

  • Xây dựng tỷ lệ thành công: Theo dõi tỷ lệ phần trăm các bản dựng thành công so với các bản dựng thất bại
  • Tần suất triển khai phát hành: Theo dõi tần suất các bản phát hành được triển khai cho môi trường sản xuất hoặc môi trường khác
  • Tỷ lệ triển khai thành công: Đo lường tỷ lệ phần trăm triển khai thành công để xác định các vấn đề triển khai
  • Thời gian xây dựng: Theo dõi thời gian hoàn thành các bản dựng
  • Thời gian triển khai: Thời gian từ cam kết đến sản xuất

Chỉ số kiểm tra

  • Tỷ lệ vượt qua trường hợp thử nghiệm: Theo dõi tỷ lệ phần trăm các trường hợp thử nghiệm vượt qua so với các trường hợp thử nghiệm không thành công
  • Thời gian thực hiện trường hợp thử nghiệm: Theo dõi thời gian thực hiện các trường hợp kiểm thử để xác định các nút thắt hiệu suất
  • Xu hướng thất bại của trường hợp thử nghiệm: Phân tích xu hướng thất bại trong trường hợp thử nghiệm để xác định các vấn đề lặp đi lặp lại
  • Phạm vi kiểm tra: Tỷ lệ phần trăm mã được kiểm tra
  • Phát hiện thử nghiệm bong tróc: Xác định các xét nghiệm không đáng tin cậy

Chỉ số mã

  • Chuyển mã: Đo lường số lượng mã được thêm, sửa đổi hoặc xóa theo thời gian
  • Chỉ số chất lượng mã: Giám sát phạm vi mã, độ phức tạp theo chu kỳ và chỉ số khả năng bảo trì
  • Chỉ số yêu cầu kéo: Thời gian xem xét, tỷ lệ phê duyệt
  • Nhận xét đánh giá mã: Tần suất và loại phản hồi

Chỉ số hiệu suất nhóm

  • Đốt cháy nước rút: Theo dõi tiến độ của các mục tiêu sprint bằng cách theo dõi công việc còn lại so với thời gian
  • Vận tốc đội: Đo lường khối lượng công việc trung bình mà nhóm đã hoàn thành trong mỗi sprint
  • Thời gian hoàn thiện: Theo dõi thời gian từ khi tạo một mục công việc đến khi hoàn thành
  • Thời gian chu kỳ: Thời gian từ khi bắt đầu công việc đến khi hoàn thành
  • Thông qua: Các mục công việc đã hoàn thành trong khoảng thời gian

Bảng thông tin và phân tích tùy chỉnh

Bạn có thể hiển thị và phân tích các chỉ số này bằng cách sử dụng bảng thông tin có thể truy cập trực tiếp trong cổng thông tin Azure DevOps. Để biết thêm thông tin chuyên sâu, hãy tạo báo cáo tùy chỉnh, dựa trên truy vấn trong Azure DevOps Analytics.

Các truy vấn phân tích phổ biến

Một số truy vấn, nhóm và trực quan hóa được sử dụng phổ biến hơn bao gồm:

1. Phân tích thời gian chu kỳ:

  • Truy vấn: Tính toán thời gian chu kỳ (thời gian cần thiết để hoàn thành một mục công việc từ đầu đến cuối) cho các loại mục công việc khác nhau
  • Nhóm: Các mục công việc theo trạng thái (Đang hoạt động, Đã giải quyết, Đã đóng)
  • Tính toán: Chênh lệch thời gian giữa ngày bắt đầu và ngày hoàn thành
  • Visualization: Thời gian chu kỳ trung bình cho mỗi trạng thái theo thời gian
  • Mục đích: Xác định nút thắt cổ chai và cải thiện hiệu quả quy trình

2. Phân phối thời gian dẫn:

  • Truy vấn: Phân tích phân phối thời gian thực hiện (tạo đến hoàn thành) cho các nhóm hoặc khu vực khác nhau
  • Nhóm: Các hạng mục công việc theo khu vực, đường dẫn hoặc phân công nhóm
  • Tính toán: Thời gian thực hiện cho từng hạng mục công việc
  • Visualization: Biểu đồ hoặc biểu đồ hộp hiển thị sự phân bố
  • Mục đích: Xác định các ngoại lệ và tối ưu hóa quy trình làm việc trong các lĩnh vực cụ thể để giảm thời gian giao hàng

3. Sơ đồ dòng chảy tích lũy (CFD):

  • Truy vấn: Theo dõi số lượng hạng mục công việc ở mỗi trạng thái (Việc cần làm, Đang tiến hành, Đã xong) theo thời gian
  • Nhóm: Các hạng mục công việc theo tiểu bang, được sắp xếp theo ngày thay đổi trạng thái
  • Tính toán: Số lượng tích lũy các hạng mục công việc ở mỗi tiểu bang đều đặn (hàng ngày, hàng tuần)
  • Visualization: CFD hiển thị quy trình mục công việc
  • Mục đích: Giám sát dòng chảy qua các giai đoạn dự án và xác định tắc nghẽn hoặc chậm trễ

4. Phân tích lão hóa mục công việc:

  • Truy vấn: Phân tích lão hóa của các hạng mục công việc trong backlog hoặc các giai đoạn cụ thể
  • Nhóm: Mục công việc theo độ tuổi (ngày kể từ khi tạo), mức độ ưu tiên hoặc loại
  • Tính toán: Độ tuổi trung bình, tỷ lệ phần trăm quá hạn, phân bố lão hóa giữa các danh mục
  • Visualization: Xu hướng lão hóa theo thời gian
  • Mục đích: Ưu tiên xử lý tồn đọng và đảm bảo giao kịp thời các mặt hàng có mức độ ưu tiên cao

Sử dụng Azure Monitor và Application Insights để theo dõi dự án

nhiều cách để tích hợp theo dõi dự án với Azure Monitor và Application Insights. Một trong những cách tiếp cận được sử dụng phổ biến hơn liên quan đến việc kết hợp giám sát liên tục, chú thích phát hànhtích hợp các mục công việc. Điều này tối ưu hóa vòng đời phát triển phần mềm bằng cách:

Những lợi ích:

  • Cung cấp thông tin có giá trị về tắc nghẽn hiệu suất
  • Tạo điều kiện chủ động giải quyết vấn đề
  • Cho phép ra quyết định sáng suốt
  • Cung cấp thành công phần mềm chất lượng cao

Tích hợp giám sát liên tục

Với tính năng giám sát liên tục, các quy trình phát hành có thể kết hợp dữ liệu giám sát từ Application Insights:

Cổng chất lượng dựa trên phép đo từ xa:

  • Cảnh báo Application Insights có thể chặn hoặc khôi phục quá trình triển khai được kiểm soát cho đến khi cảnh báo được giải quyết
  • Theo dõi các chỉ số như tỷ lệ lỗi, thời gian phản hồi, số lượng ngoại lệ trong quá trình triển khai
  • Ngăn chặn việc triển khai xấu đến sản xuất
  • Ngược lại, nếu kiểm tra giám sát vượt qua, việc triển khai có thể tự động tiến hành mà không cần can thiệp thủ công

Tình huống ví dụ:

  1. Quy trình triển khai cho môi trường dàn dựng
  2. Cổng sau triển khai giám sát Application Insights trong 15 phút
  3. Nếu tỷ lệ >lỗi 1%, việc triển khai sẽ bị chặn
  4. Nếu các chỉ số hoạt động tốt, quá trình triển khai sẽ tự động chuyển sang sản xuất

Chú thích phát hành

Chú thích chỉ định các sự kiện trong quy trình CI/CD:

Mục đích:

  • Nắm bắt mối tương quan giữa việc phân phối các bản phát hành phần mềm và hiệu suất ứng dụng kết quả
  • Đánh dấu các sự kiện triển khai trong biểu đồ Application Insights
  • Xem chính xác thời điểm xảy ra thay đổi hiệu suất liên quan đến việc triển khai
  • Nhanh chóng xác định xem việc triển khai có gây ra hồi quy hiệu suất hay không

Thực hiện:

  • Azure DevOps: Hỗ trợ tự động tạo chú thích bằng quy trình xây dựng
  • Chú thích tùy chỉnh: Tạo chú thích tùy ý bằng cách sử dụng PowerShell
  • Siêu dữ liệu: Bao gồm số bản dựng, ghi chú phát hành, môi trường triển khai

Trường hợp sử dụng: Biểu đồ chỉ số hiệu suất cho thấy thời gian phản hồi tăng đột biến. Chú thích phát hành tiết lộ mức tăng đột biến trùng với triển khai v2.3.1, ngay lập tức xác định bản phát hành có vấn đề.

Tích hợp các mục công việc

Chức năng tích hợp mục công việc tạo điều kiện thuận lợi cho việc nhúng dữ liệu Application Insights theo ngữ cảnh khi tạo các mục công việc trong GitHub và Azure DevOps:

Các tính năng tạo điều kiện thuận lợi cho việc thu thập dữ liệu và tạo mục công việc:

Các lĩnh vực nâng cao:

  • Tự động điền vào người được giao, dự án hoặc cột mốc
  • Đặt mức độ ưu tiên dựa trên mức độ nghiêm trọng của cảnh báo
  • Gắn thẻ với các thành phần hoặc dịch vụ bị ảnh hưởng
  • Liên kết đến các mục công việc liên quan

Nhiều cấu hình:

  • Hỗ trợ cho bất kỳ số lượng kho lưu trữ hoặc loại mục công việc nào
  • Cấu hình khác nhau cho các loại cảnh báo khác nhau
  • Mẫu mục công việc dành riêng cho môi trường

Các truy vấn KQL được tạo sẵn và có thể tùy chỉnh:

  • Tự động thêm dữ liệu Application Insights vào mục công việc
  • Bao gồm số lỗi, người dùng bị ảnh hưởng, dấu vết ngăn xếp
  • Đính kèm các mục nhật ký có liên quan
  • Nhúng biểu đồ hiệu suất

Mẫu sổ làm việc có thể tùy chỉnh:

  • Tạo định dạng mục công việc được chuẩn hóa
  • Bao gồm danh sách kiểm tra khắc phục sự cố
  • Liên kết đến runbook và tài liệu
  • Điền trước thông tin chẩn đoán

Quy trình làm việc mẫu:

  1. Application Insights phát hiện tỷ lệ ngoại lệ cao
  2. Cảnh báo tự động kích hoạt
  3. Mục công việc được tạo trong Azure DevOps với:
    • Tiêu đề: "Tỷ lệ ngoại lệ cao trong ProductService"
    • Mô tả: Kết quả truy vấn KQL hiển thị các ngoại lệ hàng đầu
    • Người được giao: Kỹ sư trực từ nhóm dịch vụ
    • Mức độ ưu tiên: Cao (dựa trên tác động của người dùng)
    • Tệp đính kèm: 100 dấu vết ngăn xếp ngoại lệ gần đây nhất
    • Liên kết: Truy vấn Application Insights liên quan, chú thích triển khai
  4. Kỹ sư nhận được thông báo và có tất cả thông tin chẩn đoán ngay lập tức