Bạn có thể thắc mắc: Tại sao một công ty cơ sở dữ liệu như Redis lại nói về kiến trúc Databaseless (DBLess)? Và nó là gì? Đó là điều tự nhiên, nhưng trước khi đi vào chi tiết, hãy nhìn vào cách tư duy mới đằng sau kiến trúc hoàn toàn mới này.
Để làm điều đó, tôi muốn rẽ nhánh nhanh và nói về một cái gì đó gọi là tư duy First Principles (nguyên lý đầu tiên). Nó buộc bạn phải tự suy nghĩ và không chỉ theo truyền thống, mà đặt câu hỏi mọi thứ.
Bản chất của First Principles là trừ khi bạn đang nhìn vào một định luật tự nhiên, như định luật trọng lực, mọi hệ thống hoặc khái niệm đều do con người tạo ra và có thể có sự thiếu hiệu quả. Thêm vào đó, thời gian hoặc đổi mới công nghệ có thể đã chứng minh khái niệm đó đã lỗi thời. Điều này có nghĩa là bạn nên thường xuyên đặt câu hỏi hệ thống hoặc khái niệm truyền thống và xem liệu bạn có thể xây dựng thứ gì đó tốt hơn không.
Để tìm ra những thiếu hiệu quả đó, bạn phải lấy một cách tiếp cận hệ thống và khoa học chia nhỏ chúng thành các mảnh nhỏ hơn để đến được những chân lý cơ bản. Sau đó, xem liệu thời gian hoặc phát minh công nghệ mới đã làm cho bất kỳ mảnh nào trong đó trở nên lỗi thời. Nếu có, dường như bạn có cơ hội xây dựng một hệ thống mới và tốt hơn.
Cơ bản, dù con người có biết hay không, hầu hết các thay đổi xã hội, kỹ thuật, và kinh tế đã xảy ra vì những người tư duy theo First Principles và thách thức truyền thống.
Trong video trên, Elon Musk giải thích cách ông nhìn vào nguyên liệu thô của pin và giảm chi phí từ $700 xuống $70.
Hãy lấy một ví dụ khác về tư duy first principle vì nó dễ giải thích hơn: Xe xăng vs Xe điện.
Xe xăng vs Xe điện
Chúng ta đều biết rằng bạn có thể dùng pin điện để chạy xe.
Nhưng trong khi một xe xăng, có pin, nó không được dùng để chạy xe. Nó dùng pin để khởi động động cơ, điều hòa, hệ thống âm thanh, đèn, cảm biến, khóa, v.v., nhưng không để chạy xe. Thay vào đó, nó dựa vào động cơ đốt trong (ICE) để chạy xe.
Thực ra, xe ICE hiệu quả rất thấp. Chỉ 16% đến 25% công suất được tạo ra thực sự truyền đến bánh xe. Mặt khác, xe điện cung cấp khoảng 90% công suất đến bánh xe! Xe điện cũng có lợi thế lớn về môi trường, chi phí sửa chữa, v.v.
Nếu bạn nhìn từ góc độ First Principles, dù hầu hết xe được sản xuất ngay hôm nay vẫn là xe xăng, chân lý cơ bản là chúng sử dụng một hệ thống thiếu hiệu quả.
Bây giờ nếu bạn nhìn vào xe điện, nó loại bỏ sự thiếu hiệu quả đó để xây dựng một loại xe mới. Trong trường hợp này, nó đơn giản loại bỏ động cơ phức tạp và thiếu hiệu quả cao và thay thế bằng một pin lớn và động cơ để quay trực tiếp bánh xe.
Vì vậy bạn có thể thấy tư duy First Principles dẫn đến việc xác định thiếu hiệu quả và tạo ra một hệ thống mới, tốt hơn.
Bây giờ nhìn vào những ý tưởng này, nếu bạn bắt đầu một công ty xe hơi mới, bạn sẽ xây dựng xe xăng hay xe điện?
Hãy chuyển sang thế giới cơ sở dữ liệu để xem liệu chúng ta có thể áp dụng tư duy First Principles tương tự cho lĩnh vực đó không.
Kiến trúc truyền thống vs Kiến trúc DBLess
Hãy nhìn vào kiến trúc truyền thống trước.
Trong kiến trúc truyền thống, bạn có một cơ sở dữ liệu chính (Postgres, MongoDB, v.v.) và một cơ sở dữ liệu thứ cấp hoặc cache (ví dụ: Redis hoặc Memcached). Cơ sở dữ liệu chính được dùng để lưu trữ tất cả dữ liệu và hỗ trợ các hoạt động CRUD. Cơ sở dữ liệu cache được dùng cho caching, lưu trữ session, rate-limiting, IP-whitelisting, Pub/Sub, hàng đợi, và nhiều điều khác.
Nếu bạn suy nghĩ, ngay cả khi có cache-hit, chúng ta cũng đang dùng cơ sở dữ liệu thứ cấp cho một phần hoạt động CRUD. Và chúng ta vẫn chưa tận dụng nó hoàn toàn như một cơ sở dữ liệu chính.
Điều này nhắc bạn về vấn đề với xe xăng? Giống như chúng mang pin để cung cấp năng lượng cho nhiều thứ trừ việc chạy xe, kiến trúc truyền thống dùng những thứ như Redis cho mọi thứ trừ làm DB chính.
Bạn thấy sự tương đồng?
Điều gì xảy ra nếu chúng ta dùng tư duy First Principles để làm những gì xe điện đã làm? Tương tự như xe điện loại bỏ động cơ, nếu chúng ta loại bỏ cơ sở dữ liệu chính chậm và thiếu hiệu quả và đơn giản dùng cache DB làm cơ sở dữ liệu chính?
Xin chào kiến trúc Databaseless (DBLess).
Kiến trúc Databaseless (DBLess):
Trong kiến trúc này, bạn loại bỏ cơ sở dữ liệu chính, do đó tên là DBLess. Thay vào đó, bạn dùng cơ sở dữ liệu cache thứ cấp trước đây làm cơ sở dữ liệu chính mới.
Hãy tưởng tượng chúng ta bắt đầu dùng Redis hoặc các cơ sở dữ liệu cache tương tự như một cơ sở dữ liệu chính và loại bỏ hoàn toàn cơ sở dữ liệu chính (như Postgres, MySQL, MongoDB, v.v.).
Lưu ý quan trọng: Đây chỉ là một thảo luận kiến trúc. Kiến trúc DBLess không phải là kiến trúc độc quyền bị giới hạn bởi Redis hoặc Redis Enterprise, và nó sẽ hoạt động với bất kỳ hệ thống giống Redis nào. Cũng nhớ rằng Redis là dự án OSS, vì vậy bạn có thể tự xây dựng điều này hoặc trên bất kỳ nhà cung cấp đám mây lưu trữ Redis nào.
Có ai đang dùng kiến trúc này không?
Có, chắc chắn rồi. Như bạn tưởng tượng, chúng tôi làm việc với hàng nghìn khách hàng hàng ngày. Và dù Redis vẫn chủ yếu được dùng như cơ sở dữ liệu thứ cấp, chúng tôi đã bắt đầu thấy kiến trúc DBLess mới này xuất hiện trong vài năm qua. Nó bắt đầu có đà đi hơn khi Redis trở nên giàu tính năng, mạnh mẽ hơn, và khi nhiều người tìm thấy thành công. Nhiều người thậm chí không phải khách hàng của chúng tôi, như Request Metrics, đã xây dựng toàn bộ startup của họ trên kiến trúc này và thấy nó thành công không ngờ.
Bây giờ bạn biết nó thực tế, hãy xem điều gì làm cho nó trở nên khả thi.
Về mặt kỹ thuật, nó so sánh với cơ sở dữ liệu chính truyền thống như thế nào?
Hãy dùng Redis Enterprise làm ví dụ và so sánh với các cơ sở dữ liệu chính truyền thống.
Như bạn thấy, câu trả lời ngắn gọn là nó so sánh rất tốt và, thực tế, thậm chí có thể tốt hơn một số cơ sở dữ liệu chính truyền thống.
Lưu ý lại, bạn có thể dùng kiến trúc này bằng cách đơn giản dùng Redis OSS hoặc các đối thủ Redis khác. Bạn chỉ cần tạo một bảng so sánh tương tự để xem nó hoạt động tốt như thế nào.
Nhưng Redis có thực sự làm được điều này không? Tôi nghĩ nó chỉ là cache?
Bạn đúng. Nó bắt đầu như một kho cache khoảng một thập kỷ trước và vẫn tuyệt vời cho mục đích đó.
Tuy nhiên, Redis và Redis Enterprise đã mở rộng đáng kể qua nhiều năm bằng cách kết hợp hầu như tất cả các tính năng của cơ sở dữ liệu truyền thống – và bằng cách có một hệ sinh thái module chạy bản địa với Redis cốt lõi.
Ví dụ RedisJSON (nhanh hơn 10x so với dẫn đầu thị trường). Bạn có thể dùng nó và thực chất có một cơ sở dữ liệu dạng tài liệu thời gian thực, hoặc dùng module RediSearch (nhanh 4x đến 100x) và triển khai tìm kiếm toàn văn thời gian thực như Elastic Search hoặc Algolia.
Và bạn có thể dùng bất kỳ module nào trong số đó như một phần của Redis OSS và tự lưu trữ nó.
Đây có thực sự là tương lai không?
Chúng tôi tin mạnh mẽ kiến trúc này là tương lai theo cùng ý nghĩa xe điện là tương lai. Và dù xe điện chỉ chiếm dưới 1% tất cả xe, chúng là tương lai. Chúng tôi nghĩ đây chỉ là một sự tiến hóa tự nhiên của công nghệ. Nhìn thấy thành công của nhiều khách hàng, chúng tôi nghĩ càng nhiều người biết về nó, càng nhiều người sẽ thử và áp dụng.
Ý nghĩa của cái tên?
Nó được gọi là DBLess vì chúng ta loại bỏ cơ sở dữ liệu chính và chúng tôi nghĩ đó là một cái tên vui vẻ, kỳ lạ theo phong cách "stateless," "serverless," "NoSQL," và "No Software."
Làm thế nào để bắt đầu?
Nếu bạn là một trong hàng trăm nghìn người dùng Redis, bạn may mắn – bạn có thể làm một proof-of-concept (chứng minh khái niệm) nhanh hôm nay! Chúng tôi không yêu cầu bạn thêm cái gì mới, mà thay vào đó loại bỏ cái gì đó thiếu hiệu quả.
Và đây là cách làm.
Nếu bạn đang xây dựng một hệ thống mới hoặc một tính năng mới, thì nó đơn giản: chỉ cần bắt đầu dùng kiến trúc này – hoặc ít nhất làm một Proof-of-Concept và xem nó có hoạt động cho bạn không.
Nếu bạn đã có một cơ sở dữ liệu chính, thì hãy làm những gì nhiều khách hàng của chúng tôi làm và dùng cách tiếp cận lai (hybrid). Họ tiếp tục dùng kiến trúc truyền thống, nhưng di chuyển các phần của sản phẩm sang kiến trúc mới hơn, như những nơi họ đã phụ thuộc nhiều vào Redis hoặc các tính năng mới hơn. Và từ từ nhưng chắc chắn, họ di chuyển tất cả các tính năng cho đến khi hoàn toàn di chuyển xong.
Tóm Tắt: Hãy Trở Thành Người Tư Duy First Principles
Chúng tôi yêu cầu bạn trở thành người tư duy First Principles. Chỉ vì một cái gì đó truyền thống được dùng, không có nghĩa là nó hoàn hảo và bạn nên theo nó mù quáng. Chúng tôi yêu cầu bạn đặt câu hỏi cho tư duy truyền thống, kiểm tra nó một cách phản biện, và thử các phương án thay thế. Và khi bạn làm vậy, bạn có thể vừa phát minh ra thứ gì đó hữu ích cho bản thân và người khác.
Kiến trúc DBLess cung cấp một phương án thay thế cho tư duy truyền thống. Thay vì tự hỏi nó có hoạt động hay không, hãy thử một Proof-of-Concept. Nó có thể khiến bạn ngạc nhiên!
Tham Khảo
- Elon Musk về First Principles