What is our primary use case?
I work as a software engineer on the WSO2 API management and WSO2 identity and access server, using version 2.6.
At my company, Jio India, I have been one of the main people driving adoption of WSO2. In the beginning, we used WSO2 on virtual machines to handle the API and IAM requirements for more than 40 applications. Now we are currently in the process of migrating to WSO2 version 3 with Kubernetes as our orchestration system.
How has it helped my organization?
It has helped us manage and scale our APIs in one solution, which is important to us as a large enterprise with over 40 applications relying on various APIs.
What is most valuable?
One of the great things about WSO2 API Manager is that it is so easy to adopt. And because it's an open source solution, we're able to extend the implementation any time to suit our applications better.
What needs improvement?
From a product perspective, the first thing is that although the documentation provided by WSO2 is good, it could be much better. We're in the middle of a complex migration, moving away from VMs to Kubernetes with the latest version of WSO2 and good documentation is essential to us right now.
If you are doing some basic implementation, that's easy enough to do with the current documentation, but suppose you are stuck with an error or you're engineering a complex scenario. In this case, when diving deep into the documentation, it's very helpful to find more information on how things are connected, what each file does, and what the various configuration settings do.
Although they do have paid support which may help in cases where documentation is lacking, we aren't paying for a support license at the moment so we would definitely like to see better documentation for those in our kind of situation. Especially since we're using WSO2 API Manager to such a large extent.
Beyond documentation, they have provided a caching mechanism which I believe could also use some improvement. Once you have set up and implemented WSO2, caching becomes very important and I think they could work on the cache parameters, etc., to make it easier to work with.
Regarding the code itself, there are some bugs which we have encountered among the many different enterprise-level scenarios we have faced. Once again, because we are not paying for the licensed version, it becomes more difficult to request changes and bug fixes to the WSO2 codebase. So, for example, when we find a bug, we would like to be able go to GitHub and get better help on creating a solution that we can quickly push into production.
For how long have I used the solution?
I have been using WSO2 API Manager for about five years now.
What do I think about the stability of the solution?
Apart from some bugs which can be expected in a complex enterprise environment like ours, it is a stable product.
What do I think about the scalability of the solution?
In terms of orchestration, it's very scalable. Especially when using Kubernetes to handle the orchestration. When we are creating our deployment architecture, we can easily define all sorts of parameters. For example, we can change the CPU parameter, memory parameter, etc., as needed.
How are customer service and technical support?
We don't have a license with WSO2 so I couldn't connect with the WSO2 team for technical support. I was the main engineer who drove adoption of it at my company, and during initial setup, editing of the product, and implementation, I obtained a lot of support from Stack Overflow, LinkedIn WSO2 groups, Slack conversations, and GitHub.
How was the initial setup?
From a deployment perspective, initially, we had started with our deployment on VMs (virtual machines), which we understood would take some time to get right. Thankfully, WSO2 provided many sane defaults in the initial setup, including defaults for authentication and so forth, which saved us some time.
But as we migrated our deployment from virtual machines to orchestration using Kubernetes, it became a bit more complex. It took us a long time to figure out the best way to configure the orchestration, since there are multiple ways of doing it with Kubernetes. Another complicating factor in the orchestration setup is that we have to always keep in mind where our users are located, so that there won't be any negative impact on their end.
Keeping all these points in mind, we finalized deployment by creating our own API manager image which we could deploy in Kubernetes. This image was based on our previous VM setup, which we simply reused. However, it was still a challenging task to get everything correctly configured for the Kubernetes orchestration, especially since we were in the middle of simultaneously migrating 15 different implementations.
Now that we have mostly finalized the deployment architecture for our APIs, it's much easier moving forward. We know exactly how to deploy the base image, and there's not much work to do now except for changing parameters around and so on.
What about the implementation team?
We are implementing WSO2 API Manager without any paid support licenses so we do mostly everything in-house.
What's my experience with pricing, setup cost, and licensing?
We have not opted for the paid version of WSO2 but we have implemented the free and open source WSO2 software to a great extent and it is working as per our expectation.
Which other solutions did I evaluate?
When we started looking into it, we compared WSO2 products with a few other products including MuleSoft, Tyk, Kong, Nginx, and Express Gateway. Obviously each product has some pros and cons, but out of those products, we liked WSO2 and KONG. Again, both have their limitations, but as an enterprise business we found WSO2 more easy to adopt.
What other advice do I have?
WSO2 API Manager is a good solution for enterprise API management and, even better, it is free to use the software. If you are doing complex implementations, however, it might benefit you to go with a paid license which will help when you discover any bugs or need extra support that the documentation cannot provide.
I would rate WSO2 API Manager an eight out of ten.
Which version of this solution are you currently using?