Observation - Theo dõi hiệu năng của ứng dụng với giải pháp New Relic APM

Hoa Nguyen đã đăng lúc 11:18 - 17.01.2022

New Relic APM (Application Performance Monitoring) là một giải pháp doanh nghiệp, được cung cấp bởi New Relic hiện đang là một trong những giải pháp theo dõi hiệu năng ứng dụng hàng đầu thế giới và hiện tại đã được triển khai thực tế ở VDS

Trong lĩnh vực phát triển phần mềm những năm gần đây, việc thiết kế kiến trúc phần mềm hướng Microservices và triển khai trên các nền tảng công nghệ Cloud Native như Kubernetes, GKE (Google Kubernetes Engine), AKS (Azure Kubernetes Service) đang là xu thế chung. Việc thiết kế phần mềm hướng Microservice có nhiều điểm ưu điểm ưu như tính co giãn tốt (Scalability), tính ít phụ thuộc lẫn nhau của các thành phần của phần mềm (Loose Coupling).

WIBDYlOh8j4moe2tStdIvKBpOeeLts69d_KK3Q-HsIz6sG6gXsoYYeZDU-KY4d0KZlB5I-VCfw9FPBtRxKaCRT9i6XqXmtZhf_38SwiFSQjtYCEAZYOw2gXnQYbE3XCjGvAuVmfGTuy nhiên ngoài những lợi thế ưu việt như vậy, triển khai dịch vụ, phần mềm với thiết kế hướng Microservice sẽ gặp những vấn đề khó khăn khác, nổi bật trong đó chính là việc theo dõi hiệu năng và debug lỗi của dịch vụ, sản phẩm. Trước khi đi sâu vào giới thiệu tính năng của New Relic APM chúng hãy cùng nghiên cứu xem những khó khăn gặp phải cho việc theo dõi ứng dụng khi triển khai dịch vụ, sản phẩm hướng Microservice của VDS.

Dưới đây là mô hình triển khai dịch vụ Microservices của VDS. 

          Y0CugdOojlu69nVkqZyJsAIOhUw-HVTqj6-G4wOnExG2jeohlBae86a96n649qhjXcK_KjCvPuvS1jUSMhj8X8_WNTMoM5X3qc9k8P1K3fqArHYpeIDfR-_bv-VKEb0UpPfL3eX1Mô hình triển khai dịch vụ Microservices của VDS

Các yêu cầu từ người dùng từ Web hoặc Mobile App được gửi tới một điểm truy cập (API Gateway) để phân luồng các request đi vào các Microservice. Trong quá trình xử lý yêu cầu, các service sẽ gọi qua lại lẫn nhau cho tới khi đủ thông tin để trả về cho người dùng.

Trong trường hợp response trả về người dùng gặp lỗi, chúng ta sẽ phải xác định xem nguyên nhân từ đâu. Trong trường hợp trên, nếu như không có công cụ, chúng ta có thể sẽ phải debug tất cả các service mà yêu cầu từ người dùng đi qua. Lỗi có thể xảy ra ở bước 3 hoặc 4, 5, 6.

UZdKpMtqZysz76Pcp6oRZVfgs9b0brXQNI1VgZYclrjfClwj79NAOWrDUCvQgIC9dyEdvbLROq9VQukXwKBMQx9Y-2t_kFvz-wyE4V3lGB1td4YjxatUGbVEY6M9AWGrIvoxSXBaKhoanh vùng lỗi trong hệ thống Microservices

Khi triển khai giải pháp APM (APM Platform), giải pháp sẽ cài đặt các Agent lên các Microservice. Agent này cho phép thu thập các dữ liệu về ứng dụng, sau đó gửi về APM Platform để tổng hợp, phân tích và phục vụ troubleshooting.

RJ-XGgpbamWiOb6Q3h_htAqWtPN59KjDt5rxa3rA76VrXtxWHB-FTY_SBOJ8RsOeutlUv_JSPNRF53WJeuaJUwDTZRq0prl2wwGC38mBEm-k31S8ogh9gsFUXU3a-tMwRrghfaLDTriển khai APM Platform

Các giải pháp APM Platform ra đời cho phép có thể khoanh vùng, truy vết nhanh chóng nguyên nhân gây ra lỗi.

hbh684VSPQZNiZnEyrHgiEq5CCaF0PcN7LxNqLVlK_-nm7csOwOUK-7UWgYsRXYdTpJp_Mee8ojGAtFRvabSPZ9Flp6OAvq2z3HpXl49biewulxzXTADePqbtmFQVhLUocYYYUIOTruy vết chi tiết các ERROR

Có rất nhiều giải pháp APM trên thị trường bao gồm cả OpenSource và Enterprise, tuy nhiên NR APM sau khi POC (Proof of Concept) bởi DevOps team của VDS thì cho thấy kết quả tối ưu cả về hiệu năng và chi phí. Do vậy team đã quyết định chọn New Relic APM để triển khai.

 

tcv2DOVqm46zMNhG6XJ-rq-f4YaQgcQcuOAg7zXUAqbuodirToSvqwO3pSlWT95YvIQWXc_6XsC70Tb_YgoAGChuDxu5TIA-cfPtMFf3BeD8z_i4fs8AcTDViBS3igHuLR3m2YPjCác giải pháp APM

Các tính năng của New Relic APM:

  • Hiển thị Service Map của các Microservices

    https://lh5.googleusercontent.com/5kDECAvJwnVEL6_3oRKFgj5bPfHuTzjrLgx9dqcNKuQU91rvOleZedvKu6puRiJQut7KC3AGT-sCucAbu1_Hw_lQEN26yjeZvH0AxY3x3O8P_WtPmOs41kviSlGAjYWFDcmTSIw9Service Map

Giải pháp cho phép hiển thị toàn bộ các Microservices và các dịch vụ phụ thuộc. Trong trường hợp bất kỳ service nào bị lỗi, ta có thể nhanh chóng khoanh vùng dịch vụ bị lỗi

  • Transaction Monitoring

Transaction là các Web Request. Giải pháp cho phép theo dõi tất cả các transaction bất thường.

pVM7UG7hPWkOc_Ot9rgDbKk_t86K5EU2Em5juFYcZJkI_5vhK5fFwywnHhsZuRv0h4GeuA9xIWK0J6WCyW_F1em9bJFe4IrDxVVTbkG6RKGa560xpo6HKpk81lQwtpC0E5AM9Rzu Transaction Monitoring

  • Database Operation

Cho phép nhìn rõ được các dịch vụ đang gửi các câu truy vấn tới DB như thế nào. Ngoài ra nó có thể cho thấy tốc độ phản hồi của DB chậm hay nhanh qua đó có thể xác định vấn đề có thể đến từ DB hay không.

IYt6xABOfwarAJJ5kdRNqUqDY7gAhZcb4iLo6Pm1lqdpM2TbnKvfXWucwrwliZNES-AGUF3g97K6qDJ0DRK-58V3W7asJpwjQ9SyPCaA-lE6a0VXCVu8eloJJie7os5DIbBu4jI8  Database Operation

  • Distributed Tracing

Cho phép Dev/SOC có thể nhìn nhanh ra được các Transaction nào đang bị lỗi nhiều, sau đó cho phép deep dive để troubleshooting bằng việc nhìn sâu vào transaction, các bước thực hiện trong transaction này

21-opj98vSlX23ooPKeOn4fLa8q0SP57Hvk3l-oJyBs1arQxT_y7WQnQ3pCHuX936hktXpufXuzc0zhtqpA-Tsdg2v9lP2e34U41qHsfYeEG1eZ59ksprhdcNK9JZjljpdRS6rh8Distributed Tracing

Tổng kết: 

Viettel Money ra đời đã hình thành thêm rất nhiều hệ sinh thái dịch vụ mới. Sự gia tăng những hệ sinh thái dịch vụ mới này với hướng kiến trúc Microservice cùng với sự phức tạp của các nghiệp vụ xử lý đã đưa ra yêu cầu cực kỳ quan trọng về một giải pháp toàn diện có thể cho phép theo dõi, giám sát hiệu năng của ứng dụng và khoanh vùng lỗi.

Việc triển khai thành công giải pháp New Relic APM tại VDS là nỗ lực có đóng góp lớn của BGĐ Trung tâm Công nghệ (TTCN), Văn phòng, và team DevOps (TTCN). Giải pháp mảnh ghép cực kỳ quan trọng còn thiếu trong hệ sinh thái các giải pháp phục vụ giám sát và theo dõi hiệu năng ứng dụng.

Hi vọng việc sử dụng giải pháp sẽ được phổ biến rộng rãi trong nội bộ VDS để đưa hệ sinh thái dịch vụ Viettel Money trở nên ổn định hơn và cải thiện hơn nữa chất lượng dịch vụ.

 

[TECH TALK] CI/CD x Automation Test Cho Mobile App

  • 1
  • 232

[Bản tin ATTT] 10 lưu ý phòng tránh rủi ro An toàn thông tin

  • 51

TECH TALK #24.04: Ứng Dụng No/low Code Trong Kiểm Thử Tự Động

  • 1
  • 15
CBNV vui lòng đăng nhập để đọc nhiều nội dung hơn
Bỏ qua