5 cách tối ưu cài đặt cho server ứng dụng thương mại (Phần 2)

(VINADATA – Cung cấp dịch vụ CDN chuyên nghiệp) Khi ứng dụng thương mại của bạn đã online và bắt đầu chạy trên cloud server, điều bạn cần làm tiếp theo là tối ưu cài đặt để server có thể đáp ứng tốt trong điều kiện mới (từ thử nghiệm sang thương mại). Bài viết này sẽ đưa ra một số giải pháp cho bạn.

3. Cân bằng tải

Cân bằng tải (load balancing) có thể đưa vào môi trường cloud server để cải thiện hiệu năng và tính sẵn sàng hoạt động bằng cách phân bổ khối lượng công việc ra nhiều server khác nhau. Nếu một server bị lỗi, server khác sẽ đảm nhận traffic đến cho đến khi server lỗi được phục hồi. Trong môi trường cloud server, cân bằng tải thường được đưa vào bằng cách thêm server riêng đảm nhận chức năng này ngay trước các server phụ trách từng phần của ứng dụng.

Với môi trường thương mại, cân bằng tải không bắt buộc phải có, nhưng là một cách hiệu quả để giảm số lượng vị trí có khả năng xảy ra lỗi làm ngưng hệ thống nếu được thiết lập đúng cách. Nó cũng giúp cải thiện hiệu năng bằng việc gia tăng mức tải thông qua mô hình server ngang hàng.

Trong biểu đồ trên, ta có thể thấy dù áp dụng cân bằng tải nhưng điểm yếu đó là hai vị trí có khả năng xảy ra lỗi làm ngưng hệ thống: database server và bản thân server cân bằng tải.

5 cách tối ưu cài đặt cho server ứng dụng thương mại (Phần 2)Các điểm cần lưu ý:

  • Những thành phần có thể cân bằng tải: Không phải tất cả các thành phần trong môi trường server có thể cân bằng tải dễ dàng. Cần cân nhắc đặc biệt với một số phần mềm như database hay ứng dụng stateful.
  • Nhân rộng dữ liệu ứng dụng: nếu một server cân bằng tải của ứng dụng có dữ liệu, chẳng hạn như file tải lên thì dữ liệu này cần nhân rộng sang các server ứng dụng khác bằng hình thức mô phỏng hay hệ thống chia sẻ. Điều này rất cần thiết để đảm bảo dữ liệu ứng dụng luôn sẵn sàng dù bất cứ server nào được chọn để phục vụ yêu cầu từ người dùng.
  • Nghẽn cổ chai: Nếu một server cân bằng tải không có đủ tài nguyên hoặc cấu hình không chuẩn, nó có thể làm giảm hiệu năng hệ thống hoặc nghiêm trọng hơn là trở thành vị trí có khả năng xảy ra lỗi làm ngưng hệ thống. Bổ sung một lớp cân bằng tải thứ hai với IP tĩnh để gửi traffic server ở trạng thái sẵn sàng là giải pháp.

 

4. Giám sát hệ thống

Việc giám sát thực hiện thông qua tracking trạng thái dịch vụ và xu hướng sử dụng tài nguyên trên cloud server của bạn, qua đó cung cấp cái nhìn tổng quan về môi trường sever. Một lợi ích lớn nhất của giám sát đó là có thể cấu hình cho các hoạt động tự động, như chạy một script hay gửi một thông báo đến người quản lý khi server ngừng chạy, hay một bộ phận như CPU, bộ nhớ hay ổ cứng bị quá tải.

Với một hệ thống môi trường thương mại lớn và phức tạp, giám sát là điều cần thiết để cải thiện khả năng phục hồi khi gặp sự cố, cũng như dễ dàng hơn khi lên kế hoạch cài đặt và bảo trì.

Biểu đồ trên cho thấy một ví dụ về hệ thống giám sát. Server giám sát sẽ yêu cầu thông tin trạng thái từ các agent chạy trên ứng dụng & server database, và các agent trả lời bằng thông tin trạng thái của phần mềm cũng như phần cứng.

5 cách tối ưu cài đặt cho server ứng dụng thương mại (Phần 2)Các điểm cần lưu ý:

  • Giám sát dịch vụ nào: Tối thiểu, bạn nên giám sát cách dịch vụ cần thiết nhất để duy trì khả năng hoạt động của ứng dụng.
  • Giám sát tài nguyên nào: Các tài nguyên tối thiểu cần giám sát bao gồm CPU, bộ nhớ, lưu trữ và mạng, cũng như trạng thái tổng thể của sever.
  • Bảo lưu dữ liệu: Thời gian mà bạn lưu dữ liệu giám sát trước khi xóa. Điều này cùng với các dịch vụ và tài nguyên mà bạn chọn giám sát sẽ ảnh hưởng đến dung lượng bộ nhớ cần thiết mà hệ thống giám sát cần.
  • Quy luật khi phát hiện lỗi: Các ngưỡng và quy luật để xác định một dịch vụ hay tài nguyên còn hoạt động ổn hay không. Chẳng hạn một dịch vụ hay server có thể xem là bình thường khi nó vẫn chạy và đáp ứng các yêu cầu từ người dùng, dù trong khi một tài nguyên khác như ổ cứng đã gửi cảnh báo về việc đạt ngưỡng sử dụng tối đa có thể trong một khoảng thời gian nhất định.
  • Quy luật gửi thông báo: Các ngưỡng và quy luật để xác định có nên gửi thông báo hay không. Điều này giúp người quản lý tránh phải nhận quá nhiều thông báo không quan trọng, đôi khi khiến các thông báo quan trọng thực sự bị lãng quên.

 

5. Thu thập các log (nhật kí hoạt động)

Thu thập các log lại một chỗ giúp cho việc tìm kiếm và xem log dễ dàng hơn, bởi các log thường nằm rải rác trong các server riêng biệt. Nó cũng khiến người quản trị dễ xác định lỗi trên hệ thống nhiều server bằng cách so sánh tương quan các log và metric của từng server trong một khung thời gian cụ thể. Ngoài ra, thu thập log giúp đơn giản hóa việc lưu trữ bởi các log được trích xuất từ server ứng dụng ra một server độc lập chuyên dùng cho việc này.

Với môi trường thương mại, giống như giám sát hệ thống thì việc thu thập log rất phù hợp với những môi trường cloud server lớn và phức tạp. Nó cung cấp cái nhìn tổng quan về hệ thống và khiến việc sửa lỗi trở nên nhanh hơn. Trong biểu đồ trên, agent trung chuyển log được cài lên mỗi server và cấu hình để gửi các log của các ứng dụng quan trọng và database đến server thu thập log. Người quản trị có thể xem, lọc và tìm kiếm các log quan trọng từ các console riêng.

5 cách tối ưu cài đặt cho server ứng dụng thương mại (Phần 2)Các điểm cần lưu ý:

  • Log nào cần thu thập: Các log mà bạn lựa chọn để chuyển từ server riêng lẻ về server thu thập log. Các log quan trọng tại tất cả các server đều cần được thu thập.
  • Bảo lưu dữ liệu: Thời gian mà bạn lưu log trước khi xóa. Điều này cùng với các log mà bạn chọn thu thập sẽ ảnh hưởng đến dung lượng bộ nhớ cần thiết mà server thu thập log cần.
  • Lọc log: bộ lọc sẽ phân loại các log thô và xếp chúng vào dữ liệu log có cấu trúc. Việc này giúp cải thiện khả năng truy vấn, phân tích và lên biểu đồ dữ liệu theo các hiệu quả hơn.
  • Đồng bộ thời gian server: Đảm bảo rằng đồng hồ trên các server được đồng bộ và đặt theo cùng múi giờ, để timeline trên các log toàn hệ thống được chính xác.

 

6. Kết luận

Biểu đồ dưới đây kết hợp 5 thành phần mà chúng ta vừa đề cập:

5 cách tối ưu cài đặt cho server ứng dụng thương mại (Phần 2)Bây giờ bạn đã quen thuộc với các thành phần được dùng để hỗ trợ và cải thiện quá trình setup cloud server thương mại, hãy xem xét cách kết hợp chúng vào môi trường server của mình. Bài viết không bao gồm tất cả mọi thành phần có thể, nhưng sẽ cho bạn ý tưởng về việc bắt đầu như thế nào. Hãy nhớ thiết kế và triển khai môi trường server của mình dựa trên sự cân bằng giữa tài nguyên sẵn có và mục tiêu kinh doanh mà ứng dụng đặt ra.

Ngọc Quang (Theo DigitalOcean)