Truy dấu phân tán là gì?
Chủ đề trang
- Truy dấu phân tán là gì?
- Phương thức truy dấu phân tán mang lại những lợi ích gì?
- Có những hình thức truy dấu phân tán khác nhau nào?
- Khả năng truy dấu phân tán toàn diện hoạt động như thế nào trong kiến trúc vi dịch vụ?
- Tiêu chuẩn truy dấu phân tán là gì?
- Sự khác biệt giữa truy dấu phân tán và ghi bản ghi là gì?
- Phương thức truy dấu phân tán mang đến những thách thức gì?
- AWS có thể hỗ trợ các yêu cầu về truy dấu phân tán như thế nào?
Truy dấu phân tán là gì?
Truy dấu phân tán là quan sát các yêu cầu dữ liệu khi các yêu cầu đó đi qua một hệ thống phân tán. Kiến trúc vi dịch vụ hiện đại thường có nhiều thành phần nhỏ độc lập liên tục giao tiếp và trao đổi dữ liệu bằng cách sử dụng API để thực hiện công việc phức tạp. Với tính năng truy dấu phân tán, các nhà phát triển có thể truy dấu hoặc theo dõi trực quan đường đi của yêu cầu qua các vi dịch vụ khác nhau. Khả năng hiển thị này giúp khắc phục lỗi hoặc sửa lỗi và sự cố hiệu năng.
Phương thức truy dấu phân tán mang lại những lợi ích gì?
Nhà phát triển phần mềm có thể triển khai các hệ thống truy dấu phân tán trong hầu hết mọi môi trường hoạt động trên đám mây, cũng như ghi lại các dấu vết phân tán mà ứng dụng trên đám mây tạo ra. Hơn nữa, các công cụ truy dấu hỗ trợ nhiều ngôn ngữ lập trình và ngăn xếp phần mềm, giúp đội ngũ phần mềm có thể giám sát và thu thập dữ liệu hiệu năng cho các ứng dụng khác nhau trên cùng một nền tảng.
Đội ngũ phát triển sử dụng tính năng truy dấu phân tán để cải thiện khả năng quan sát, cũng như giải quyết các vấn đề về hiệu năng mà các công cụ giám sát và gỡ lỗi phần mềm thông thường không làm được.
Sau đây là các lợi ích khác của tính năng truy dấu phân tán.
Đẩy nhanh quá trình khắc phục sự cố phần mềm
Các ứng dụng hiện đại dùng nhiều vi dịch vụ để trao đổi dữ liệu và thực hiện yêu cầu dịch vụ trên các hệ thống phân tán. Việc khắc phục sự cố hiệu năng trong kiến trúc dựa trên vi dịch vụ khó hơn nhiều so với ứng dụng phần mềm nguyên khối. Không giống như ứng dụng nguyên khối, nguyên nhân gốc rễ dẫn đến một vấn đề cụ thể về phần mềm có thể không rõ ràng – các hoạt động tương tác chồng chéo và phức tạp giữa nhiều mô-đun phần mềm có thể khiến khó chẩn đoán sự cố.
Với tính năng truy dấu phân tán, đội ngũ phần mềm có thể giám sát dữ liệu đi qua các đường dẫn phức tạp kết nối các vi dịch vụ và kho lưu trữ dữ liệu khác nhau. Bằng công cụ truy dấu phân tán, đội ngũ phần mềm có thể theo dõi các yêu cầu và trực quan hóa các đường dẫn truyền dữ liệu một cách chính xác. Đội ngũ phần mềm có thể giải quyết kịp thời các vấn đề về hiệu năng và giảm thiểu tình trạng gián đoạn dịch vụ.
Cải thiện hoạt động cộng tác của nhà phát triển
Một số nhà phát triển thường tham gia vào việc xây dựng ứng dụng trên đám mây, trong đó, mỗi người chịu trách nhiệm về một hoặc một số vi dịch vụ. Quá trình phát triển phần mềm chậm lại nếu các nhà phát triển không thể truy dấu dữ liệu do các vi dịch vụ trao đổi. Với hệ thống truy dấu phân tán, nhà phát triển có thể cộng tác bằng cách cung cấp dữ liệu đo từ xa, chẳng hạn như bản ghi và dấu vết, cho mọi yêu cầu dịch vụ mà vi dịch vụ đưa ra. Nhà phát triển có thể phản hồi chính xác các lỗi và các vấn đề phần mềm khác phát hiện được trong quá trình kiểm thử và sản xuất.
Rút ngắn thời gian tiếp cận thị trường
Các tổ chức triển khai các nền tảng truy dấu phân tán có thể hợp lý hóa và đẩy nhanh hoạt động phát hành các ứng dụng phần mềm cho người dùng cuối. Đội ngũ phần mềm xem xét các dấu vết phân tán để nắm rõ thông tin chi tiết, giúp tăng tốc độ phát triển phần mềm, giảm thiểu chi phí phát triển, hiểu hành vi của người dùng và cải thiện mức độ sẵn sàng của thị trường.
Có những hình thức truy dấu phân tán khác nhau nào?
Đội ngũ phần mềm dùng các công cụ truy dấu phân tán để giám sát, phân tích và tối ưu hóa ứng dụng.
Truy dấu mã
Truy dấu mã là quá trình phần mềm kiểm tra luồng mã nguồn trong ứng dụng khi thực hiện một chức năng cụ thể. Tính năng này giúp nhà phát triển hiểu luồng logic của mã và nhận biết các vấn đề không xác định. Ví dụ: nhà phát triển dùng tính năng truy dấu mã để xác thực rằng yêu cầu dịch vụ đã gọi các bước để truy vấn cơ sở dữ liệu. Nếu một số chức năng phần mềm không phản hồi, hệ thống truy dấu sẽ thu thập trạng thái lỗi thích hợp và thu hút sự chú ý đến thời gian phản hồi.
Truy dấu chương trình
Truy dấu chương trình là phương pháp giúp nhà phát triển kiểm tra địa chỉ của các lệnh và biến do một ứng dụng đang hoạt động gọi. Khi một ứng dụng phần mềm chạy, ứng dụng này sẽ xử lý từng dòng mã nằm trong một không gian bộ nhớ được phân bổ cụ thể. Ứng dụng cũng xử lý các biến được lưu trữ trong bộ nhớ máy. Kiểm tra các thay đổi về chương trình và bộ nhớ dữ liệu là việc khó khăn nếu không có công cụ tự động. Với tính năng truy dấu chương trình, đội ngũ phần mềm có thể chẩn đoán các vấn đề lâu đời về hiệu năng, chẳng hạn như tràn bộ nhớ, tiêu thụ tài nguyên quá mức và chặn các hoạt động logic.
Truy dấu toàn diện
Với tính năng truy dấu toàn diện, đội ngũ phát triển có thể theo dõi quá trình chuyển đổi dữ liệu dọc theo đường dẫn yêu cầu dịch vụ. Khi khởi tạo một yêu cầu, ứng dụng sẽ gửi dữ liệu đến các thành phần phần mềm khác để xử lý thêm. Nhà phát triển dùng các công cụ truy dấu để theo dõi và biên dịch các thay đổi đối với dữ liệu quan trọng một cách toàn diện. Tính năng này cung cấp chế độ xem lấy ứng dụng làm trung tâm về những yêu cầu truyền qua ứng dụng.
Khả năng truy dấu phân tán toàn diện hoạt động như thế nào trong kiến trúc vi dịch vụ?
Khi dùng ứng dụng, người dùng bắt đầu yêu cầu dịch vụ và các thành phần ứng dụng khác nhau sẽ xử lý yêu cầu.
Hãy xem xét trường hợp một người dùng đặt vé trong ứng dụng đặt vé xem phim trực tuyến. Người dùng nhập thông tin liên hệ, chi tiết phim và thông tin thanh toán của họ rồi chọn Đặt ngay. Một yêu cầu được tạo và chuyển đến:
-
Vi dịch vụ A xác thực dữ liệu do người dùng nhập.
-
Vi dịch vụ B lấy dữ liệu từ A và tạo một bản ghi trong cơ sở dữ liệu khách hàng.
-
Vi dịch vụ C lấy dữ liệu từ B và xác nhận lệnh thanh toán.
-
Vi dịch vụ D lấy dữ liệu từ C, phân bổ chỗ ngồi và tạo dữ liệu vé xem phim.
-
Vi dịch vụ E lấy dữ liệu từ D và tạo tệp vé ở định dạng PDF.
Sau đó, một phản hồi chứa tệp vé dạng PDF được trả về với chuỗi vi dịch vụ đi qua E, D, C, B đến A và cuối cùng là đến tay người dùng. Trên đây là một ví dụ rất đơn giản – một yêu cầu thường đi qua vài chục vi dịch vụ và thậm chí đi qua chuỗi thành phần phần mềm của bên thứ ba bên ngoài ứng dụng. Điều này làm cho quá trình ngày càng phức tạp.
Các hệ thống truy dấu phân tán theo dõi các tương tác này của yêu cầu dịch vụ với các vi dịch vụ và những thành phần phần mềm khác trong môi trường điện toán phân tán. Truy dấu phân tán thể hiện dòng thời gian và tất cả các hành động xảy ra giữa việc tạo yêu cầu và nhận phản hồi. Các đội ngũ phần mềm sử dụng dấu vết để theo dõi chuyển động dữ liệu thông qua nhiều vi dịch vụ ban đầu tương tác với yêu cầu.
Khoảng thời gian
Khi xử lý yêu cầu dịch vụ, một ứng dụng có thể thực hiện một số hành động. Các hành động này được biểu diễn dưới dạng khoảng thời gian trong truy dấu phân tán. Ví dụ: khoảng thời gian có thể là lệnh gọi API, xác thực người dùng hoặc cho phép truy cập bộ nhớ. Nếu một yêu cầu duy nhất dẫn đến nhiều hành động, khoảng thời gian ban đầu (hoặc cha) có thể phân nhánh thành nhiều khoảng thời gian con. Các lớp lồng nhau của khoảng thời gian cha và khoảng thời gian con tạo thành một cách biểu diễn logic liên tục gồm các bước được thực hiện để hoàn thành yêu cầu dịch vụ.
ID theo dõi
Hệ thống truy dấu phân tán gán một ID duy nhất cho mọi yêu cầu để theo dõi yêu cầu đó. Mỗi khoảng thời gian kế thừa cùng một ID theo dõi từ yêu cầu ban đầu chứa span đó. Khoảng thời gian cũng được gắn ID không trùng lặp, giúp hệ thống truy dấu hợp nhất siêu dữ liệu, bản ghi và số liệu thu thập được.
Bộ sưu tập số liệu
Khi truyền qua các vi dịch vụ khác nhau, mỗi khoảng thời gian sẽ thêm các số liệu giúp cung cấp cho nhà phát triển những thông tin chi tiết cụ thể và chính xác về hành vi của phần mềm. Bạn có thể thu thập tỷ lệ lỗi, dấu thời gian, thời gian phản hồi và siêu dữ liệu khác với các khoảng thời gian. Sau khi quá trình truy dấu hoàn thành toàn bộ chu kỳ, công cụ truy dấu phân tán sẽ hợp nhất tất cả dữ liệu thu thập được.
Ví dụ: một lệnh gọi API được đánh giá dựa vào thời gian phản hồi, trạng thái lỗi và sự cố của các chức năng phụ do nhiều dịch vụ của bên thứ ba thực hiện. Công cụ truy dấu biến dữ liệu thành các dạng trực quan, nêu bật các chỉ số chính và nội dung tóm tắt về hiệu năng. Bằng cách này, các kỹ sư về độ tin cậy của trang web có thể nhanh chóng xác định lỗi, kiểm tra các yếu tố dữ liệu quan trọng và cộng tác với các đội ngũ phát triển để khắc phục những vấn đề về hiệu năng cũng như đảm bảo tính tuân thủ Thỏa thuận cấp độ dịch vụ (SLA).
Tiêu chuẩn truy dấu phân tán là gì?
Các tiêu chuẩn truy dấu phân tán cung cấp một khung chung và các công cụ phần mềm cho nhà phát triển. Các tiêu chuẩn này giám sát, trực quan hóa và phân tích những yêu cầu dịch vụ trong môi trường ứng dụng hiện đại. Bằng cách tiêu chuẩn hóa quy trình truy dấu phân tán, đội ngũ phần mềm có thể đo lường việc theo dõi yêu cầu mà không bị mắc kẹt với nhà cung cấp.
Các phần dưới đây mô tả các tiêu chuẩn được áp dụng để cho phép khả năng tương tác khi thực hiện truy dấu phân tán.
OpenTracing
OpenTracing là một tiêu chuẩn truy dấu phân tán nguồn mở do Cloud Native Computing Foundation (CNCF) phát triển. OpenTracing chú trọng đến việc cho phép các nhà phát triển tạo ra dấu vết thông qua API đo lường. Điều này cho phép các nhà phát triển tạo ra dấu vết phân tán từ các phần khác nhau của cơ sở mã, thư viện hoặc các thành phần phụ thuộc khác.
OpenCensus
OpenCensus bao gồm các thư viện đa ngôn ngữ, có khả năng trích xuất số liệu phần mềm và gửi chúng đến các hệ thống backend để phân tích. Các nhà phát triển có thể sử dụng API được cung cấp để quản lý cách tạo và thu thập dấu vết. Không giống như OpenTracing, các nhà phát triển làm việc với OpenCensus từ một kho dự án duy nhất thay vì các cơ sở mã và thư viện riêng lẻ.
OpenTelemetry
OpenTelemetry hợp nhất OpenTracing và OpenCensus. OpenTeleMetry kết hợp các tính năng tốt nhất của cả 2 tiêu chuẩn để cung cấp một khung truy dấu phân tán toàn diện. OpenTelemetry cung cấp các bộ công cụ phát triển phần mềm mở rộng, API, thư viện và các công cụ đo đạc khác để truy dấu phân tán dễ dàng hơn.
Sự khác biệt giữa truy dấu phân tán và ghi bản ghi là gì?
Ghi bản ghi là phương thức ghi lại các sự kiện cụ thể xảy ra khi một ứng dụng chạy. Công cụ tạo bản ghi thu thập các sự kiện có dấu thời gian - chẳng hạn như lỗi hệ thống, tương tác của người dùng, trạng thái giao tiếp và các chỉ số khác - để giúp đội ngũ phát triển phát hiện điểm bất thường trong hệ thống. Nói chung, có 2 loại phương thức ghi bản ghi:
-
Ghi bản ghi tập trung thu thập tất cả các hoạt động được ghi lại và lưu trữ chúng ở một vị trí duy nhất.
-
Ghi bản ghi phân tán lưu trữ các tệp bản ghi ở các vị trí riêng biệt trên đám mây.
Cả 2 phương pháp ghi bản ghi đều mang đến cái nhìn tổng quan tĩnh về các sự cố để các nhà phát triển nắm được những gì đã xảy ra trong ứng dụng. Ngược lại, truy dấu phân tán cung cấp biên bản kiểm tra chỉ ra lý do tại sao một sự cố xảy ra bằng cách tương quan các dữ liệu đo từ xa khác nhau được thu thập trong suốt thời gian yêu cầu dịch vụ. Truy dấu phân tán có thể sử dụng phương thức ghi bản ghi và các phương pháp thu thập dữ liệu khác để theo dõi một yêu cầu dịch vụ cụ thể.
Phương thức truy dấu phân tán mang đến những thách thức gì?
Truy dấu phân tán giúp các nhà phát triển dễ dàng chẩn đoán, gỡ lỗi và khắc phục các vấn đề phần mềm. Mặc dù vậy, đội ngũ phần mềm phải lưu ý về những thách thức sau đây khi chọn các công cụ truy dấu.
Đo lường thủ công
Một số công cụ truy dấu yêu cầu đội ngũ phần mềm phải đo lường mã theo cách thủ công để tạo ra các dấu vết cần thiết. Khi nhà phát triển sửa đổi mã để theo dõi các yêu cầu, lỗi mã hóa có nguy cơ ảnh hưởng đến các bản phát hành chính thức. Hơn nữa, việc không có hệ thống tự động hóa khiến việc truy dấu trở nên phức tạp, dẫn đến sự chậm trễ và tình trạng thu thập dữ liệu không chính xác.
Phạm vi frontend hạn chế
Các nhà phát triển có thể không giám sát được hoàn toàn các vấn đề về hiệu năng nếu các công cụ truy dấu bị hạn chế về khả năng phân tích backend. Trong một số trường hợp, hệ thống truy dấu phân tán chỉ bắt đầu thu thập dữ liệu khi dịch vụ backend đầu tiên nhận được yêu cầu. Điều này có nghĩa là các nhà phát triển không thể phát hiện và kiểm tra các vấn đề phát sinh từ dịch vụ frontend trong phiên người dùng tương ứng.
Lấy mẫu ngẫu nhiên
Một số công cụ không cho phép đội ngũ phần mềm ưu tiên việc truy dấu, làm hạn chế khả năng quan sát đối với các dấu vết được lấy mẫu ngẫu nhiên. Với dữ liệu mẫu hạn chế, các tổ chức cần những phương pháp khắc phục sự cố phần mềm khác để nắm bắt các vấn đề lớn mà công cụ truy dấu không thể phát hiện.
AWS có thể hỗ trợ các yêu cầu về truy dấu phân tán như thế nào?
AWS X-Ray là nền tảng truy dấu phân tán giúp nhà phát triển phần mềm theo dõi các yêu cầu của người dùng và xác định tình trạng tắc nghẽn trong các ứng dụng trên đám mây. Các tổ chức sử dụng X-Ray để trực quan hóa số liệu ứng dụng và cải thiện tính khả dụng của khối lượng công việc. Với AWS X-Ray, bạn có thể:
-
Tích hợp với tất cả các ứng dụng chạy trên Amazon Elastic Compute Cloud (EC2), Amazon EC2 Container Service (Amazon ECS), AWS Lambda và AWS Elastic Beanstalk.
-
Đặt tỷ lệ lấy mẫu thích hợp để mang đến khả năng hiển thị toàn diện cho các dấu vết.
-
Trực quan hóa dữ liệu tổng hợp thông qua bản đồ dịch vụ, hiển thị các số liệu chính chẳng hạn như độ trễ và tỷ lệ lỗi.
Bắt đầu sử dụng phương thức truy dấu phân tán trên AWS bằng cách tạo tài khoản miễn phí ngay hôm nay.
Các bước tiếp theo trên AWS
Browse all cloud computing concepts
Browse all cloud computing concepts content here:
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages