Kong API Gateway

 

I. Giới thiệu Kong & API Gateway

Kong API Gateway, một giải pháp quản lý API tiên tiến và được sử dụng rộng rãi trên toàn cầu. Rất vui vì được tham dự chương trình ngày hôm nay. Kong được xây dựng trên nền tảng nginx, cung cấp tính năng tiên tiến như plugin, middleware và API để tùy chỉnh và mở rộng chức năng của nó.

Kong là một API Gateway và Management Layer, cho phép các nhà phát triển, quản trị viên hệ thống và các nhà quản lý API quản lý và điều hướng các yêu cầu API. API Gateway đóng vai trò như một cổng vào và ra cho các ứng dụng, quản lý traffic và bảo mật thông tin truyền tải giữa chúng.

Kong cũng có thể tích hợp với các công nghệ phát triển ứng dụng khác như microservices, containers và các công nghệ đám mây khác để đáp ứng nhu cầu của khách hàng. Chúng tôi tin rằng Kong có thể giúp các tổ chức đạt được mục tiêu kinh doanh của mình một cách nhanh chóng và hiệu quả.

Một số tính năng quan trọng nhất của nó dưới đây:

  1. Authentication and Authorization: Cung cấp tính năng xác thực và phân quyền truy cập vào API, giúp bảo mật dữ liệu và ngăn chặn truy cập trái phép.
  2. API Versioning: Hỗ trợ việc quản lý và theo dõi các phiên bản API khác nhau, đảm bảo tính tương thích và khả năng sử dụng của các ứng dụng.
  3. Request and Response Transformation: Cho phép thay đổi định dạng và cấu trúc dữ liệu của các yêu cầu và phản hồi API, giúp tối ưu hóa hiệu suất và đáp ứng nhu cầu của các ứng dụng khác nhau.
  4. Load Balancing: Phân phối traffic đến các ứng dụng khác nhau một cách công bằng và hiệu quả, đảm bảo tính khả dụng của hệ thống và tối ưu hóa hiệu suất.
  5. Rate Limiting: Giới hạn số lượng yêu cầu truy cập API trong một khoảng thời gian nhất định, giúp bảo vệ API khỏi các cuộc tấn công DoS và tăng tính ổn định của hệ thống.
  6. Caching: Lưu trữ dữ liệu tạm thời để giảm thiểu thời gian truy cập và tăng tốc độ xử lý, giúp tối ưu hóa hiệu suất của hệ thống.
  7. API Routing: Định tuyến các yêu cầu truy cập API đến các ứng dụng khác nhau dựa trên các quy tắc định nghĩa trước đó, giúp quản lý và phân phối traffic một cách hiệu quả.
  8. Monitoring and Analytics: Giám sát và thu thập dữ liệu hoạt động của API, giúp quản lý và phân tích hiệu suất của hệ thống và các ứng dụng.
  9. API Documentation: Cung cấp tài liệu và hướng dẫn sử dụng cho các API, giúp người dùng dễ dàng hiểu và sử dụng API một cách chính xác và hiệu quả.

Kong là mã nguồn mở, có một hệ sinh thái đa dạng và phong phú của các tính năng và công nghệ hỗ trợ, bao gồm các tính năng của các nhà cung cấp đám mây hàng đầu như Kubernetes, AWS, Google Cloud và Azure. Điều này giúp Kong có thể tích hợp dễ dàng với các hệ thống và ứng dụng hiện có của khách hàng.

Ngoài ra, Kong có thể được cài đặt trên nhiều hệ thống khác nhau. Từ máy chủ vật lý, đến máy ảo và môi trường Kubernetes trên đám mây, Kong là API Gateway hiệu suất cao, có yêu cầu thấp.

 So sánh với một số API Gateway khác:

II. Cấu trúc của Kong

 Để hiểu rõ hơn về cấu trúc của Kong, bạn có thể tham khảo thông tin dưới đây:

  • Database: Để để quản lý cấu hình và giám sát API, Kong cung cấp cho người dùng 2 sự lựa chọn về CSDLCassandra hoặc PostgreSQL. Nó có thể chạy trên các máy chủ Docker hoặc Kubernetes. Lời khuyên của tôi là tùy thuộc vào nhu cầu sử dụng mà ta chọn CSDL phù hợp. Trong trường hợp bạn muốn sử dụng Kong với một lượng lớn dữ liệu hoặc một số yêu cầu về tính khả dụng cao, Cassandra có thể là sự lựa chọn tốt. Cassandra được thiết kế để có khả năng mở rộng tuyến tính, đồng thời cũng có thể xử lý các yêu cầu đọc/ghi với tốc độ rất cao. Vì vậy, nó có thể giúp bạn xử lý các yêu cầu API với hiệu suất cao. Tuy nhiên, nếu bạn có các yêu cầu về tính toàn vẹn dữ liệu hoặc đang muốn sử dụng các tính năng cơ sở dữ liệu phức tạp hơn, PostgreSQL có thể là sự lựa chọn tốt. PostgreSQL cung cấp các tính năng đáng tin cậy cho các ứng dụng có tính khả dụng cao, đồng thời hỗ trợ các yêu cầu phức tạp như định dạng dữ liệu JSON.
  • Plugins: Quản lý và bảo mật API, bao gồm xác thực, ủy quyền, giới hạn tốc độ, bảo vệ DDOS và ghi nhật ký,... Người dùng có thể tạo plugin của riêng mình để tùy chỉnh hành vi của Kong.
  • Proxy Server: giúp chuyển tiếp các yêu cầu từ máy khách đến phụ trợ API và trả lại kết quả cho máy khách. Máy chủ proxy của Kong được xây dựng trên Nginx.
  • Admin API: cung cấp giao diện RESTful để quản trị và định cấu hình Dịch vụ, Tuyến đường, Plugin và Người tiêu dùng. Tất cả các tác vụ bạn có thể thực hiện đối với Cổng có thể được tự động hóa bằng API quản trị Kong.

 

III. Kong Admin API

Kong Admin API cung cấp một cách tiếp cận cho phép người dùng tương tác với Kong qua API RESTful.
Với Kong Admin API, người dùng có thể thực hiện các tác vụ như quản lý các cổng API, khai báo và quản lý các plugin, quản lý quyền truy cập và các chính sách bảo mật, quản lý các tài khoản người dùng và đối tác, và nhiều hơn nữa.

Dưới đây là một số ví dụ về những việc mà Kong Admin API có thể thực hiện:

  • Quản lý cổng API: Người dùng có thể sử dụng Kong Admin API để thêm, sửa đổi hoặc xóa cổng API, hoặc xem danh sách các cổng API hiện có.
  • Quản lý plugin: Người dùng có thể quản lý các plugin đang hoạt động trên Kong, bao gồm việc kích hoạt hoặc tắt các plugin, hoặc cấu hình các plugin để phù hợp với nhu cầu của họ.
  • Quản lý quyền truy cập và các chính sách bảo mật: Người dùng có thể sử dụng Kong Admin API để quản lý quyền truy cập và các chính sách bảo mật của hệ thống, bao gồm thiết lập quyền truy cập cho các người dùng và vai trò, và cấu hình các chính sách bảo mật như giới hạn tốc độ và xác thực.
  • Quản lý tài khoản người dùng và đối tác: Người dùng có thể sử dụng Kong Admin API để quản lý tài khoản người dùng và đối tác, bao gồm thêm mới, sửa đổi hoặc xóa tài khoản, hoặc xem danh sách các tài khoản hiện có.
  • Quản lý phiên bản API: Người dùng có thể sử dụng Kong Admin API để quản lý nhiều phiên bản API và xem các phiên bản API đã được đăng ký trên hệ thống.
  • Theo dõi lưu lượng API: Người dùng có thể sử dụng Kong Admin API để theo dõi lưu lượng API và các thống kê, bao gồm thông tin về số lượng yêu cầu API đã xử lý, lưu lượng dữ liệu được truyền tải và thời gian xử lý của API.

Một số ví dụ về các lệnh cơ bản của Kong Admin API:

Lệnh tạo một service:

curl -i -X POST --url http://localhost:8001/services/ --data 'name=my-service' --data 'url=http://my-service.com'

Lệnh tạo một route:

curl -i -X POST --url http://localhost:8001/routes/ --data 'hosts[]=example.com' --data 'paths[]=/mypath' --data 'service.id=INSERT_YOUR_SERVICE_ID_HERE'

Lệnh thêm plugin:

curl -i -X POST --url http://localhost:8001/routes/INSERT_YOUR_ROUTE_ID_HERE/plugins --data 'name=key-auth'

Lệnh lấy thông tin về một plugin:

curl -i http://localhost:8001/plugins/INSERT_YOUR_PLUGIN_ID_HERE

Hy vọng những ví dụ trên sẽ giúp bạn hiểu rõ hơn về cách sử dụng Kong Admin API, để đầy đủ hơn, bạn nên đọc document do Kong cung cấp tại đây.

IV. Konga

Konga là một công cụ quản lý GUI mã nguồn mở cho Kong. Nó cung cấp cho người dùng một giao diện người dùng đồ họa để quản lý các API, plugin, route và service trong Kong. Konga cũng cung cấp cho người dùng một số tính năng quản lý như tạo, sửa đổi và xóa các API, route và plugin, và cũng cung cấp cho người dùng một số báo cáo và thống kê liên quan đến lưu lượng API.

Konga được phát triển trên nền tảng Node.js và sử dụng React.js để xây dựng giao diện người dùng. Nó cũng cung cấp một API RESTful để quản lý các tài nguyên của Kong, cho phép người dùng tương tác với Kong thông qua một giao diện người dùng đơn giản.

Konga giúp cho việc quản lý Kong trở nên dễ dàng và thuận tiện hơn, đặc biệt đối với những người không quen thuộc với việc sử dụng command line để thực hiện các thao tác quản lý.

 

Comments

Popular Posts