Kiến Thức Linux

Apisix là gì ? Những điều cần biết về Apisix

apache apisix logo

Apache APISIX là gì?

Bài viết này sẽ giới thiệu  Apache APISIX , một cổng API nguồn mở xử lý các tùy chọn giới hạn tốc độ và có toàn quyền kiểm soát quyền truy cập của lưu lượng truy cập bên ngoài vào các dịch vụ API phụ trợ nội bộ một cách dễ dàng. Chúng ta sẽ xem xét điều gì khiến nó nổi bật so với các dịch vụ cổng khác. Chúng ta cũng sẽ thảo luận về lời giải thích chi tiết về cách bắt đầu với cổng Apache APISIX.

Trước khi đi sâu vào chủ đề này, hãy nói về cổng API.

 API gateway là gì?

Như đã giải thích trong  bài viết trước , cổng API là điểm truy cập duy nhất cho tất cả khách hàng. Họ ngồi giữa khách hàng và các dịch vụ phụ trợ. Yêu cầu API từ khách hàng được ủy quyền/định tuyến đến dịch vụ thích hợp bằng cách gọi ra nhiều dịch vụ phụ trợ. Kết quả sau đó được tổng hợp và trả lại cho khách hàng.

Những khó khăn khi triển khai gateway

  • Hầu hết các Cổng API đều phù hợp để xử lý lưu lượng mạng nội bộ của doanh nghiệp và không thể chịu được hàng chục nghìn yêu cầu của khách hàng.
  • Một số cổng phụ thuộc vào cơ sở dữ liệu quan hệ, đây là thách thức để mở rộng quy mô một cách linh hoạt. Hầu hết các hệ thống này đều cũ và được phát triển trước khi xuất hiện microservice.

Apache APISIX là gì?

Apache APISIX là Dự án cấp cao nhất trên nền tảng Apache. Đây là cổng API gốc đám mây xử lý lưu lượng giao diện trên nhiều nền tảng cho Điện toán đám mây, FinTech, Bảo hiểm, Thị trường, Bất động sản, Bảo mật, Nhận dạng giọng nói và Du lịch, cùng các ngành khác.

Apache APISIX đơn giản là một gateway API năng động, thời gian thực, hiệu suất cao . So với các cổng API truyền thống, APISIX cung cấp các chức năng phù hợp để quản lý API trong hệ thống microservice. Điều này có thể thực hiện được bằng cách sử dụng định tuyến động, xác thực, khả năng quan sát, hot-reloading plugin, chuyển mã giao thức gRPC, v.v.

Các doanh nghiệp có thể nhanh chóng quản lý lưu lượng API và microservice bằng Apache APISIX, sử dụng các tính năng như xác thực giới hạn luồng, bảo mật ghi nhật ký và hỗ trợ các plugin tùy chỉnh phức tạp.

APISIX có bảng điều khiển quản trị nơi người dùng có thể dễ dàng quản lý và định cấu hình plugin, định tuyến và các thành phần khác. Nó có thể được tích hợp với nhiều thành phần giám sát và thống kê nguồn mở như  Prometheus ,  Apache Skywalk  và  Zipkin  để cải thiện hiệu suất.

Bảng điều khiển APISIX của Apache

Kiến trúc APISIX của Apache

Apache APISIX bao gồm ba phần:

  • Data Plane : để kiểm soát động lưu lượng yêu cầu và thực hiện xử lý và phân phối lưu lượng;
  • Control Plane:  để lưu trữ và đồng bộ hóa cấu hình dữ liệu cổng;
  • AI Plane(TODO):  để sắp xếp các plugin cũng như phân tích và xử lý lưu lượng yêu cầu theo thời gian thực.
Kiến trúc APISIX của Apache

Các thành phần của Apache APISIX

Plugin:  APISIX có hơn 70 plugin tích hợp được phát triển bằng  Lua , bao gồm xác thực danh tính, tỷ lệ giới hạn, yêu cầu giới hạn, bảo mật, nhật ký, khả năng quan sát, v.v. Các plugin này bao gồm tất cả các tính năng mà người dùng có thể gặp trong doanh nghiệp. Thông qua các plugin này, người dùng có thể biến APISIX thành nhiều gateway khác nhau theo yêu cầu của doanh nghiệp họ. Mặc dù lấy cảm hứng từ Kong, kiến ​​trúc và thiết kế của các plugin Apache APISIX hoàn toàn khác biệt. Nó hỗ trợ hot-reloading, do đó bạn không phải khởi động lại dịch vụ; nó cũng giúp giảm bớt sự khó khăn khi viết mã.

Route:  APISIX sử dụng  Lua-resty-radixtree thích ứng   để tập hợp tất cả các đặc điểm tốt của tuyến đường. Lõi đơn Lua-resty-radixtree có thể đạt tới hàng triệu trận đấu mỗi giây. Nó hỗ trợ tất cả các biến tích hợp của Nginx và các hàm tùy chỉnh.

Schema:  Apache APISIX sử dụng  jsonschema , cung cấp bản nháp lược đồ JSON 4, bản nháp 6, bản nháp bảy trình xác thực cho Lua/LuaJIT. JsonSchema này đảm nhiệm việc mô tả API và tạo điều kiện cho sự hợp tác giữa các cá nhân và giao diện người dùng. Tiêu chuẩn xác minh này hầu như bao gồm các ngôn ngữ chính thống như C, Java, JS, v.v. Mặc dù APISIX sử dụng ngữ nghĩa Lược đồ JSON nhưng nó không bị ràng buộc cũng như không giới hạn đối với JSON.

Storage:  APISIX chỉ dựa vào etcd; do đó, APISIX được thiết kế để có tính sẵn sàng cao. Nó sử dụng  Lua-resty-etcd  để lấy cấu hình từ, etcd.

APISIX khác với các dịch vụ Gateway khác như thế nào?

  1. Nó bao gồm tất cả các tính năng của Nginx.
  2. Hiệu suất siêu cao: Hiệu suất cao là ưu điểm chính của Apache APISIX.
  3. Tính năng quan trọng nhất của Apache APISIX là nó hoàn toàn động, bao gồm định tuyến, chứng chỉ SSL, plugin, v.v.
  4. Các plugin được cập nhật nóng. Bên trong Apache APISIX, các plugin được xây dựng tương tự như những viên gạch Lego. Bạn có thể dễ dàng sửa đổi, xóa hoặc thêm plugin mà không cần khởi động lại dịch vụ. Điều này giúp việc kiểm soát khối lượng công việc bên ngoài trong APISIX trở nên dễ dàng và linh hoạt hơn rất nhiều. Apache APISIX cũng cung cấp các plugin tùy chỉnh để xử lý việc xử lý tùy chỉnh ở lớp biên của doanh nghiệp.
  5. APISIX được hỗ trợ bởi hai kiến ​​trúc quan trọng là X86 và ARM64. Nó cũng hỗ trợ  các môi trường chạy OpenResty  và  Tengine  & chạy trên kim loại trần đến nhiều máy chủ khác nhau trên các đám mây công cộng.
  6. APISIX cung cấp hỗ trợ đa giao thức và đa nền tảng như chuyển mã HTTP(s), TCP, UDP, HTTP sang gRPC, Websocket, gRPC, Apache Dubbo và proxy MQTT
  7. Hỗ trợ kiểm soát phiên bản. Trong khi sử dụng APISIX, nếu phiên bản mới phát hành gặp sự cố, bạn có thể dễ dàng sao lưu phiên bản cũ mà không gặp phải bất kỳ hạn chế nào trong quá trình này.
  8. Không tin cậy dựa trên danh tính. Có thể xác thực danh tính bên ngoài với Tương lai mới được tích hợp. Tại thời điểm này, việc đạt được mức độ tin cậy bằng 0 và sử dụng các nhà cung cấp xác thực danh tính bên ngoài để truy cập tất cả các dịch vụ là điều đơn giản. Sau khi triển khai một vài tham số, chúng ta có thể thêm chức năng xác thực danh tính vào API.
  9. Nguồn mở: Apache APISIX có nguồn mở vào ngày 6 tháng 6 năm 2019. Kể từ đó đã đạt được hơn 8700 sao và khoảng 287 người đóng góp trên GitHub. Đây là cộng đồng các nhà phát triển với hơn 2000 thành viên. Bạn có thể tham gia cộng đồng thông qua  Slack  hoặc  danh sách gửi thư .
Kong VS APISIX

Bắt đầu?

Apache APISIX có một  bảng điều khiển  giúp quản trị viên dễ dàng xác định các tuyến đường, dịch vụ ngược dòng và phụ trợ. Để bắt đầu với Apache APISIX, đây là video hướng dẫn Bắt đầu nhanh bao gồm:

  • Cách  cài đặt Apache APISIX  qua Docker.
  • Tạo  RouteUpstream  cho Cổng API của bạn với sự trợ giúp của  API quản trị .
  • Liên kết tuyến đường với Upstream.
  • Xác minh kết quả thông qua API quản trị của Apache APISIX.

Đăng ký liền tay Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !

Add Comment

Click here to post a comment

Đăng ký liền tay
Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !