Tìm kiếm đề xuất về việc đo lường một ứng dụng có tính sẵn sàng cao đang sử dụng CDN


11

Tôi làm việc cho một công ty Fortune 500 đang vật lộn với việc đo lường chính xác hiệu suất và tính khả dụng cho các ứng dụng có tính sẵn sàng cao (nghĩa là các ứng dụng tăng 99,5% với điều hướng trang 5 giây sang trang). Chúng tôi tính đến cả thời gian chết theo lịch trình và đột xuất để xác định số lượng sẵn có này. Tuy nhiên, gần đây chúng tôi đã thêm một CDN vào hỗn hợp, điều này làm phức tạp các số liệu của chúng tôi một chút. CDN hiện xử lý khoảng 75% lưu lượng của chúng tôi, trong khi gửi phần còn lại đến các máy chủ của chúng tôi.

Chúng tôi cố gắng đo lường cái mà chúng tôi gọi là "trải nghiệm người dùng thực sự" (nghĩa là tập lệnh thử nghiệm của chúng tôi mô phỏng người dùng thông thường nhấp qua ứng dụng.) Các tập lệnh giám sát này nằm ngoài mạng của chúng tôi, có nghĩa là chúng tôi đạt CDN khoảng 75% thời gian.

Quản lý đã quyết định rằng chúng tôi lấy tình huống xấu nhất để đo lường tính khả dụng. Vì vậy, nếu các máy chủ gốc của chúng tôi gặp sự cố, nhưng CDN vẫn phục vụ tốt nội dung, chúng tôi vẫn đánh mạnh vào tính khả dụng. Điều tương tự cũng đúng theo cách khác. Tôi nghĩ rằng miễn là "trải nghiệm người dùng" thành công, chúng ta không nên tự trừng phạt mình một cách không cần thiết. Rốt cuộc, một CDN có mặt để cải thiện hiệu suất và tính sẵn sàng!

Tôi chỉ tự hỏi liệu có ai có bất kỳ kiến ​​thức nào về cách các công ty Fortune 500 khác tính toán số lượng khả dụng của họ không? Tôi nhìn vào apple.com, ví dụ, về một cửa hàng sử dụng CDN dường như không bao giờ bị hỏng (trừ khi sắp có một thông báo sản phẩm chính.) Thật tuyệt vời khi có một số dữ liệu thực tế, cứng vì tôi không Chúng tôi tin rằng chúng ta cần phải tự làm tổn thương mình một cách không cần thiết trên các số liệu này. Chúng tôi đang đưa ra quyết định kinh doanh dựa trên những con số này.

Tuy nhiên, tôi có thể nói rằng các số liệu này được quản lý hiển thị, các vấn đề được giải quyết và giải quyết khá nhanh (đọc: chúng tôi cắt băng đỏ khá nhanh.) Thật không may, là một nhà phát triển, tôi không muốn quản lý nghĩ rằng ứng dụng tăng hoặc giảm vì một số yếu tố bên ngoài (tức là CDN) đang ảnh hưởng đến các con số.

Suy nghĩ?

(Tôi đã đăng nhầm câu hỏi này lên StackOverflow, xin lỗi trước về bài đăng chéo)

Câu trả lời:


2

Trong phần tóm tắt, tôi muốn nói rằng bạn nên xác định rõ ràng những gì cấu thành "khả dụng" so với "không khả dụng" và tự đo lường bản thân để chống lại nó. Ví dụ: bạn có thể có SLA hiệu suất phía máy khách cho trang web 1 giây đến "gấp" và 3 giây cho trang được hiển thị hoàn toàn. Khi bạn không đáp ứng SLA hiệu suất, bạn nên tính đó là một thất bại có sẵn trong khoảng thời gian đó. Không quan trọng bạn có nhấn CDN hay không - trải nghiệm người dùng mới là điều quan trọng.

Tuy nhiên, vì bạn chỉ thực hiện các phép đo sau mỗi 5 phút, nên có thể đo lường các lần truy cập vào CDN so với trang web chính và tính toán rằng 75% khả dụng đến từ CDN và 25% từ chủ. Khó khăn ở đây là 75% chỉ là mức trung bình. Để phân bổ chính xác đổ lỗi trong một khoảng thời gian nhất định, bạn cần biết khi nào một hoặc trang web kia không thực sự phải đối mặt với khách hàng, ví dụ: trong một thay đổi được lên kế hoạch hoặc sau khi hành động thủ công khi phát hiện sự cố. Bạn cũng cần phải tính đến những gì xảy ra khi một trong những trang chính hoặc CDN không hoạt động. Khách hàng có nhận được HTTP 500 không, hay họ chỉ thất bại trong việc chuyển sang trang làm việc? Rất nhiều phụ thuộc vào giải pháp cân bằng tải của bạn. Số liệu "trường hợp xấu nhất" mà bạn mô tả có vẻ quá đơn giản. Tự hỏi bản thân minh, "

Theo như bạn có nên "đổ lỗi" khi CDN không hoạt động: hoàn toàn. Nếu 75% lượt truy cập của bạn chuyển đến CDN, thì 75% trải nghiệm khách hàng của bạn phụ thuộc vào họ. Bạn chịu trách nhiệm cung cấp trải nghiệm tốt cho khách hàng của mình, vì vậy nếu CDN gặp sự cố, bạn cần sử dụng các tài nguyên kỹ thuật của mình để chứng minh và theo dõi với nhà cung cấp.

Một điều khác cần suy nghĩ là những gì xảy ra khi trang web chính không có sẵn trong một khoảng thời gian dài. Như bạn đã mô tả, có vẻ như CDN là một bản sao tĩnh của nội dung trên trang web chính. Nếu trang web chính ngừng hoạt động trong một thời gian dài, CDN có thể bắt đầu cũ. Vì vậy, có lẽ một phần SLA của bạn phải mới mẻ: 1 giây cho "gấp" và 3 giây cho một trang được hiển thị hoàn toàn, với nội dung không quá 15 phút.


@ user44700: Thủ thuật ở đây có hai phần - CDN cung cấp rất nhiều số liệu tương tự như những gì bạn mô tả ... và chúng tôi có các bài kiểm tra nội bộ của riêng chúng tôi cứ sau 5 phút trên máy chủ gốc. Độ lớn của các điểm dữ liệu từ CDN so với bên trong hoàn toàn không cân bằng, tuy nhiên chúng được xử lý khá nhiều như thể chúng được cân bằng (nghĩa là (CDN + Nội bộ) / 2 = thời gian hoạt động) ... Tôi không tin rằng quản lý hiểu các số liệu thống kê cơ bản ... :)
Tim Reddy

2

Tôi đồng ý với user44700, tốt hơn là nên tách thử nghiệm khả dụng cho các máy chủ của bạn so với CDN và theo dõi hai độc lập độc lập. Tính khả dụng thực sự của bạn sẽ là Avail Server * CDN Avail, vì nếu bị hỏng - bạn đang xem xét rằng trang / trang web của bạn bị hỏng. Điều này cũng sẽ chi phí bạn ít hơn với bất kỳ nhà cung cấp giám sát.

Tôi sẽ không đi theo con đường tạo một thử nghiệm trình duyệt và xem xét những mặt hàng nào bị lỗi, trong khi nó có thể hoạt động và một số công ty như Catchpoint có khái niệm "sẵn có nội dung" - nó có thể không chính xác như bạn muốn cho trường hợp này. Ví dụ: trang web của bạn có một cuộc gọi tới CDN cho một tệp cung cấp 404, hầu hết các giải pháp giám sát sẽ cho bạn biết đây là một lỗi - nhưng đó có thực sự là CDN thất bại? Tập tin đó có quan trọng không? có lẽ ai đó chỉ quên xóa một số tham chiếu di tích mà không có người dùng thông báo.

Bạn có thể đọc bài đăng trên blog này để biết thêm một số ý tưởng: http://blog.catchpoint.com/2010/07/21/true-avcellence-of-a-webpage/


Cảm ơn liên kết ... chúng tôi đã theo dõi / đo lường khá nhiều theo cách phù hợp với bài viết đó.
Tim Reddy

0

Báo cáo SLA cần phản ánh chính xác thực tế. Nếu bạn đang đo lường tính khả dụng từ góc độ người dùng và chỉ máy chủ thực hiện đo lường đang gặp sự cố, báo cáo vấn đề đó trong SLA của bạn sẽ không phản ánh trải nghiệm người dùng.

Tôi có thể hiểu muốn giữ thông tin nguồn ở một tiêu chuẩn cao, có lẽ luôn báo cáo nó ngay cả khi không chính xác nhưng với một ghi chú xác định lý do tại sao.

Nếu bạn không thể thỏa thuận, có lẽ có một giải pháp kỹ thuật để làm cho máy chủ đo lường ít bị hỏng hơn.

Nếu thông tin được báo cáo là mất điện và không có, báo cáo cung cấp giá trị gì?

Trong môi trường của tôi, chúng tôi báo cáo từ nhiều nguồn. Một phương pháp giám sát bên ngoài để báo cáo sự sẵn có từ góc độ bên ngoài cũng như báo cáo hệ thống ghi chép ngừng hoạt động nội bộ của chúng tôi, được con người nhập vào và xem xét nhiều yếu tố phản ánh chính xác nhất tình huống.


@Warner: Thật không may, máy chủ chạy các số liệu chính xác là những gì quản lý coi là "trải nghiệm người dùng". Mỗi bài kiểm tra cách nhau 5 phút, vì vậy về cơ bản, tất cả các lần "ngừng hoạt động" của chúng tôi đều tăng 5 phút bất kể thời gian ngừng hoạt động thực tế (có thể là 1 giây.) CDN của chúng tôi cung cấp các số liệu theo quan điểm của nó và nó chi tiết hơn nhiều so với một kiểm tra cứ sau 5 phút ... tôi muốn báo cáo những điều này một cách riêng biệt. Thật không may, ban quản lý đã quyết định lấy mọi ứng dụng, chọn trường hợp xấu nhất và báo cáo rằng ... điều đó không phản ánh SLA thực sự ...
Tim Reddy

Có vẻ như họ không hiểu các chi tiết kỹ thuật và không tin vào tình huống này, do đó họ mặc định là trường hợp xấu nhất để đảm bảo độ chính xác.
Warner

Bạn có thể đã xem xét một cái gì đó như thế này nhưng trong một công việc trước đây hỗ trợ cơ sở dữ liệu đặt chỗ cho một công ty cho thuê xe lớn, chúng tôi đã sử dụng Gomez.com để cho chúng tôi "đọc" vào thời gian để vào trang web và nhận được tỷ lệ cụ thể cho thuê. Trong hoàn cảnh cụ thể của chúng tôi, nó đã cho ban quản lý loại máy đo cần thiết. Tất cả mục tiêu cho trang web là năm 9.
jl.

0

Gomez và Keynote là các giải pháp được doanh nghiệp chấp nhận để thu thập các loại số liệu bạn đã đề cập. Gomez cũng có một dịch vụ theo dõi UX enduser của bạn bằng cách tìm nguồn cung cấp tệp javascript của Google-analytics-esque.



0

Chúng tôi là Fortune 500 với trang web hỗ trợ CDN và chúng tôi sử dụng một số thứ. Bạn đã xác định chính xác rằng bạn cần đo những thứ khác nhau nếu bạn muốn phát hiện những thứ khác nhau. Tôi không rõ ràng những gì bạn muốn cụ thể - số khả dụng để giúp bạn xác định khi nào một ứng dụng thực sự ngừng hoạt động, hoặc những con số khiến bạn không thể quản lý được. Dù sao...

  1. Giám sát tổng hợp bên ngoài - Keynote / Gomez / Webmetrics. Chúng tôi đã từng sử dụng Keynote, bây giờ chúng tôi sử dụng Gomez. Tất nhiên như bạn lưu ý, điều này cũng bao gồm CDN và bất kỳ thành phần bên ngoài nào khác - rất tốt để đo SLA tổng thể của bạn, nhưng không tốt để xác định SLA của ứng dụng của bạn.

Để lấy "CDN ra khỏi nó", bạn có thể lấy một màn hình Keynote / Gomez khác và trỏ nó vào các ứng dụng của bạn không thông qua CDN bằng cách sử dụng tên DNS thay thế hoặc không có gì. Nhưng vì nó vẫn có tài sản tĩnh, nên nó hữu ích hơn cho hiệu suất so với tính khả dụng. Và nó giữ cho sự cố ngừng hoạt động internet, sự cố ngừng hoạt động của đại lý, vv trong vòng lặp, phù hợp cho một số mục đích và không phải cho các mục đích khác.

  1. Giám sát người dùng thực sự. Có dựa trên mạng (Coradiant, Tealeaf) và dựa trên thẻ (Jiffy, Gomez). Chúng tôi sử dụng Coradiant như một trình thám thính mạng và nó xác định hiệu suất thực sự của tài sản được lưu trữ tại đây tại trung tâm dữ liệu của chúng tôi - nói cách khác, các ứng dụng thực tế chứ không phải tất cả rác tĩnh trên CDN. Sau đó, chúng tôi đã viết báo cáo để xác định tỷ lệ lỗi và hiệu suất của ứng dụng và sử dụng Apdex (apdex.org) làm số liệu dẫn xuất. Trong một số trường hợp, bạn không thể sử dụng dựa trên mạng (quá nhiều lưu lượng truy cập hoặc tài sản của bạn không được lưu trữ ở nơi bạn có thể truy cập mạng) và dựa trên thẻ không đáng tin cậy. Có lợi ích to lớn khi thực sự nhìn thấy thời gian phản hồi và lỗi của người dùng cuối - thật dễ dàng để thiết lập một màn hình tổng hợp không có lỗi trong tất cả các trường hợp mà người dùng thực sự mắc phải.

  2. Giám sát tổng hợp tại địa phương. Nagios / zabbix / sitecope / một trăm người khác. Trỏ màn hình vào ứng dụng của bạn cục bộ (không đi qua CDN). Để có thể hành động (như trong, hãy gửi một trang để đánh thức ai đó) theo dõi tính khả dụng, đây là tiêu chuẩn vàng. Không đưa vào tài khoản mạng.

  3. Giám sát nhật ký. Theo một nghĩa nào đó, đây là giám sát người dùng thực sự ghetto. Nhưng nếu bạn thực sự chỉ muốn xem những gì sai lầm khi, nó khá tiện dụng. Có lợi ích "không thực sự là những gì đã xảy ra" của giám sát người dùng thực. Thường chỉ có sẵn, trừ khi bạn đăng nhập thời gian trên tầng Web, trong trường hợp đó, nó cho bạn thấy thời gian kết thúc máy chủ của bạn mất bao lâu - không hữu ích cho người dùng đối mặt với SLA, nhưng rất hữu ích cho "chúng ta cần làm việc với mã nào . " Sử dụng splunk.

Chúng tôi không sử dụng tất cả những điều này, bởi vì bạn muốn "câu chuyện của người dùng cuối" cũng như "những gì lập trình viên chúng ta cần dựa vào."


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.