If talking about Kong then it is Orchestration Microservice API Gateway. It offers a flexible layer of abstraction which securely controls communication between microservices and customers through API. It is even recognized as an API Gateway, Service Mesh or API middleware. It is accessible as a project of open source in 2015, its main values are high extensibility and performance.
You should know that Kong is a Lua application which is running perfectly in Nginx and made feasible by the lua-nginx-module.
Is API management matter?
Speed and adaptation have to turn into important factors in the software business. We can find the results of this tendency in the advent of microservices designs, incessant delivery, DevOps culture, cloud computing, and agile software development. To be quick, you must split a system into summarized services and be capable to transform each part of the system in an immediate. This tendency even impacts in a higher level of demand for combined solutions between different services and applications.
Understand that API management performs a crucial role in this combination by offering clear abstractions and boundaries between different systems. These days we make value by mixing different types of services in its place of building our solutions. Therefore, SaaS applications and cloud computing are very famous. With the increasing trend of APIs, some companies adjusted the model of their business, and some also shifted to a completely API-centric business approach. You can see that Expedia Inc makes 90% of the profits throughout the Expedia Affiliate Network, a highly effective platform of API. On the other hand, Netflix has built a system of more than 1000 APIs to perfectly support different types of devices for its streaming platform. On the other hand, Salesforce, one of the quickest growing CRM vendors makes more than 50% of its profit with APIs. Some other normal uses for APIs are:
- reach customers or get content
- make enough amount of traffic
- expand the network of the partner
- Search for new opportunities for the business
- make new streams for the revenue generation
- support different types of devices
- make enough level of flexibility for inner projects
- give a complete level of integration skills with any other systems
But using the facility of APIs is not simple and it comes with a cost. The price of the discussed advantages is growing organizational and technical complexity.
Architecture of Kong
As we have discussed, Kong is an API gateway based on open source technology to control the RESTful APIs. It is an important part of Kong Enterprise, a package of Kong API gateway, is known by the name of Gelato. It is an analytics platform. It is designed for enterprise clients that run lots of APIs and need a highly dedicated 24/7 client support system. For small size business to medium-sized businesses, the highly demanded Kong API gateway (edition of the community) will suffice to make very first and important steps in the management of API.
But the main question is, Why should you use Kong?
In case you are making for web, IoT or mobile you will possibly come up needing a common level of functionality to run your real program or software. Kong can without any problem help by treating like a gateway for microservices demands while offering enough amount of load balancing, authentication, logging, transformations, rate-limiting, and more throughout plugins.
But certainly, kong is the template-based engine that will assist the accelerate time of the development and it effectively supports configurable plugins. Different types of communities’ support development as well as make it stable. There is no requirement to reinvent the wheel.
Different types of authentication plugin that we can select from Basic confirmation, LDAP, JWT until the most utilized — Oauth2.
- The plugin of security that additional protection layers like CORS, ACL, IP Restriction and Dynamic SSL.
- Plugin for traffic control is very helpful for a limited price like rate limiting, demand size limiting, limiting response rate and others.
- Monitoring and analytics which visualize, monitor and inspect API traffic like data dog, Prometheus, and Runscope.
- The plugin of transformation which transforms request as well as responses on the fly like Response Transformer, Request Transformer.
- Plugin for logging plugin which log response and request data utilizing the best transport for your overall infrastructure: UDP, TCP, StatsD, HTTP, Syslog, and some others.
How you can install Kong Community Edition
Kong is easily available to use in the environments of multiple operating systems. For the simplest level of installation, you can use the facility of docker, and for this, you must have some type of basic knowledge about the docker.
Some highly important concepts
Earlier than we dive into some key code samples, let us take a careful look at the important concepts in Kong:
API Object – Completely wraps properties of any specific HTTP(s) endpoint which accomplishes a task or delivers some type of service. Different types of configurations contain HTTP techniques, endpoint URIs, upstream URL that directly points to the API servers and would be used for the requests of proxying, too much retires, rate controls, timeouts, etc.
Client Object – Completely wraps the properties of someone utilizing API endpoints. It would be utilized for access, tracking control and many more
Upstream Object – Explains how incoming demands would be proxied or balanced of the load, represented by a computer-generated hostname
Target Object – Shows the services are served and implemented, recognized by a hostname (or a unique IP address) and a specific port. You should carefully note that the targets of each upstream can just be disabled or added. A record of target changes is kept by the upstream
Plugin Object – pluggable structures to improve functionalities of the application throughout the lifecycle of request and response.
Admin API – endpoints of RESTful API endpoints utilized to manage configurations of Kong, endpoints, plugins, consumers and many more.
In short, you should know that Kong is a highly effective, useful API based on open source technology. It effectively works in front of any RESTful API as well as it is extended throughout Plugins that offer an extra level of functionality as well as services more than the core platform.