High Availability & Scalability
New words
- passive/ˈpæs.ɪv/: Bị động
Scalability
- Scalability (Khả năng mở rộng) có nghĩa là một ứng dụng/hệ thống có thể xử lý tải lớn hơn bằng cách thích nghi.
- Có hai loại scalability:
- Vertical Scalability (mở rộng theo chiều dọc – scale-up)
- Horizontal Scalability (mở rộng theo chiều ngang – scale-out, hay còn gọi là elasticity)
- Scalability có liên quan nhưng khác với High Availability (tính sẵn sàng cao)
Vertical Scalability (Mở rộng theo chiều dọc)
- Vertical scalability nghĩa là tăng kích thước của instance (nâng cấp cấu hình máy).
- Ví dụ: Ứng dụng của bạn đang chạy trên instance t2.micro.
- Scale theo chiều dọc tức là chạy ứng dụng đó trên một instance lớn hơn, ví dụ: t2.large.
- Vertical scalability rất phổ biến với hệ thống không phân tán (non-distributed systems), ví dụ như cơ sở dữ liệu (database).
- Các dịch vụ như RDS, ElastiCache hỗ trợ scale theo chiều dọc.
- Tuy nhiên, có giới hạn phần cứng cho việc scale theo chiều dọc – bạn không thể nâng mãi CPU/RAM (gọi là hardware limit).
Horizontal Scalability (Mở rộng theo chiều ngang)
- Horizontal Scalability nghĩa là tăng số lượng instance / hệ thống để phục vụ cho ứng dụng của bạn.
- Scale theo chiều ngang ngụ ý hệ thống phân tán (distributed systems).
- Cách scale này rất phổ biến với các ứng dụng web hoặc các hệ thống hiện đại (modern apps).
- Nhờ có cloud (như Amazon EC2), việc scale theo chiều ngang trở nên dễ dàng.
High Availability (Độ sẵn sàng cao)
- High Availability (HA) thường đi đôi với Horizontal Scaling.
- HA nghĩa là chạy hệ thống/ứng dụng của bạn trên ít nhất 2 Data Centers (hay gọi là Availability Zones trong cloud như AWS).
- Mục tiêu của HA là đảm bảo hệ thống vẫn hoạt động khi một Data Center bị mất.
- Hai dạng High Availability:
- Passive HA:
- Ví dụ như RDS Multi-AZ.
- Có 1 instance chính (primary) và 1 bản sao (standby), standby không xử lý request cho đến khi failover xảy ra.
- Active HA:
- Áp dụng khi scale theo chiều ngang.
- Tất cả các instance đều hoạt động và xử lý request đồng thời (load balancing).
- Passive HA:
High Availability & Scalability cho EC2
Vertical Scaling (Scale up/down)
- Tăng kích thước của EC2 instance:
- Ví dụ scale up:
- Từ
t2.nano: 0.5GB RAM, 1 vCPU - Lên
u-12tb1.metal: 12.3TB RAM, 448 vCPUs
- Từ
👉 Thường dùng cho workload không phân tán như DB đơn, legacy system...
Horizontal Scaling (Scale out/in)
- Tăng số lượng EC2 instance để xử lý tải cao hơn:
- Sử dụng Auto Scaling Group (ASG)
- Sử dụng Load Balancer để phân phối request
⛳ Phù hợp với ứng dụng hiện đại, microservices, stateless app
High Availability (HA)
- Chạy cùng một ứng dụng trên nhiều Availability Zones (AZs) để đảm bảo uptime khi AZ bị sự cố:
- Auto Scaling Group Multi AZ: tự động phân phối instance qua nhiều AZ
- Load Balancer Multi AZ: chuyển hướng request đến instance còn hoạt động
Bạn thấy bài này thế nào?