paint-brush
Tại sao Cơ sở dữ liệu được hiển thị dưới dạng API?từ tác giả@datastax
1,468 lượt đọc
1,468 lượt đọc

Tại sao Cơ sở dữ liệu được hiển thị dưới dạng API?

từ tác giả DataStax6m2023/04/17
Read on Terminal Reader

dài quá đọc không nổi

Stargate là một dự án nguồn mở giúp đơn giản hóa cách các nhà phát triển có thể làm việc với API. Nó cung cấp một lớp trừu tượng che giấu sự phức tạp của cơ sở dữ liệu. API là một phần của cơ sở hạ tầng cung cấp quyền truy cập vào dữ liệu thông qua nhiều kiểu gRPC, REST và các kiểu khác.
featured image - Tại sao Cơ sở dữ liệu được hiển thị dưới dạng API?
DataStax HackerNoon profile picture

Một ứng dụng không có nhiều giá trị cho đến khi nó được đưa vào sản xuất. Đối với các nhà phát triển, việc đạt được điểm này một cách nhanh chóng có nghĩa là dễ dàng truy cập vào dữ liệu mà họ cần xây dựng mà không phải lo lắng về các chi tiết xoay vòng, quản lý và duy trì cơ sở dữ liệu.


API đã trở thành tiêu chuẩn trên thực tế để kết nối các ứng dụng với cơ sở dữ liệu, nhưng không phải lúc nào cũng như vậy. Ở đây chúng ta sẽ thảo luận về những gì đã thay đổi trong thế giới phần mềm để nâng cao tầm quan trọng của việc hiển thị cơ sở dữ liệu dưới dạng API. Chúng ta cũng sẽ thảo luận về Stargate, dự án nguồn mở giúp đơn giản hóa cách các nhà phát triển có thể làm việc với các API này (phiên bản mới nhất của Stargate, bao gồm các cải tiến về khả năng mở rộng và tính linh hoạt, đã được phát hành gần đây ).

Cách chúng tôi xây dựng phần mềm sử dụng cơ sở dữ liệu

Quản trị viên cơ sở dữ liệu (DBA) từng là người phụ trách các truy vấn, vì nó yêu cầu chuyên gia cơ sở dữ liệu thiết kế cách các nhà phát triển tương tác với dữ liệu. Nhưng cho đến gần đây, các nhà phát triển được kỳ vọng sẽ biết nhiều về cách tương tác với cơ sở dữ liệu, ngay cả khi họ không phải là chuyên gia về SQL, truy vấn hoặc mô hình dữ liệu.


Tôi là một nhà phát triển thành thạo vào những năm 1990, nhưng cơ sở dữ liệu khiến tôi sợ hãi. Phải mất nhiều năm tôi mới cảm thấy thoải mái khi làm việc với SQL. Chỉ đơn giản cung cấp một “trông giống như SQL” là không đủ. Lấy CQL (Ngôn ngữ truy vấn Cassandra), được phát triển để cung cấp ngôn ngữ truy vấn tương tự như SQL để giao tiếp với Apache Cassandra. Ý tưởng là cung cấp một sự trừu tượng để giao tiếp với Cassandra, giúp những người quen thuộc với cơ sở dữ liệu quan hệ dễ dàng thực hiện điều đó.


Nhưng trong thế giới mạng, chúng ta có các khái niệm mới về danh tính, quyền và bảo mật hoàn toàn tách biệt với ngôn ngữ truy vấn. Khái niệm trình điều khiển chỉ giao tiếp trên giao thức nhị phân không hoạt động tốt trên đám mây. HTTP là giao thức lớp ứng dụng nền tảng cho đám mây nhưng hầu hết các API dựa trên HTTP đều chậm. Tùy chọn độ trễ thấp, như gRPC, rất quan trọng đối với giao tiếp thời gian thực trong các hệ thống phân tán.

Cách phần mềm nói chuyện với phần mềm

Cách tiêu chuẩn mà máy khách hoặc máy chủ ứng dụng sử dụng để nói chuyện với cơ sở dữ liệu liên quan đến trình điều khiển chạy trong trung tâm dữ liệu. Bây giờ mọi thứ đang chạy trên đám mây, nhưng các nhà phát triển viết bằng nhiều ngôn ngữ. JavaScript , Python hoặc bất kỳ máy chủ nào trong số các khung khác nhau có thể được sử dụng, do đó, phương tiện mà phần mềm truy cập dữ liệu cần phải được trừu tượng hóa theo những cách khác với trình điều khiển cơ sở dữ liệu cổ điển — sử dụng API (JSON, gRPC, GraphQL hoặc Tài liệu) mà các nhà phát triển cảm thấy thoải mái với.


Cách hiện đại mà phần mềm giao tiếp với phần mềm là một API; đó là lớp trừu tượng che giấu sự phức tạp của cơ sở dữ liệu.

Bản chất của dữ liệu

Dữ liệu từng thống nhất hơn nhiều; nó nằm gọn trong các hàng và cột trong bảng cơ sở dữ liệu. Nhưng động lực của dữ liệu đã thay đổi. Dữ liệu di chuyển từ các biểu diễn trong bộ nhớ trở lại cơ sở dữ liệu một cách liền mạch mà không cần nhiều phần mềm can thiệp. Và chúng tôi đang xử lý các loại định dạng dữ liệu mới mạnh mẽ hơn nhiều so với các kiểu dữ liệu gốc mà mọi người đã từng xử lý — hoặc nửa tá hoặc hơn các loại dữ liệu mà SQL có thể xử lý.

API cơ sở dữ liệu

API là cách các nhà phát triển ngày nay làm việc với cơ sở dữ liệu. Dưới đây là tóm tắt lý do tại sao:

  • HTTP là giao thức mạng của đám mây. Nhiều nhà phát triển đã quen thuộc với các API web và việc sử dụng HTTP giúp triển khai ứng dụng đám mây dễ dàng hơn nhiều.
  • Không cần cài đặt và chạy cơ sở dữ liệu cục bộ. Việc cài đặt cơ sở dữ liệu cục bộ đòi hỏi nỗ lực và tạo ra một môi trường khác trong đó các sự cố phải được gỡ lỗi.

Cổng vào sự đơn giản, khả năng mở rộng và khả năng mở rộng

Cổng API dữ liệu là một phần của cơ sở hạ tầng phần mềm cung cấp quyền truy cập vào dữ liệu thông qua các API thuộc nhiều kiểu khác nhau bao gồm REST, gRPC và các kiểu khác. Cổng trừu tượng hóa các chi tiết lưu trữ và truy xuất dữ liệu bằng cách sử dụng một hoặc nhiều cửa hàng liên tục. Điều này cho phép các nhà phát triển ứng dụng tập trung vào việc viết các dịch vụ kinh doanh truy cập dữ liệu thông qua các API dễ sử dụng thay vì phải tìm hiểu những điều phức tạp của ngôn ngữ truy vấn cơ sở dữ liệu.


Stargate là cổng API dữ liệu nguồn mở nằm giữa ứng dụng và cơ sở dữ liệu mà ứng dụng cần truy vấn. Nó được giới thiệu lần đầu tiên vào tháng 9 năm 2020 và Apache Cassandra được chọn làm cơ sở dữ liệu đầu tiên một phần vì nó giải quyết được những thách thức khó khăn nhất về khả năng mở rộng và tính khả dụng trên thế giới.


Cổng API dữ liệu là một cách mạnh mẽ để cho phép các nhà phát triển của bạn làm việc trong các khuôn khổ và cấu trúc mà họ quen thuộc, mang lại nhiều sự đánh đổi giữa năng suất và hiệu suất. Stargate cung cấp sức mạnh của Cassandra bằng cách trình bày REST, Tài liệu và GraphQL dưới dạng các API đơn giản. Nó cũng cung cấp một bộ thư viện gRPC để thực hiện CQL qua gRPC như một giải pháp thay thế dễ dàng hơn, nhẹ hơn và thân thiện với đám mây hơn cho các trình điều khiển gốc cho CQL mà không làm giảm hiệu suất.


Năm nay, nhóm kỹ sư Stargate tại DataStax đã làm việc trên một bản cập nhật kiến trúc cho Stargate. Stargate v2, như cách gọi của chúng tôi, được phát hành vào tháng 10 năm 2022 . Dựa trên phản hồi từ cộng đồng nhà phát triển Stargate , trong Stargate v2, chúng tôi đã thực hiện một số cập nhật quan trọng giúp nhà phát triển sử dụng dễ dàng hơn và cộng đồng đóng góp cho dự án. Quan trọng nhất, API gRPC hiệu suất cao của Stargate v2 có thể cung cấp tốc độ tương đương với trình điều khiển cơ sở dữ liệu gốc. Điều này cho phép các nhà phát triển sử dụng các giao thức mạng thân thiện với đám mây như HTTP để kết nối các ứng dụng và cơ sở dữ liệu mà không làm giảm hiệu suất qua dây.

Mở rộng và thích ứng

Không có chiến lược từ trên xuống hoặc hương vị API nào của tháng từng tồn tại khi tiếp xúc với một nhóm lớn các nhà phát triển. Mục tiêu chính của Stargate v2 là cho phép cộng đồng thêm các dịch vụ API mới một cách nhanh chóng và dễ dàng bằng cách làm cho bản thân việc triển khai trở nên dễ hiểu, gỡ lỗi, nâng cao và mở rộng hơn.


Việc thêm một dịch vụ API mới giờ đây đơn giản hơn nhiều và mã nguồn cho các dịch vụ API REST, GraphQL và Tài liệu cung cấp cho các nhà phát triển mã ví dụ hướng dẫn cho biết dịch vụ API hoàn chỉnh sẽ trông như thế nào.


Tầng API phải là đa mô hình; các nhà phát triển muốn tìm thấy API ưa thích của họ có sẵn, thay vì buộc phải điều chỉnh công việc phát triển của họ sang một API khác. Và nếu API không khả dụng, thì cấp API sẽ có thể điều chỉnh.

Đám mây gốc

Ném mã trước cơ sở dữ liệu đã được thực hiện trong nhiều năm. Nhưng thực sự việc xây dựng một nền tảng có thể mở rộng quy mô với cơ sở dữ liệu của bạn — đồng thời có thể thích ứng và đáng tin cậy — là một điều gì đó mới mẻ. Nếu bạn đang sử dụng Cassandra, có lẽ bạn đã là một ứng dụng có tốc độ tăng trưởng cao — hoặc đang khao khát trở thành một ứng dụng như vậy. Vì vậy, mọi thứ nằm phía trước nó phải tạo điều kiện thuận lợi cho một môi trường tăng trưởng cao. Stargate bắt đầu hoạt động như một nhánh của mã điều phối viên Cassandra, do đó, nó thừa hưởng phần lớn độ tin cậy và tính khả dụng mà Cassandra nổi tiếng.


Cấp API phải có đầy đủ khả năng hoạt động ở quy mô lớn, do đó, một mục tiêu khác của Stargate v2 là làm cho nó thân thiện với đám mây hơn. Một số thay đổi để tạo điều kiện thuận lợi cho khả năng mở rộng của Stargate bao gồm:

  • Stargate hiện đã được đóng gói hoàn toàn và chạy trong các nhóm Kubernetes, giúp người vận hành có nhiều quyền kiểm soát hơn đối với cách khối lượng công việc có thể mở rộng quy mô.

  • Các dịch vụ API đã được chuyển ra khỏi nút Stargate nguyên khối thành các vi dịch vụ riêng biệt, điều này sẽ cho phép mỗi API được mở rộng một cách độc lập.

  • Các nút lưu trữ và nút điều phối có thể triển khai và mở rộng một cách độc lập, đồng thời giúp người vận hành có nhiều quyền kiểm soát hơn đối với cách khối lượng công việc có thể mở rộng quy mô.


Nếu một khối lượng công việc đòi hỏi nhiều truy vấn hoặc lưu trữ, thì khối lượng công việc đó có thể được điều chỉnh mà không cần dùng đến việc thay đổi quy mô toàn bộ cụm.

Phát triển với một cái gì đó quen thuộc

Các dịch vụ dữ liệu đám mây đã trở thành chủ đề thống trị trong thế giới công nghệ, vì vậy không có gì ngạc nhiên khi các nhà phát triển có xu hướng nghĩ về các khái niệm trừu tượng dữ liệu như JSON thay vì các thành ngữ duy nhất cho các cơ sở dữ liệu cụ thể. Stargate là kết quả của rất nhiều nỗ lực làm việc chăm chỉ để đáp ứng vị trí của các nhà phát triển, cho phép họ làm việc trong các khuôn khổ và cấu trúc mà họ quen thuộc.


Tìm hiểu thêm về Stargate tại đây .


của Ed Anuff.

Ed là giám đốc sản phẩm tại DataStax. Ông có hơn 25 năm kinh nghiệm với tư cách là nhà lãnh đạo sản phẩm và công nghệ tại các công ty như Google, Apigee, Six Apart, Vignette, Epicentric và Wired.



Cũng được xuất bản ở đây .


L O A D I N G
. . . comments & more!

About Author

DataStax HackerNoon profile picture
DataStax@datastax
DataStax is the real-time data company for building production GenAI applications.

chuyên mục

BÀI VIẾT NÀY CŨNG CÓ MẶT TẠI...