Với hơn 34 năm kinh nghiệm kiến trúc và xây dựng ứng dụng SaaS, Lee Atchison là một nhà lãnh đạo tư duy được công nhận và chuyên gia về hiện đại hóa ứng dụng, di chuyển đám mây, và chuyển đổi DevOps. Bạn có thể đọc hoặc xem chuyên môn của ông hiển thị qua bất kỳ cuốn sách nào trong 3 cuốn sách, 70+ bài viết đã xuất bản, hoặc hàng trăm bài thuyết trình, lớp học, và hội thảo.
Bạn và đội ngũ của bạn đã phát triển một ứng dụng xứng đáng được mọi người chú ý. Tin đồn lan truyền và độ phổ biến tăng vọt, nhưng chi phí vận hành bắt đầu tăng vọt, ứng dụng liên tục crash, và một khách hàng làm điều không thể ngờ – họ tweet về tốc độ siêu chậm.
Khi cơ sở khách hàng tăng lên, làm thế nào để giữ chi phí không tăng? Bạn chào đón thách thức mở rộng quy mô, nhưng bạn cũng không thể hy sinh sự tăng trưởng cho tỷ lệ failover cao hơn và chi phí bảo trì tăng lên.
Một điều chắc chắn: Bạn cần một application cache (cache ứng dụng).
Cache là gì?
"Một cache là một thành phần lưu trữ dữ liệu có thể được truy cập nhanh hơn hoặc hiệu quả hơn so với nguồn dữ liệu gốc."
Lee Atchison, Caching at Scale With Redis.
Khi có yêu cầu lấy dữ liệu, một cache cung cấp một bản sao của dữ liệu đó theo thời gian thực. Và khi càng nhiều khách hàng bắt đầu sử dụng ứng dụng của bạn, bạn cần một kiến trúc ứng dụng nâng cao có thể xử lý những yêu cầu dữ liệu tăng lên đó mà không cần quay lại giữa kho dữ liệu chính của bạn.
Lee tóm gọn khá đơn giản: "Thế giới hiện đại đòi hỏi các ứng dụng hiện đại."
Không bí mật gì rằng khách hàng đòi hỏi hiệu suất tốt hơn và tốt hơn. Nếu ứng dụng của bạn không hoạt động đáp ứng kỳ vọng của khách hàng, những khách hàng đó sẽ rời bỏ và đổ bộ đến đối thủ cạnh tranh của bạn.
Và phía sau mọi ứng dụng nhanh, dễ sử dụng là một ton các bộ phận chuyển động. Như Lee nói, "Các ứng dụng ngày nay phải có khả năng xử lý lượng lớn dữ liệu, thực hiện các hoạt động phức tạp, duy trì nhiều mối quan hệ giữa các phần tử dữ liệu, và hoạt động trên các trạng thái riêng biệt và khác biệt giữa các giao dịch."
Đau đầu xảy ra trong các ứng dụng phức tạp, và một cache ở đó để giảm thiểu chúng.
Đọc Caching at Scale With Redis
Trong Caching at Scale With Redis, Lee giới thiệu cache là gì, tại sao và khi nào bạn cần nó, và các thực tiễn caching sẽ giúp ứng dụng của bạn đạt hiệu suất cao nhất có thể.
Khi một người dùng yêu cầu dữ liệu từ một dịch vụ, một hoạt động được thực hiện để lấy dữ liệu đó từ một kho, sau đó truyền thông tin đó trở lại người tiêu dùng. Tuy nhiên, Lee lưu ý rằng các hoạt động này có thể rất tốn tài nguyên và thời gian – đặc biệt nếu cùng một dữ liệu được truy xuất lại và lại.
"Thay vào đó, với một cache, lần đầu tiên hoạt động phức tạp được thực hiện, kết quả được trả về cho người tiêu dùng, và một bản sao của kết quả được lưu trữ trong cache. Lần tiếp theo dữ liệu được cần, thay vì thực hiện hoạt động phức tạp tất cả lại từ đầu, kết quả có thể được kéo trực tiếp từ cache và trả về cho người tiêu dùng nhanh hơn và sử dụng ít tài nguyên hơn."
Cache khắc phục gì – nhưng tại sao nó không hoàn hảo
Cache không phải là kho dữ liệu one-size-fits-all (phù hợp cho tất cả). Kiến trúc ứng dụng thay đổi khắp nơi, đặc biệt do kích thước ứng dụng hoặc thậm chí trường hợp sử dụng ngành. Tuy nhiên, Lee nói có bốn tính năng chính mà cache sẽ giúp cải thiện:
- Hiệu suất (Performance)
- Mở rộng quy mô (Scaling)
- Tối ưu hóa tài nguyên (Resource optimization)
- Sự tiện lợi và khả dụng (Convenience and availability)
Điều này không có nghĩa là triển khai cache sẽ tự động cung cấp những điều này cho bạn.
"Trong nhiều trường hợp, cache có thể không tăng giá trị, và trong một vài trường hợp, cache thực sự có thể làm giảm hiệu suất," Lee nói. Ông nêu ba vấn đề tiềm ẩn:
- Cache có thể khiến ứng dụng không thực thi các side effect (hiệu ứng phụ) mong muốn của các hoạt động được nhắm mục tiêu
- Dữ liệu không nhất quán trong cache
- Hiệu suất cache kém
Lee lưu ý rằng một số biến số nhất định phải đúng để cache hữu ích (xem trang 8 của e-book để biết danh sách các quy tắc). "Để một cache hiệu quả, bạn cần một sự hiểu rõ thực sự về phân phối thống kê của việc truy cập dữ liệu từ ứng dụng hoặc nguồn dữ liệu của bạn," Lee nói.
Trang bị cho mình playbook caching tối thượng
Bây giờ bạn biết bạn cần một cache, cuốn e-book miễn phí này là primer (sách nhập môn) duy nhất bạn cần để xây dựng và mở rộng cache của bạn với Redis.
Từ chính Lee: "Cuốn sách này mô tả cache là gì, tại sao nó là đáy tảng của các ứng dụng hiện đại quy mô lớn hiệu quả, và Redis có thể giúp bạn đáp ứng những nhu cầu caching khắt khe đó như thế nào."
Khi bạn đi sâu hơn vào e-book, Caching at Scale With Redis thảo luận về các loại chiến lược caching khác nhau và cung cấp giải thích thực tế về cách các chiến lược này có thể phù hợp cho bạn – đặc biệt nếu bạn đang ở đám mây.
"Mặc dù có nhiều phương pháp, quy trình, và kỹ thuật để làm cho một ứng dụng giữ tính sẵn sàng cao ở quy mô lớn, caching là một kỹ thuật trung tâm trong hầu như tất cả chúng," Lee nói.
Để biết thêm thông tin về e-book, truy cập trang của chúng tôi.