Bài viết thuộc series Azure
Giới thiệu
Trong bài này ta tìm hiểu về VM Scale Sets, một dịch vụ của Azure cho phép ta mở rộng VM.
Problem
Hãy xem qua vấn đề sau đây. Chúng ta được yêu cầu thiết kế hệ thống website cho một trang blog về ăn uống. Chúng ta sử dụng WordPress và cài đặt nó lên một máy ảo Azure (Azure VM). Ban đầu, mọi thứ đều ổn với số lượng người truy cập thấp. Tuy nhiên, khách hàng của chúng ta đã viết những bài blog được nhiều người yêu thích, dẫn đến sự tăng lượng người truy cập trang web. Chúng ta nhận thấy rằng máy ảo hiện tại không đủ khả năng chịu tải, do đó, chúng ta đã tăng tài nguyên của Azure VM lên gấp đôi. Qua đó, mọi thứ ổn định trong một thời gian.
Tuy nhiên, với sự gia tăng người dùng truy cập trang web, một máy ảo không còn đủ khả năng chịu đựng. Tuy nhiên, chúng ta không thể tăng tài nguyên của máy ảo quá cao vì sẽ tốn kém. Hơn nữa, sự tăng lượng người truy cập xảy ra vào các thời điểm khác nhau, và chúng ta không thể chờ cho đến khi khách hàng phản ánh về tốc độ trang web chậm thì mới tăng tài nguyên cho máy ảo và sau đó giảm đi.
Để giải quyết vấn đề này, chúng ta cần sử dụng tính năng Autoscaling (tự động mở rộng), khi lượng người truy cập tăng, máy ảo sẽ tự động tăng tài nguyên hoặc thêm một máy ảo khác, và khi lượng truy cập giảm, máy ảo sẽ tự động giảm tài nguyên. Dịch vụ hỗ trợ Autoscaling trên Azure được gọi là Azure Virtual Machine Scale Sets.
Virtual Machine Scale Sets
Scale Sets là dịch vụ cho phép ta quản lý, triển khai và chạy một nhóm Virtual Machine có thể tự động mở rộng. Tất cả VM trong Scale Sets có cấu hình giống nhau, với sự kết hợp của Scale Sets và Azure Image, khi hệ thống mở rộng con VM mới sẽ có tất cả cấu hình và ứng dụng giống con cũ. Ta không cần phải truy cập vào con mới để cấu hình cho ứng dụng chạy.
VM Scale Sets hỗ trợ mở rộng bằng cách thủ công hoặc tự động:
- Với cách thủ công, ta chỉ cần lên Azure Portal và điều chỉnh lại thuộc tính số lượng VM của Scale Sets, ví dụ từ 2 con lên 5 con
- Với cách tự động, VM sẽ mở rộng theo thông số ta cấu hình, có thể lựa chọn mở rộng theo chiều dọc (Vertical Scaling) hoặc mở rộng theo chiều ngang (Horizontal Scaling). Ví dụ mở rộng theo chiều ngang là khi CPU lên 50% thì mở rộng thêm một con VM, khi CPU giảm xuống thì xoá đi một con VM.
Một vài thông số dùng để mở rộng phổ biến:
- Percentage CPU
- Network traffic: inbound/outbound
- Disks read/write operations/sec
Benefits of Virtual Machine Scale Sets
Một vài lợi ích của Scale Sets:
- Hỗ trợ Spot VM: Spot VM là tính năng cho phép ta chạy VM với giá tiền rẻ hơn nhưng không ổn định. Ta có thể kết hợp chạy giữa VM bình thường và Spot VM với Scale Sets
- Sử dụng chung với Azure Load Balancer
- Độ khả dụng cao: khi ta chạy ứng dụng trên nhiều VM, khi một con VM bị sập thì người dùng vẫn có thể truy cập các con khác với sự hỗ trợ của Azure Load Balancer
- Có thể chạy lên tới 1000 VM trong một Scale Sets
Kết luận
Sử dụng VM Scale Sets giúp ta dễ dàng trong việc mở rộng ứng dụng. Bài tiếp theo ta sẽ làm thực hành về VM Scale Sets.
Nếu bài viết có gì sai hoặc cần cập nhật thì liên hệ Admin.
Tham gia nhóm chat của DevOps VN tại Telegram.
Kém tiếng Anh và cần nâng cao trình độ giao tiếp: Tại sao bạn học không hiệu quả?