Microservices
Enhancement of Service Oriented Architecture(SAO)
Gyenendra Yadav
Jindal Steel & Power Ltd
Applications Architecture
 Monolithic Architecture
 Best choice for current applications
 Support for browser, native mobile applications and API for third pary applications
 Microservice Architecture
 Best choice for Complex and high scale applications.
 Few software community claim that the idea is just a rebranding of service-oriented
architecture (SOA)
What is
Many organizations, such as Amazon, eBay, and Netflix, have solved this problem
by adopting what is now known as the Microservices Architecture pattern. Instead
of building a single monstrous, monolithic application, the idea is to split your
application into set of smaller, interconnected services.
A service typically implements a set of distinct features or functionality, such as
order management, customer management, etc. Each microservice is a mini-
application that has its own hexagonal architecture consisting of business logic
along with various adapters. Some microservices would expose an API that’s
consumed by other microservices or by the application’s clients. Other
microservices might implement a web UI. At runtime, each instance is often a
cloud virtual machine (VM) or a Docker container.
Benefits of Microservices
 Good for agile development and delivery of complex enterprise applications.
 Tackles the problem of complexity
 It decomposes Monolithic application into a set of services.
 Microservices Architecture pattern enforces a level of modularity.
 Fast development, and much easier to understand and provide high level of
maintainability.
 The developers are free to choose whatever technologies. And option of using current
technology
 Due to Modularity feasible to rewrite services.
Finally, the Microservices Architecture pattern enables each service to be scaled
independently. You can deploy just the number of instances of each service that satisfy
its capacity and availability constraints. Moreover, you can use the hardware that best
matches a service’s resource requirements. For example, you can deploy a CPU-intensive
image processing service on EC2 Compute Optimized instances and deploy an in-memory
database service on EC2 Memory-optimized instances
Drawbacks of Microservices
 Complexity due to distributed system.
 Decompose the application.
 Partitioned database architecture (Transactions, Constraints ovulation).
 Implementing changes that span multiple services.
 Deploying a microservices-based application is also much more complex.
Monolithic Architecture Taxi-hailing application.
Microservices Architecture A monolithic application decomposed into microservices
 Each functional area of the application is implemented by its own microservice.
 exposes a REST API
 Inter-service communication
Y axis
functional
decomposition
Scale by splitting
different things
X axis - horizontal duplication
Scale by cloning
TRIP
MANAGEMENT
DOCKER
CONTAINER
DOCKER
CONTAINER
DOCKER
CONTAINER
DOCKER
CONTAINER
EC2 INSTANCE
TRIP
MANAGEMENT
EC2 INSTANCE
TRIP
MANAGEMENT
REST
API
REST
API
REST
API
LOAD
BALANCER
Microservices X-Axis Scaling
PASSENGER
MANAGEMENT
PASSENGER
MANAGEMENT
DATABASE
DRIVER
MANAGEMENT
DATABASE
TRIP
MANAGEMENT
DATABASE
REST
API
DRIVER
MANAGEMENT
REST
API
TRIP
MANAGEMENT
REST
API
DATABASE
ADAPTER
DATABASE
ADAPTER
DATABASE
ADAPTER
Microservices Database Aspect Z-axis Scaling
Thanks……

Microservices