presents
Microservices
Part - 1
Deepanshu Jain | Software Architect
Topics
● Monolithic System Architecture
● Service-Oriented Architecture (SOA)
● How Microservices Implement Web Service
Concepts
● Microservice Protocols and Standards
● Decomposing a Monolith Application
Traditional Legacy Application
Monolithic System Architecture
● A monolithic architecture is the traditional unified model for the design of a software
program.
● Monolithic software is designed to be self-contained; components of the program are
interconnected and interdependent. In a tightly-coupled architecture, each component
and its associated components must be present in order for code to be executed or
compiled.
Why Monolithic?
● Simple to develop.
● Simple to test. For example you can implement end-to-end testing by
simply launching the application and testing the UI with Selenium.
● Simple to deploy. You just have to copy the packaged application to a
server.
● Simple to scale horizontally by running multiple copies behind a load
balancer.
What’s wrong with Monolithic
Architecture
● Application is too large and complex to fully understand and made
changes fast and correctly.
● The size of the application can slow down the start-up time.
● You must redeploy the entire application on each update.
● Extensive manual testing, as impact can break any module.
● Continuous deployment is difficult.
● Reliability, one module failure can impact others, and results with
application failure.
● Monolithic applications has a barrier to adopting new technologies.
● Scalability?
Microservice Architecture
Microservices - also known as the microservice architecture - is an architectural style that structures an application
as a collection of services that are
● Highly maintainable and testable
● Loosely coupled
● Independently deployable
● Organized around business capabilities
● Owned by a small team
Microservice architecture is an architectural style that structure the application as set
of services that are organized around business capabilities.
Microservice Architecture
Rest APIs Rest APIs Rest APIs
Microservice 1 Microservice 2 Microservice 3 Microservice 4
Microservice Architecture Advantages
● Easier to build and maintain applications as each business
module is a service (microservice).
● Organized Around Business Capabilities
● Improved Productivity and Speed
● Flexibility in using technologies
● Autonomous, Cross-functional Teams
● Cost effective scalability
● Improve fault tolerance
● Increase testability of code
Microservice Protocols and Standards
So, after the larger considerations of microservice-to-microservice communications,
what do most people do?
● Use HTTP/REST (synchronous) communication for services outside of the
internal microservices structure. The HTTP/REST communication is ideal for
external requests, as it’s built to easily handle items like real-time interactions
from a client.
● Use AMQP (asynchronous) for communication methods within the internal
microservices structure.