Yeah, so we know what an APIs are and what an API gateway is. The next question that comes to mind: why do we need to use Kong? And what other options do we have? Let’s start with options we have:
There are multiple choices available to you:
- Microsoft’s Azure Application Gateway: Not really one solution but you can configure it along with other services if you are into Microsoft Azure.
- Amazon API Gateway: The solution for AWS.
- Mashery API Management Platform: A third party API management solution
- ApiAxle: Another installable solution.
- Apigee (Google Cloud): The hosted solution for Google cloud platform.
There are a few other solutions available as well.
Advantages of and Problems with other solutions
The best advantage you get with other solutions is that you don’t have to manage them. Most of them are hosted by other companies. So you don’t have to take care of those things. You only have to use it. Whether the gateway went down or not, will it be upgraded and if so, when etc. are not your problems.
The downside is: you have to learn about the internals of those things by reading documentation. Something is not behaving properly - it’s either your fault or theirs and it can be frustrating to get a reply from their support team (especially for developers) to figure out if something is wrong. You would be reading about Kong and deploying it yourself in about just as much effort - something you can control and monitor to your liking.
So, why Kong?
First reason: it’s based off Nginx. Yepp, it’s basically Nginx under the hood. So you know the tech is reliable, fast, secure and can handle all sorts of requests because well, Nginx can! But there are more reasons:
- Kong is easy - Easy to install, easy to configure and easy to maintain (you hardly have to maintain it).
- Kong is fast - allow me to repeat it one more time: Nginx. That thing configured properly can handle thousands of hits per second on a medium size box.
- Kong community is active - you ever get into trouble, there are people who can help.
- Kong does have official support and paid plans - if money is not an issue and you want the solution fast, you can pay them and get help fast. Also, there is Kong Enterprise to help you when you become (or if you are already) a big company.
- Kong is open source - you want to know how it works under the hood, you can, to the finest of details without having to read documentation which only makes you want to read the source code rather than reading behavior. After all
printf("Hello World")is far better than it will print “Hello World”.
- Kong can scale to your liking and need - Kong can be used in a clustered mode, world-wide.
Of course, with hosted solutions you will not have to do all of that. But if you want to start small and grow out while having the control in your hands, Kong is perfect for it. Once you have become too big to be bothered about API Gateways, you might want to go for a hosted solution, though I don’t think you will. Look at the companies using Kong and you will realise Kong is good at what it does. (Just in case you are thinking about “growing out” problems - remember that guys from Kong provide paid solutions.)
You can start with Kong small and grow with time. Since it’s open source and free, you are free to install and start using it yourself without paying anything upfront and once you are big, Kong Enterprise can help you scale. It’s a no-worries-at-any-scale no-matter-who-you-are solution.