The increasing demands of today’s “always on” users has led to the explosion of microservices and containers. In this article, Solutions Architect Carvel Baus explains why API management is the missing piece of the Innovation Trifecta that allows companies to compete against the market disrupters.
Within the past five years, the industry has experienced a dramatic shift in the way software development and development operations are being conducted. This shift is due in no small part to companies like Google, Facebook, and Twitter finding solutions to problems that haven’t existed until now: mobile devices with an army of “always on” users. Systems have had to scale, not by direction of management, but by demand of users. This demand can change in a matter of minutes from thousands to millions. User needs have become as dynamic as the world we live in. The Dawn of the IoT age has begun.
Containers and microservices have risen to the forefront, proven out and improved by pioneers in the industry. These technologies allow developers to provide and update business logic both faster and in a more reliable capacity than their predecessors. As with all new solutions, new problems are created which must be addressed for innovation to continue moving forward. Users interact with existing services revealing new areas of innovation for companies to pursue. As new innovations are explored, they are done so at an increasing pace, facing pressure from both consumers and competitors.
API’s, when combined with microservices and containers, provide a powerful trifecta to meet the ever-increasing demands of today’s users, the growing Internet of Things and the need to stay competitive with market disrupters.
What is API Management?
API’s can be managed using an API Gateway which provides the API runtime and policy enforcement. When a request comes into the API Gateway, it is checked to see if it meets the defined policy for the API (user is authentic and authorized, max requests have not been exceeded, etc.) and is passed onto the microservice for processing, or sends back an error if a policy violation exists. The microservice returns the result back through the gateway and to the originating caller.
Additionally, through the use of an API Gateway, we get a centralized location for managing access to the APIs. Individual services don’t need to implement security checks since the gateway can do that for us (Note: Security is an important issue that should be thoroughly tested with any implementation.) A key benefit here is that when services are updated, we don’t run the risk of introducing an authN or authZ security bug from the code change at the service level.
Why use an API Gateway?
Microservices have their own APIs so what benefit does an additional layer of indirection add? In a word, without the gateway, APIs become tightly coupled which limits our ability to innovate. The API Gateway’s use in a scalable microservices architecture is what’s really compelling.
Containers alone provide us with rapid scalability. Microservices provide us with business logic that can be easily scaled. APIs provide well defined interfaces that can be quickly modified or extended for services. Any one, or two of these combined, provides a limited capability for innovation. However, when all three are used together, we get what we call the Innovation Trifecta. It is a perfect storm of innovation where all three working together are far greater than the sum of their parts.
The Innovation Trifecta
Containers and APIs alone don’t combine in a particularly useful way. With microservices and APIs alone, we can update business logic in real time behind the scenes but are limited in how fast we can scale. Combining microservices and containers, we can scale business logic but must reference each service directly, creating a tightly coupled architecture.
When all three are working together, the area of the diagram we call the Innovation Triangle, companies are able to walk in step with the demands of their customers, excel in creating new opportunities and innovate at a competitive pace.
Microservices hosted by containers and fronted by an API gateway allows for loosely coupled services, on-demand scalability, and rapid development of new innovations.
While there are multiple open-source projects that can be combined to implement an Innovation Trifecta, Red Hat’s 3scale on OpenShift Container Platform provides a compelling, well thought out solution. They have made decisive choices in which OSS components work well together to create a platform that accelerates innovation, leaving the customer to focus on their core business services.
To reproduce the functionality and value-add that is provided by 3scale and the OpenShift Container Platform would take several years and a sizable development team.