Hướng dẫn 5 Bước: Giám sát Microservices

cloudFun

Bài viết này sẽ nêu ra năm bước để giám sát microservices xem chúng có đang kết hợp hiệu quả với nhau không.
Monitoring Microservices.png


Tại sao giám sát microservices lại quan trọng? Nguyên nhân là do môi trường làm việc có hệ thống rất phức tạp, phân bố trên nhiều microservices. Ví dụ: ngay cả một ứng dụng thương mại điện tử đơn giản cũng có thể có dịch vụ Đặt hàng, Danh mục sản phẩm và Giao hàng. Công cụ và các thực tiễn đôi khi gặp khó khăn để theo kịp với sự phức tạp như vậy.
Cũng giống như âm nhạc và trò chơi video. Trong những ngày đầu của trò chơi video, phần nhạc xuất hiện dưới dạng các tệp MIDI. Các tệp này chỉ có thể phát một bộ ghi chú, khiến phần nhạc bị trầm. Bây giờ, phần nhạc đã được bổ sung đầy đủ. Có thể nghe thấy mọi nhạc cụ kết hợp cùng nhau trong một bản giao hưởng. Sự kết hợp giữa nhịp điệu và nhạc cụ với nhau làm cho âm nhạc trở nên đẹp hơn khi chúng chỉ được chơi một mình.

Một hệ thống tại một thời điểm?
Trong phần mềm, giám sát một hệ thống tại một thời điểm đã từng được thực hành. Khi cần xem xét một hệ thống khác, sẽ phải chuyển sang một màn hình hoặc công cụ khác. Nhưng microservices giống như các nhạc cụ trong một bản giao hưởng. Chỉ cần một cách để nhìn thấy tất cả, nhìn thấy âm nhạc chúng tạo ra khi kết hợp cùng nhau.
Bài viết này sẽ nêu ra năm bước để giám sát microservices xem chúng có đang kết hợp hiệu quả với nhau không. Điều này cũng giúp phát hiện và sửa chữa những chỗ kết hợp còn chưa hiệu quả.

Microservices nghĩa là gì?
Microservices là các đơn vị nghiệp vụ trung tâm, có thể triển khai tự động. Không phải tất cả các tạo phẩm triển khai đều là các dịch vụ riêng biệt. Ví dụ: có thể có một microservice có thành phần thời gian chạy và thành phần ETL. Cần triển khai chúng cùng nhau vì chúng được liên kết chặt chẽ. Ngoài ra, cần theo dõi chúng như một dịch vụ. Có thể coi microservices là các dịch vụ riêng biệt nhưng cũng cần đánh giá cách hoạt động cùng với nhau như thế nào.
Bây giờ, hãy xem năm bước cần khi theo dõi microservice là gì.

1. Xác định một vài dịch vụ để bắt đầu
Khi thực hiện hoặc học một cái gì đó mới, sẽ rất hấp dẫn nếu có được tất cả các tính năng tuyệt vời chạy trong một lần. Trong phát triển phần mềm, đây là Hội chứng Công cụ Sáng bóng. Các khả năng sẽ làm người dùng đắm chìm trong đó và đánh mất chính mình trong sự phức tạp của việc sắp đặt mọi thứ.
Để tránh điều này, hãy giới hạn nội dung thiết lập cho giám sát microservices. Chọn hai hoặc ba dịch vụ để kết nối với công cụ giám sát mới. Sau đó lặp lại các bước từ 2 đến 5 (xem bên dưới) cho từng dịch vụ.
Nên chọn những dịch vụ nào
Để tiếp tục với những so sánh từ đầu bài viết, hãy chọn những nhạc cụ to nhất trong bản giao hưởng. Những dịch vụ nào có tầm quan trọng chiến lược nhất đối với công ty? Chọn các dịch vụ chiến lược nhất sẽ cung cấp giá trị cao nhất cho những nỗ lực đã được bỏ ra.
Người dùng có thể bị hạn chế trong việc lựa chọn các dịch vụ chiến lược nhất. Có lẽ một số trong đó là các ứng dụng cũ có thể không kết hợp tốt với công cụ mới hơn hoặc không có các thử nghiệm giúp dễ dàng cấu hình lại chúng. Trong trường hợp này, chọn một vài dịch vụ an toàn nhất để thay đổi và có thể chạy cục bộ để đảm bảo mọi thứ đã kết nối một cách chính xác.
Mục tiêu tổng thể là giới hạn sự tập trung vào một vài dịch vụ được lựa chọn.

2. Xác định những nội dung cần đo lường trước
Tiếp nối với ý tưởng giới hạn sự tập trung sẽ là tập trung vào một đến ba số liệu quan trọng nhất cần đo lường. Một số công cụ có nhiều tính năng. Ví dụ, có thể đo các số liệu hiệu suất, cảnh báo, ghi nhật ký tập trung và theo dõi lỗi. Nếu chưa chọn công cụ giám sát, việc đánh giá tất cả các tính năng có thể gây khó khăn.
Ngược lại, chỉ nhìn vào một đến ba trong số các số liệu quan trọng nhất sẽ giúp vượt qua sự khó khăn khi phân tích. Bằng cách này có thể triển khai bước 3 sớm hơn thay vì cố gắng hiểu tất cả mọi thứ cùng một lúc.
Những số liệu nào nên là trọng tâm?
Để tìm ra những số liệu cần được tập trung, điều quan trọng là phải hiểu nhu cầu nghiệp vụ. Dịch vụ nào nhận được hầu hết các khiếu nại của khách hàng hoặc bên vận hành? Có phải do các dịch vụ không hoạt động hoặc yêu cầu thực hiện quá chậm? Có lẽ đó là do quá nhiều lỗi databases xuất hiện trong khi tải cao.
Càng hiểu sâu về nghiệp vụ của mình, càng dễ dàng chọn công cụ cho số liệu. Ngoài ra, sẽ dễ dàng hơn để các sếp duyệt chi tiêu ngân sách cần có để mua dụng cụ.
Điều gì sẽ xảy ra nếu một nhóm tách khỏi các nhóm hoặc bộ phận khác, hay không biết được điều gì quan trọng nhất đối với công ty? Hãy bắt đầu với bốn tín hiệu vàng. Những tín hiệu này là một cách đã được chứng minh theo thời gian để có được giá trị ngay lập tức từ việc giám sát một dịch vụ. Chúng hầu như rất hữu ích cho mọi công ty. Retrace hỗ trợ ngay lập tức và có các mặc định thông minh tùy thuộc vào loại dịch vụ đang theo dõi.

3. Commission APM và logging software
Sau khi hoàn thành 2 bước trên, bây giờ có thể chọn một công cụ giám sát. Sử dụng một đến ba số liệu quan trọng để hướng dẫn cách quan sát một dịch vụ. Nếu có một ví dụ demo, có thể dựa vào đó và thay đổi theo nội dung mong muốn để hiểu cách nó thực sự hoạt động. Đây là trải nghiệm lý tưởng vì ảnh chụp màn hình chỉ có tác dụng ở một mức độ nhất định.
Có một vài điều sẽ cần xuất hiện trong công cụ giám sát bất kể số liệu. Đầu tiên, cần dễ dàng có cái nhìn tổng quan về toàn bộ hệ thống. Điều này bao gồm không chỉ các dịch vụ thời gian chạy mà cả databases và các thành phần back-end khác. Thực hiện được việc này giúp cảm nhận toàn bộ nhịp điệu của hệ thống, giống như nghe một bài hát trong đó tất cả các nhạc cụ chơi cùng nhau.
Ngoài ra, bảng điều khiển cho phép hiều sự tương quan giữa các dịch vụ. Chúng có thể tiết lộ các mối quan hệ không dễ thấy trong mã. (Có thể nhanh chóng chuyển từ những mục này sang ghi nhật ký tập trung để xem chính xác điều gì đang xảy ra nếu làm theo bước 5, được liệt kê bên dưới.)
Công cụ nên làm gì
Cuối cùng, công cụ giúp dễ dàng chia nhỏ các tổng quan thành các dịch vụ và phần cụ thể trong hệ thống. Có thể chia theo một vài kích thước khác nhau. Công cụ này cần thực hiện hầu hết các công việc khó khăn để xác định các vấn đề tiềm ẩn. Một công cụ với mặc định thông minh sẽ giúp việc này trở nên dễ dàng hơn, vì nó sẽ thiết lập sự kết hợp của các màn hình cần có ở nhiều mức độ chi tiết.
Người dùng không nên chỉ dùng một công cụ để theo dõi mà còn cần một công cụ logging tập trung. Logging tập trung được đề cập đến ở đây vì màn hình sẽ luôn được tổng hợp. Chúng sẽ thể hiện xu hướng và sức khỏe tổng thể. Nhưng có một số thời điểm sẽ cần tìm hiểu chính xác những gì đang diễn ra. Không cần phải truy cập nhiều log để xem câu chuyện của một yêu cầu trên nhiều microservices. Thay vào đó, có thể thấy logs từ nhiều dịch vụ ở một nơi.
Retrace có cả giám sát và logging tập trung, nhưng điều đó không cần thiết. Công cụ giám sát có thể tách biệt với công cụ logging miễn là có cách thống nhất log với nội dung thấy trong màn hình - ví dụ: ID ứng dụng và dấu thời gian. (Bước 5 sẽ nói về cách tạo ID thống nhất)

4. Số liệu thiết bị tại các điểm mở rộng
Một công cụ tốt sẽ có một số cách tự động sử dụng các dịch vụ. Thông thường, điều này có nghĩa là phải thêm một thư viện và cấu hình một số thuộc tính để kết nối với đúng máy chủ. Đảm bảo công cụ hỗ trợ thiết bị cho ngôn ngữ và khung được chọn. Mặt khác, cũng sẽ phải tìm các đường nối trong vòng đời yêu cầu của khung công cụ để tự thực hiện. Một số khung, chẳng hạn như Spring Boot, đi kèm với các tiện ích mở rộng giám sát được tích hợp sẵn.
Ngay cả với thiết bị tự động, hầu hết các công cụ sẽ cho phép tùy chỉnh. Điều này cho phép đi đến những nơi kỳ lạ trong ứng dụng đã phát triển từ những hoàn cảnh không lý tưởng.
Khi đã kết nối và định cấu hình, hãy chạy dịch vụ cục bộ, trỏ đến máy chủ màn hình. Đảm bảo rằng dữ liệu thực sự đi vào công cụ từ dịch vụ. Nếu đang sử dụng Retrace, đây là một bài viết tuyệt vời mô tả cách xác minh ứng dụng đang hoạt động .

5. Công cụ theo dõi logs
Ngay cả sau khi đã có được mọi thứ kết nối và chạy, vẫn còn một điều nữa nên làm. Logging tập trung và tầm quan trọng của việc theo dõi các vấn đề đã được đề cập đến trước đó. Với microservices, có thể khó theo dõi các sự kiện thông qua hệ thống. Điều này dẫn đến các lỗi dịch vụ chéo không thể tìm thấy.
Lời khuyên là nên triển khai ID theo dõi trong mỗi dịch vụ. Cần thực hiện việc này theo cách tiêu chuẩn trên các dịch vụ để một ID theo dõi có thể chạy trên toàn bộ hệ thống. Các OpenTracing tiêu chuẩn là một cách tuyệt vời để làm điều này, và nhiều khung có thiết bị đo đạc thư viện để hỗ trợ nó. Nhờ đó có thể dễ dàng truy vấn log trên nhiều dịch vụ và tìm hiểu cách các sự cố có thể xảy ra trên phần mềm.

Kết luận
Giám sát microservices giống như giám sát hầu hết các hệ thống, nhưng có một vài sự khác biệt. Cần có một công cụ có thể giám sát nhiều dịch vụ cùng lúc. Ngoài ra, cần có thêm thông tin theo dõi từng dịch vụ để có thể hiểu cách chúng tương tác với nhau. Với những thứ này trong tay, đảm bảo sẽ có một bản giao hưởng tuyệt đẹp của các dịch vụ cung cấp thông tin chi tiết mọi lúc, cho phép người dùng đưa ra quyết định thông minh về quy mô và kiến trúc.

Nguồn: https://dzone.com/articles/monitoring-microservices-a-5-step-guide
 
Top