Xin chào quý vị, tôi là Nobito.
Chào mừng quý vị đến với chương trình "VNLab - Kết nối đam mê" của đài Thông tấn xã (TTX) VNLab!
Hôm nay chúng tôi rất vinh dự được đón tiếp một khách mời đặc biệt, anh Kong API Gateway, một trong những công nghệ mới nhất trong lĩnh vực quản lý API.
I. Giới thiệu Kong & API Gateway
Nobito: Chào anh Kong, không biết anh có phải là một trong những công nghệ mới nhất trong lĩnh vực quản lý API đúng không? Liệu anh có thể giới thiệu về bản thân và công nghệ của anh cho khán giả của chúng tôi được không?
Kong: Chào mọi người, tôi là 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. Tôi đượ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ả.
Nobito: Nói về API Gateway, Anh có thể liệt kê một vài tính năng hữu ích mà API Gateway mang lại được không?
Kong: Dĩ nhiên, để giúp các bạn hiểu rõ hơn về các tính năng của API Gateway, tôi sẽ liệt kê một số tính năng quan trọng nhất của nó dưới đây:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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ả.
- 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.
- 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ả.
Nobito: Ồ, thật là nhiều tính năng hữu ích, cảm ơn anh.
Có một câu hỏi tôi đang rất muốn hỏi anh từ lâu. Theo tôi được biết, hiện nay trên thế giới có rất nhiều API Gateway, ví dụ như Apigee, WSO2, Express gateway, Google Cloud Api Gateway, Tyk, Amazon API Gateway, Azure Api Gateway,... Nhưng họ lại không được thành công giống như anh, anh có thể cho tôi biết nguyên nhân nào dẫn đến thành công của anh ngày hôm nay được không?
Kong: Cảm ơn bạn đã đặt câu hỏi thú vị này. Thực sự, thành công của Kong không đơn giản là do một yếu tố duy nhất mà là sự kết hợp của nhiều yếu tố. Ba yếu tố quan trọng nhất đó chinh là:
Thứ nhất: Kong có một cộng đồng đông đảo và tích cực hỗ trợ phát triển sản phẩm. Nhờ đó, Kong được cộng đồng đánh giá cao về tính linh hoạt, khả năng tùy chỉnh và khả năng mở rộng.
Thứ hai: Kong có một kiến trúc mạnh mẽ và tối ưu hóa hiệu suất. Nó được xây dựng trên nền tảng nginx và 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ó.
Cuối cùng: 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.
Nobito: anh thật khiêm tốn, chúng tôi cũng đã tổng hợp và so sánh anh với một số API Gateway khác, và chúng tôi rất ấn tượng về anh.
Kong: ồ, thật bất ngờ, cảm ơn anh. *cười khoái chí*
II. Cấu trúc của Kong
Nobito: anh có thể cho mọi người ở đây biết về cấu trúc của Kong API Gateway không?
Kong: Tất nhiên, để 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ề CSDL là Cassandra 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.
Đó là một số thông tin cơ bản về cấu trúc của Kong Api gateway. Nếu bạn muốn tìm hiểu thêm, tôi hoan nghênh bạn tìm hiểu thêm thông tin về Kong trên trang web chính thức của Kong.
III. Kong Admin API
Nobito: tôi rất tò mò về Kong Admin API, anh có thể giới thiệu sơ lược về nó không?
Kong: Chắc chắn Nobito, 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.
Tôi có thể cung cấp cho bạn 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
Nobito: Cảm ơn anh, nhưng có cách nào có thể quản lý kong trên GUI thay vì dùng lệnh không?
Kong: có, tôi giới thiệu với anh 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ý.
V. Tổng kết
Nobito: Cảm ơn anh Kong rất nhiều đã chia sẻ những kiến thức và kinh nghiệm về Kong API Gateway cùng chúng tôi. Đó là một cuộc trò chuyện rất thú vị và bổ ích.
Chúng tôi hy vọng rằng thông qua chương trình truyền hình "VNLab - kết nối đam mê", khán giả của chúng tôi cũng đã có thêm nhiều kiến thức về lĩnh vực quản lý API và ứng dụng của Kong API Gateway. Xin cảm ơn và chúc anh Kong cùng đội ngũ phát triển của Kong sẽ ngày càng thành công hơn nữa!
Cảm ơn quý vị khán giả đã quan tâm chương trình, hãy cùng theo dõi và chờ đón những số tiếp theo với nhiều điều thú vị hơn từ chúng tôi nhé.
Nobito - phóng viên đài truyền hình VNLab.