Monitoring System: Khi bạn thật sự quan tâm đến người dùng

(Bài viết bởi Jack — DevOps Engineer tại Got It Vietnam về Monitoring System)

Monitoring System: Khi bạn thật sự quan tâm đến người dùng

Tại sao chúng ta cần Monitoring System?

Sự thành công của các sản phẩm IT có thể được đo bằng số lượng người dùng và sự hài lòng của họ khi sử dụng sản phẩm. Khi người dùng có những trải nghiệm tốt đối với sản phẩm, họ sẽ gắn bó lâu dài hơn với chúng ta và giới thiệu những người khác cùng trải nghiệm. Chính vì vậy, đối với các công ty IT thì nhiệm vụ hàng đầu là phải làm thỏa mãn người dùng.

Một trong những cách để thoả mãn người dùng là cung cấp một hệ thống có chất lượng đủ tốt và ổn định. Một website thường xuyên gặp vấn đề (người dùng không thể sử dụng tính năng mà họ muốn hoặc tốc độ xử lý của trang web cực kì chậm) có thể khiến người dùng mất kiên nhẫn và tìm kiếm các sản phẩm khác thay thế.

Các công ty cần có những phương pháp để đảm bảo sự tin cậy cho các sản phẩm mình cung cấp và một hệ thống monitoring được xem như là giải pháp hiệu quả cho vấn đề này. Bài viết này sẽ miêu tả một trong những hệ thống monitoring đang được sử dụng hiệu quả tại Got It.

Monitoring System là gì?

Monitoring là một hệ thống dùng để thu thập thông tin về phần cứng và phần mềm của một hệ thống IT. Hệ thống monitoring có thể thu thập từ trạng thái của của server (CPU, memory, network, …) cho đến những thông tin chi tiết về cách server xử lý request đến từ người dùng (số lượng requests/s, thời gian server xử lý requests, …).

Một hệ thống monitoring sẽ giúp chúng ta có một cái nhìn dễ dàng về chất lượng và những vấn đề xảy ra với sản phẩm. Nó sẽ tự động cảnh báo cho chúng ta ngay khi phát hiện ra điều bất thường. Bây giờ, thay vì được người dùng thông báo rằng server gặp trục trặc, chúng ta sẽ sớm phát hiện và giải quyết trước khi người dùng nhận ra. Hơn nữa, đối với các hệ thống đủ lớn và phức tạp, hệ thống monitoring còn giúp chúng ta biết được những thành phần nào hay gặp sự cố để có thể tập trung cải thiện chất lượng.

Service Level Objectives (SLOs) – Khái niệm quan trọng trong monitoring

Không hiểu rõ hệ thống IT hoặc những gì thực sự quan trọng đối với hệ thống khiến cho việc quản lý gặp nhiều khó khăn. Hãy thử tưởng tượng bạn là huấn luyện viên của một đội bóng, và bạn không hề biết mục tiêu của đội bóng là gì, trong đội bóng có bao nhiêu cầu thủ và năng lực của từng cầu thủ là thế nào. Đối với các đội bóng hàng đầu, họ không được phép thua bất cứ trận nào để dành chức vô địch. Nhưng đối với các đội bóng yếu và tầm trung, họ được phép thua nhiều trận, miễn sao có thể trụ hạng. Không hiểu rõ những vấn đề này khiến cho việc quản lý đội bóng gần như không tưởng và rất khó để đạt được mục tiêu của đội.

Tương tự đối với các hệ thống IT, người dùng luôn là mục tiêu cuối cùng của sản phẩm. Hiểu được những gì thực sự quan trọng đối với người dùng và xây dựng được các công thức tính toán các yếu tố này giúp chúng ta tập trung vào những thứ cần thiết và có được một cái nhìn chính xác về sự hiệu quả của sản phẩm. Từ đó, chúng ta có thể xây dựng một hệ thống monitoring hiệu quả để đảm bảo mục tiêu cụ thể mà chúng ta đề ra.

SLOs là một khái niệm được sinh ra bởi các kỹ sư SRE của Google để giúp hệ thống monitoring tập trung vào những thứ quan trọng đối với sản phẩm. SLOs miêu tả những mục tiêu của hệ thống, cùng với đó là các công thức để tính toán rằng chúng ta đang ở đâu so với mục tiêu, và chúng ta phải cải thiện những gì để đạt được mục tiêu. SLOs được đánh giá quan trọng đến mức nếu không có nó, chúng ta cũng không cần có hệ thống monitoring nào cả.

Dưới đây là 1 ví dụ đơn giản về SLOs mà một sản phẩm nội bộ của Got It sử dụng. Đối với API server thông thường, chúng ta sẽ quan tâm đến việc liệu nó có thể xử lý requests không (hạn chế downtime và lỗi) và thời gian mà nó xử lý requests nhanh hay chậm.

Ví dụ về SLOs

Monitoring System ở Got It

Trước khi tìm hiểu thêm về hệ thống monitoring tại Got It, chúng ta hãy cùng tìm hiểu về công nghệ mà hệ thống monitoring này sử dụng: Elastic Stack.

Elastic Stack

Elastic stack là một tập hợp các công nghệ dùng để thu thập, biến đổi, lưu trữ và phân tích dữ liệu với thành phần chính là Elasticsearch.

Elastic Stack

Về khía cạnh monitoring, beats sẽ được sử dụng để thu thập thông tin của server. Hệ thống monitoring của Got It sử dụng:

  • Metricbeat: Thu thập metrics về server (CPU, memory, …)
  • Filebeat: Thu thập logs của các services.
  • Heartbeat: Ping để kiểm tra xem các services có còn hoạt động không.

Logstash được sử dụng để biến đổi dữ liệu theo cách mà chúng ta mong muốn. Sau đó, tất cả dữ liệu sẽ được lưu trong Elasticsearch và được hiển thị qua dashboard trong Kibana.

Monitoring System của Got It hoạt động thế nào?

Monitoring System của Got It

Metricbeat, Heartbeat và Filebeat sẽ thu thập các thông tin về hệ thống và gửi trực tiếp về Elasticsearch. Ở đây, chúng ta không dùng Logstash để biến đổi dữ liệu mà thay vào đó Ingest Node của Elasticsearch sẽ được sử dụng để giảm bớt đi một layer trong hệ thống, khiến hệ thống đơn giản hơn. Dữ liệu thu thập được từ hệ thống monitoring thường khá thường xuyên và lớn nên các kỹ sư ở Got It luôn phải có phương án kỹ lưỡng về thời gian lưu trữ chúng trên Elasticsearch cũng như backup thường xuyên để tránh mất dữ liệu.

Watcher là một tính năng được cung cấp bởi Elasticsearch giúp chúng ta phát hiện ra những sự cố xảy ra trong hệ thống một cách tự động. Sau mỗi khoảng thời gian nhất định, Watcher sẽ thực hiện một câu hỏi truy vấn vào Elasticsearch để lấy dữ liệu cần thiết. Sau đó, nó sẽ sử dụng dữ liệu để so sánh với những điều kiện chúng ta quy định và thông báo cho chúng ta biết ngay khi tìm thấy một điểm bất thường trong hệ thống. Dựa vào tính nghiêm trọng của sự cố, Watcher sẽ sử dụng chọn một (hoặc nhiều) phương pháp:

Phương pháp của Watcher

Sau khi được thông báo về sự cố, các kỹ sư ở Got It sẽ quan sát thông tin của hệ thống qua các dashboards trên Kibana. Qua đó, họ có thể dễ dàng hiểu được những vấn đề đang xảy ra và tìm cách khắc phục một cách hợp lý. Dưới đây là ví dụ về 1 dashboard đơn giản:

Một dashboard đơn giản

Ngoài ra, Watcher còn gửi báo cáo hàng tuần về tình trạng vận hành của hệ thống qua email. Những người có trách nhiệm sẽ cùng ngồi lại, phân tích những sự cố nghiêm trọng và đề ra những kế hoạch cụ thể để cải thiện hệ thống.

Kết luận

Đối với các công ty lớn, hệ thống monitoring là công cụ không thể thiếu để đảm bảo chất lượng của sản phẩm cũng như trải nghiệm của người dùng. Bài viết này miêu tả một trong những hệ thống monitoring mà các kỹ sư tại Got It tự tìm hiểu, xây dựng và sử dụng thành công. Lưu ý rằng, ngoài hệ thống trên, các sản phẩm của Got It còn được giám sát cẩn thận bởi các monitoring system khác (mà không được nhắc đến trong bài viết này) vì có rất nhiều khía cạnh khác nhau của các hệ thống IT mà chúng ta cần bảo vệ.

Reference:

https://landing.google.com/sre/sre-book/chapters/service-level-objectives/


Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
June 16, 2020
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
PhotoStudy Stack Transition – Hành trình “đập đi xây lại” cho một hệ thống 10 năm tuổi

PhotoStudy Stack Transition – Hành trình “đập đi xây lại” cho một hệ thống 10 năm tuổi

Theo số liệu mới nhất từ Esomar và Appinventiv, cứ mỗi 24 giờ trôi qua, Apple App Store và Google Play Store sẽ chào đón sự ra đời của hơn 5,000 mobile app mới. Nhưng, tiếc là, cùng thời điểm đó, người ta cũng chứng kiến hơn 4,000 “đứa con tinh thần” của các nhà […]
Khi con gái làm IT (2): Tỏa sáng theo cách của riêng mình

Khi con gái làm IT (2): Tỏa sáng theo cách của riêng mình

Hãy cùng tìm hiểu những “sắc màu cá tính” của Got It Girls qua những câu chuyện của chúng mình trong Got It E-Magazine số hôm nay và đạp đổ những định kiến về con gái làm IT nhé! Tốt nghiệp chuyên Tin, trường THPT Chuyên Hà Nội – Amsterdam, Hương nối dài hành trình […]
Conversational AI

Conversational AI

Trong số những sản phẩm mà Got It đang xây dựng, Conversational AI (CAI) là sản phẩm có tuổi đời trẻ nhất, chưa có nhiều khách hàng nhất. Tuy nhiên, đây lại là sản phẩm phức tạp nhất và được kỳ vọng lớn nhất trong chiến lược phát triển của công ty. Tại sao lại […]
Con đường IT nào dành cho dân kinh tế?

Con đường IT nào dành cho dân kinh tế?

Cơ hội mới dành cho ai không biết lập trình, ghét việc “bàn giấy"!
Review 10 khóa học DevOps tốt nhất cho developers

Review 10 khóa học DevOps tốt nhất cho developers

Để hiểu sâu hơn về DevOps, bạn có thể tham khảo top 10 khóa học DevOps tốt nhất dưới đây. Từ đó, bạn sẽ có thể lựa chọn cho mình khóa học phù hợp nhất với bản thân trong sự nghiệp phát triển phần mềm nhé. Mục lục1. DevOps Project: CI/CD with Jenkins Ansible Docker […]
Azure DevOps Services là gì? Cách chọn Azure DevOps Services

Azure DevOps Services là gì? Cách chọn Azure DevOps Services

Nếu là một lập trình viên, bạn sẽ không thể bỏ qua những kiến thức chuyên môn về Azure DevOps Services. Vậy cụ thể nó là gì? Làm sao để có thể lựa chọn dịch vụ Azure DevOps đúng cách? Hãy cùng tham khảo bài viết sau đây để có câu trả lời chi tiết, […]