[go: up one dir, main page]

0% found this document useful (0 votes)
33 views19 pages

Microservices vs. Monolithic Architecture

Uploaded by

ishansaini106
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views19 pages

Microservices vs. Monolithic Architecture

Uploaded by

ishansaini106
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Fundamental technology shift

 Mainframe computing
 Client/Server
 Cloud Computing
Microservices
 Current prevailing approach for large scale globally distributed
applications
 Common choice for new development projects for business software
 Many organizations are also evolving existing monolithic applications
to Microservices
What are microservices?
 A model of technical architecture
 Smallindependent functional applications
 Each microservices built on appropriate technical components

 A software development pattern


 Decentralization of technical components
 Distributed programming / DevOps teams

 Responsibility to deploy, operate, and maintain services


From apps to systems
 Many microservices are assembled to create a complex business
application
 Separate independent components
 Brought together via middleware or API gateway
Software Development Styles
 Monolithic Applications
 Codebase of application deployed as a single bundle of executables and
libraries on a unified platform
 Microservices Architecture
 Multiple independent software components orchestrated to form a unified
application
 Common infrastructure:
◼ User interface toolkit
◼ API Gateway
◼ Persistence layer
An internal architecture
 Not necessarily apparent to users whether the application is based on
microservices
 Needed for fast performance, high availability, extreme transaction
loads
 Decentralized architecture does not imply fragmented user
experience
Who uses Microservices
 Uber
 Netflix
 Amazon
 Ebay
 Twitter
 PayPal
Alternative approach: Monolithic software
 Consolidated executable application
 Plus supporting libraries and modules
 Can be massively distributed across computing clusters
 Entire application based on a uniform technology stack:
 Serverplatform
 Operating system

 Programming language

 Database layer

 Enhancements mean recompilation of entire application


Monolithic Application Conceptual Model
Scripts/
User Third Party Systems
Interfaces API endpoints

Web service

Presentation Layer

Application software
Business Logic
Run time libraries
Database Engine
Table Table Table Table Table Table Table Table
Table Table Table Table Table Table Table Table
Services-oriented Architecture
 Longstanding approach to business application development
 Monolithic application based on reusable services
 Complex applications rely on an enterprise service bus to manage
communications among services, database connectivity, event triggers,
etc
 Single uniform technology platform
 Code assembled into a monolithic package
 Scales to very high performance through clustered deployment
SOA development issues
 Services are closely interrelated throughout the application
 Developers must understand all aspects of the application
 Single technology stack
 Small changes require full recompilation
 Complex applications can hit hardware or OS limits
 Centralized development pattern
 Operations separated from Development
Monolithic Application: Enterprise SOA Model
Scripts/
User Third Party Systems
Interfaces API endpoints

Web service

Presentation Layer

Application software Business Logic


Reusable
} Composable
Services

Enterprise Service Bus

Database Engine
Table Table Table Table Table Table Table Table
Table Table Table Table Table Table Table Table
Building a microservice
 Small unit of functionality
 Complete and independent technology stack
 Separate data stores
 Synchronization with other services as needed through persistence layers
 Invoked through API Request / Response
 Usually: REST, HTTP, JSON
 Self-contained components
 Inner workings not exposed externally
 Developers have free reign to select tech components
Microservice conceptual model
Request Response
REST / HTTPS

Web service

Service components

Microservice
Application
software
Run time libraries

Data Store
Assembling an application
 Each microservice performs a small limited task
 Not intended to be standalone applications
 Surrounded by specialized infrastructure
 Manage communications
 Orchestrate services into complex chains of tasks
 Load balancing
 API Gateway
 User Interface layer
 Externally exposed APIs
 Multiple instances of any microservice launched as needed
Microservices-based Application
Scripts/
User Third Party Systems
Interfaces API endpoints

Presentation Layer / UI Toolkit

API Gateway

Web service

Service
component
s
Web service Web service
Web service
Service Service Web service
component Service component
component Microservice
s s Service
s
component
Web service s
Web service Web service Application
Microservice Microservice Web service
Microservice Web service Service software
Service Service component
component Service
component
Service s Microservice
s s component
Application component Application s Run time libraries
software Application s
software
software Application
Microservice
Microservice Microservice software
Microservice
Run time libraries Microservice Run time libraries
Run time libraries
Application Data Store
Application Application Run time libraries
Application software
software software Application software
software
Data Store Data Store Run time libraries
Run time libraries Run time libraries Data Store
Run time libraries
Run time libraries Data Store

Data Store
Data Store Data Store
Data Store
Data Store

Persistence / System
Layer
API calls
Evolving from the Monolith to Microservices
 Many organizations eventually press the limits of applications built
with SOA monolithic style
 Gradually offload selected tasks to microservices
 Full-fledged migration to microservices can be long and expensive
State of the Art
 Business environments based on monolithic style remain viable
 Trend to base new large-scale web applications on microservices
 Well accepted, modern approach among tech giants
 A technical style that supports a level of scale not previously possible
 Beginning to gain acceptance for mid-scale development projects.

You might also like