Hoa Nguyen đã đăng lúc 11:18 - 17.01.2022
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).
Tuy 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.
Mô 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.
Khoanh 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.
Triể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.
Truy 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.
Các giải pháp APM
Các tính năng của New Relic APM:
Service 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 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.
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.
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
Distributed 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ụ.