Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Redis

Khi ElastiCache Không Đáp Ứng Nhu Cầu: Nhận Diện Dấu Hiệu Hiệu Suất, Scale, Chi Phí

ElastiCache là dịch vụ Redis được quản lý phổ biến của Amazon. Nó được áp dụng rộng rãi hơn một thập kỷ qua khi doanh nghiệp nhận ra tiềm năng tuyệt vời của hai công nghệ mới nổi: AWS (Amazon Web Service) cho cloud computing và Redis như in-memory data store. Cả AWS và Redis đã thay đổi cách chúng ta dùng công nghệ, làm cho trải nghiệm số nhanh hơn, scalable hơn, và resilient hơn trở thành chuẩn mực.

Tổ chức cùng chuyển sang đám mây và tìm cách tăng tốc ứng dụng tự nhiên chuyển sang dịch vụ ElastiCache của AWS khi vượt quá Redis open source và tìm dịch vụ được quản lý. ElastiCache vẫn là lựa chọn vững chắc cho startup nhỏ xây dựng từ đầu trên AWS và tìm lợi ích Redis chi phí/hassle quản lý thấp.

Nhưng doanh nghiệp thành công sẽ lớn, và thập kỷ qua cho thấy khi business scale, họ cuối cùng vượt quá khả năng của ElastiCache. AWS ElastiCache là dịch vụ được quản lý xây dựng trên Redis open source và thiếu nhiều chức năng enterprise-grade cần thiết cho doanh nghiệp vận hành ở quy mô lớn.

Vậy làm sao biết bạn có đang vượt quá ElastiCache? Dưới đây là vài dấu hiệu then chốt:

  1. Cache của bạn giới hạn ở AWS nhưng ứng dụng và tech stack triển khai on-premises và đa đám mây (multi-cloud)
    a) Hybrid và multi-cloud là chuẩn mới, đặc biệt doanh nghiệp lớn. Thực tế, 92% doanh nghiệp có multi-cloud và 80% có hybrid cloud strategy. Doanh nghiệp đối mặt yêu cầu quy định và tech stack lớn, phức tạp. Doanh nghiệp cũng ngại rủi ro kinh doanh và công nghệ của vendor lock-in đơn lẻ. Cache của bạn nên đủ linh hoạt triển khai theo nhu cầu kinh doanh mà không giới hạn ở một đám mây đơn lẻ.

  2. Bạn triển khai AWS ElastiCache cho tốc độ sub-millisecond nhưng giờ ứng dụng lag khi scale toàn cầu
    a) Khi business scale, cần cache dữ liệu ở nhiều region để hỗ trợ đơn vị kinh doanh mới hoặc khách hàng khắp thế giới. ElastiCache không có khả năng đọc và ghi đồng thời vào nhiều instance Redis – nghĩa là bạn không thể giữ instance cache active gần tất cả user, dẫn đến latency khi dữ liệu di chuyển. Đây là vấn đề lớn cho business scale địa lý và enterprise với user base toàn cầu lớn.

  3. Khi dữ liệu lớn lên, chi phí ElastiCache tăng vọt
    a) Lưu trữ in-memory cực nhanh, nhưng cũng rất đắt. Chi phí chấp nhận được cho công ty nhỏ có thể nhanh chóng trở thành thiên văn khi công ty scale và dữ liệu tăng exponention. ElastiCache không cung cấp multi-tenancy, nghĩa là bạn không tận dụng hết cơ sở hạ tầng cache. Ngoài ra, data tiering trong ElastiCache không cung cấp resilience hay performance cần thiết cho enterprise cache dataset lớn và quan trọng.

Linh Hoạt Triển Khai (Deployment Flexibility)

Amazon ElastiCache Redis Enterprise
Khi ElastiCache Không Đáp Ứng Nhu Cầu: Nhận Diện Dấu Hiệu Hiệu Suất, Scale, Chi Phí Khi ElastiCache Không Đáp Ứng Nhu Cầu: Nhận Diện Dấu Hiệu Hiệu Suất, Scale, Chi Phí

Chỉ có sẵn như fully managed cache trong AWS.
Có sẵn như fully managed database và cache trong AWS, Azure, Google Cloud.

Hỗ trợ tech stack hiện đại với khả năng triển khai cache mang lại hiệu suất thời gian thực cho ứng dụng on-prem, hybrid, multi-cloud.

Quy Mô Toàn Cầu Và High Availability

ElastiCache Redis Enterprise
Active-Passive Active-Active Geo Distribution
ElastiCache cung cấp khả năng sao chép đơn hướng dữ liệu từ cụm cache nguồn đến cụm đích ở region khác (chỉ trong AWS) với replication active-passive (replica-of). Ngoài Active-Passive replication, khách hàng Redis Enterprise có thể thiết lập cache phân tán high resilience và scalable với replication hai chiều dùng Active-Active Geo Distribution. Active-Active cho phép triển khai unified cache xuyên region, cloud, hoặc on-prem.
Khi ElastiCache Không Đáp Ứng Nhu Cầu: Nhận Diện Dấu Hiệu Hiệu Suất, Scale, Chi Phí Khi ElastiCache Không Đáp Ứng Nhu Cầu: Nhận Diện Dấu Hiệu Hiệu Suất, Scale, Chi Phí
Hạn chế cách này: chỉ scale volume đọc, ghi vẫn phải làm tại cụm nguồn. Nghĩa là write latency tích lũy khi ghi đi đến cụm nguồn. Cũng nghĩa là ứng dụng write-heavy sẽ khó scale.

Cách ElastiCache cũng không cung cấp resilience thêm của sao chép dữ liệu xuyên nhiều cloud và on-prem. Cách replication ElastiCache cung cấp SLA 99.9% availability.
Active-Active cung cấp local latency bất kể số region geo-replicated (hoặc khoảng cách) cùng cung cấp conflict resolution liền mạch cho phép đọc và ghi đồng thời nhiều cache node.

Active-Active Geo Distribution của Redis Enterprise mang lại SLA dẫn đầu ngành 99.999% availability, tránh hơn 40 phút downtime/tháng so với ElastiCache.

Hiệu Quả Chi Phí (Cost-Effectiveness)

ElastiCache Redis Enterprise
Data Tiering Redis on Flash
ElastiCache gần đây giới thiệu dịch vụ tiered storage, giữ dữ liệu truy cập thường xuyên trong RAM, chuyển dữ liệu ít truy cập sang SSD.

Data tiering thường cần cho dataset lớn và đắt. Những dataset này critical cho business và cần data persistence, mà data tiering ElastiCache không hỗ trợ.
Data tiering ElastiCache không hỗ trợ mọi use-case, chỉ hỗ trợ eviction policy: volatile-lru, allkeys-lru, và no-eviction max memory policies.
Redis Enterprise cung cấp sản phẩm tiering trưởng thành đã chịu thử thách triển khai production demanding hơn 5 năm. Redis on Flash là dịch vụ Redis gốc cho data tiering, duy trì hiệu suất ứng dụng khi chuyển dữ liệu ít truy cập sang SSD rẻ hơn.

Redis on Flash cung cấp tiết kiệm chi phí data tiering đồng thời bảo vệ dữ liệu khách hàng với data persistence built-in. Cũng cung cấp replication nhanh hơn bằng cách chia dataset thành nhiều shard nhỏ chạy song song, giảm rủi ro mất dữ liệu. Ngược lại, ElastiCache giữ dữ liệu trong single large shard.

Redis on Flash cũng cho phép use-case thêm, hỗ trợ nhiều eviction policy hơn.
Khi ElastiCache Không Đáp Ứng Nhu Cầu: Nhận Diện Dấu Hiệu Hiệu Suất, Scale, Chi Phí
ElastiCache là hệ thống purely single-tenant. Theo phương pháp deploy Redis như container hoặc virtual appliance, cho phép management solution tạo instance Redis mới. Multi-tenancy đạt được ở layer server/infrastructure. Các giải pháp này định giá per Redis instance. Hiệu ứng kinh tế quy mô và phạm vi có lợi cho provider hơn bạn. Tìm hiểu thêm.

Khi ElastiCache Không Đáp Ứng Nhu Cầu: Nhận Diện Dấu Hiệu Hiệu Suất, Scale, Chi Phí
Redis Enterprise Cloud cung cấp multi-tenancy: một subscription Redis Enterprise Cloud phục vụ hàng trăm tenant. Mỗi tenant có endpoint database Redis riêng, hoàn toàn isolate từ database Redis khác. Bạn có thể host nhiều dedicated database trong một plan, mỗi cái chạy trong dedicated process và non-blocking. Khi triển khai Redis Enterprise trong datacenter, private cloud, hoặc VPC, bạn tận hưởng kinh tế quy mô của kiến trúc multi-tenant. Tìm hiểu thêm.

Tiết Kiệm Chi Phí Bổ Sung

Redis là cốt lõi business của chúng tôi – đó là chúng tôi là ai và chúng tôi làm gì. Vì vậy không ngạc nhiên chúng tôi dẫn đầu các dịch vụ Redis khác trong cung cấp cách đổi mới giữ chi phí thấp nhưng vẫn giữ hiệu suất và resilience. Một cách là khái niệm quorum (quorum concept). Hầu hết NoSQL database dùng ba replica đảm bảo high availability. Thứ nhất lưu dữ liệu, thứ hai failover, thứ ba tiebreaker quyết định ai đúng nếu primary và replica dữ liệu không nhất quán. Nhưng DRAM đắt, và duy trì ba replica dataset cực đắt. Redis Enterprise cung cấp hệ thống high available chỉ với hai replica, tiebreaker xác định ở level node bằng cách dùng số lẻ cache node trong cụm, tiết kiệm gần 33% ngay từ đầu. Tìm hiểu thêm.

Muốn Tìm Hiểu Thêm?

Xem datasheet Redis Enterprise vs. ElastiCache với so sánh kỹ thuật feature-by-feature đầy đủ và xem có đến lúc nâng cấp lên Redis Enterprise không.