What are Microservices?
Microservices promise greater agility and speed in delivering innovation to customers through digital experiences. Microservices are a modern software architecture pattern where many small services, often written in different languages and packages, are loosely coupled together to create an application. With microservices, you can make changes to a portion of the application quickly and without impacting other parts of application.
Container technologies like Docker and Kubernetes have streamlined the development and deployment of microservices by removing dependencies with process isolation and by automating container orchestration. With a microservices architecture, the API layer becomes a critical part of the application design connecting the different microservices.
Deploying microservices changes how your customers access your application. Traditional solutions are not well suited for distributed environments, suffering from:
- Increased complexity with more services and external access points
- Increased surface area of attack with distributed services
- More complex traffic control and management needs
API gateways provide a central control and access point between your end users and your application services, and serve to:
- Centralize end user access to disparate backend application services
- Reduce risk by centrally applying security policies to distributed services
- Granularly manage traffic routes and shape traffic