SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
Micro-Service Architecture
by Shashi Shekhar
“The system is not working.
That is how a paradigm shift
begins: the established way of
seeing the world no longer
functions.” – Matthew Fox.
This article describes the increasingly popular Micro-
service architecture pattern. The term "Micro-service
Architecture" has sprung up over the last few years to
describe a particular way of designing software
applications as suites of independently deployable
services.
Today, there are several trends that are forcing
application architectures to evolve. Users expect
a rich, interactive and dynamic user experience
on a wide variety of clients including mobile
devices. Applications must be highly scalable,
highly available and run on cloud environments.
Organizations often want to frequently roll out
updates, even multiple times a day.
Consequently, it’s no longer adequate to develop
simple, monolithic web applications that serve up
HTML to desktop browsers. The trending act is to
adapt Micro-Services based architecture, as was
adapted by Netflix when they moved from a single
large war file deployment to a more fluid and
flexible, out-of-process service deployments.
To understand micro-service architecture, it is
important to first understand the limitations of
monolithic applications.
Case Study:
For the purpose of this discussion, consider an
example of an airline
portal, providing key
services to their web
desktop users including
flight information, internet
booking, member service
like loyalty programs and
recommendation service that suggest best
possible offers based on user’s preference,
membership type and previous site visits.
Current Monolithic Application Architecture
Since the earliest days of developing applications
for the web, the most widely used enterprise
application architecture has been one that
packages all the application’s server-side
components into a single unit. Many enterprise
applications consist of a single deployment
bundle (for e.g. .war or .dll file). For this airline
web-portal, the server side components like Flight
Info Service and Member
Service has been identified, that are bundled as
one large deployable bundle. This approach
works well for small applications as this simplifies
the process of development, testing and
deployment. However, the monolithic architecture
becomes unwieldy for complex applications.
Some of its limitations are:
Obstacle to frequent deployment
 There are long QA cycles and
release time
 Least frequent feature
releases
 High risk of failure with every
release
Nervous Developers
 Large & complex code base
 Intermingled dependencies
 Mutated integrity
Overloaded IDE and Containers
 Refactoring takes minutes
 Builds take hours
 Testing in continuous
integration takes hours
Inflexible Scalability
 Scalability through replication only behind the
load-balancer.
 Replication at application level and not at
feature level.
Obstacle to Feature Enhancements
 Team follows communication structure of
organization (Conway’s
law)
 Developers become
specialists on specific
application layer
 Communication between
teams is biased by layer
experience (or lack thereof)
Long-term Commitment to a technology Stack
 Binding to one technology
stack
 Layer wise distribution of
technology stack
Therefore, Micro-Services (MS)
Paradigm shift
 From single large application to a suite of self-
contained services
 Each MS self-contained with its resource
representation and data management
 Each MS with autonoumy on technology stack
and data repository
 Independent deployability of MS, implying no
shared state and inter-process communication
through service communication layer
 Each MS handling one resource (verb), e.g
flight related MS, booking related MS.
Characteristics of Micro-services are:
Application as a suite of services
 Each software component identified as a MS
(micro-service)
 MS segregated on the basis of Single
Responsibility Principle
 Each MS functionally complete with resource
representation and data management
 Each MS as a separate deployable unit
running in a separate process
MS Communication
 Smart end-points and dumb communication
points
 Choreographed using simple RESTish
protocol excluding BPEL, WS-Choreography
 Focus on light messaging over message bus
Decentralized Governance
 Internal architecture of each MS
 Cross-functional team owning a MS from
design & development to application support
& enhancement
 Freedom of choice for technology selection
 Each MS has its own software repository
 Data models conceptualized specific to a MS
 Each MS managing its own database
Design for failure
 Application can tolerate failure of MS
 Emphasis on real-time
monitoring of MS availability
 Sophisticated monitoring and
logging of MS
3-D Scalability Model
Y-axis scaling (Functional decomposition)
 Partition of application by Verb or Use-case
 Independent service based change release
 Independent service based deployment
X-axis scaling (Functional replication)
 X-axis scaling through cloning/replication
 Apply x-axis cloning to each service
independently
Z-axis scaling (Data Localization)
 X-axis scaling through slicing of data and
localization of data-set
 Independent scale-out of specific data-set
Client-Service Communication (API Gateway)
 API gateway will be the single point of entry
 Client specific APIs (Web and Mobile clients
have their own specific APIs)
 Protocol translation through API gateway
 Services published at the gateway for client
access
 Gateway act as mediator for services,
abstracting fine grained services into coarse-
grained service call
Inter-Service Communication
 Services can interact through synchronous
HTTP based mechanism like REST or SOAP
 Fault tolerant asynchronous message based
mechanism like AMQP based message
broker
Comparison with service-oriented
architecture
 SOA system also focuses on system
decomposition, but unlike MS, SOA services
are not self-contained with data and UI
 SOA is concentrated on further decomposing
business layer into a separate service
orchestration layer
 SOA focuses mainly on business agility unlike
MS that focuses primarily on functional
clustering and independent deployment units
 MS can be seen as “SOA – the good parts”
Challenges with MS implementation
 Complexity of developing & testing a
distributed system
 Multiple database and transaction
management
 Developing and deploying features that span
multiple services requires careful co-
ordination
 Refactoring would be much harder with
remote communication between services
 Moving code would be difficult across service
boundaries
 In case services not identified properly, the
complexity would simply shift from inside
component to the interaction between
components
 Requires paradigm shift in how team looks at
software development
Horizontal replication
Functionaldecomposition
Scaling Cube

Más contenido relacionado

La actualidad más candente

SOA Fundamentals
SOA  FundamentalsSOA  Fundamentals
SOA Fundamentals
abhi1112
 
Web Service
Web ServiceWeb Service
Web Service
Eri Alam
 
Reservoir sla@soi-interop-tech report
Reservoir sla@soi-interop-tech reportReservoir sla@soi-interop-tech report
Reservoir sla@soi-interop-tech report
psanjeev
 
Soa session 1 part 1(2)
Soa session 1 part 1(2)Soa session 1 part 1(2)
Soa session 1 part 1(2)
Shilpi Jain
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
miteshisheth
 
Social networking app to trade user belongings
Social networking app to trade user belongingsSocial networking app to trade user belongings
Social networking app to trade user belongings
Mike Taylor
 

La actualidad más candente (20)

WDSOA'05 Whitepaper: SOA and the Future of Application Development
WDSOA'05 Whitepaper: SOA and the Future of Application DevelopmentWDSOA'05 Whitepaper: SOA and the Future of Application Development
WDSOA'05 Whitepaper: SOA and the Future of Application Development
 
SOA Fundamentals
SOA  FundamentalsSOA  Fundamentals
SOA Fundamentals
 
Soavssaas
SoavssaasSoavssaas
Soavssaas
 
Mule introduction
Mule introductionMule introduction
Mule introduction
 
Web Service
Web ServiceWeb Service
Web Service
 
213650704 literature-survey
213650704 literature-survey213650704 literature-survey
213650704 literature-survey
 
Soa chapter 5
Soa chapter 5Soa chapter 5
Soa chapter 5
 
Reservoir sla@soi-interop-tech report
Reservoir sla@soi-interop-tech reportReservoir sla@soi-interop-tech report
Reservoir sla@soi-interop-tech report
 
Microservices with mule
Microservices with muleMicroservices with mule
Microservices with mule
 
Soa session 1 part 1(2)
Soa session 1 part 1(2)Soa session 1 part 1(2)
Soa session 1 part 1(2)
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
 
Introduction to SOA
Introduction to SOAIntroduction to SOA
Introduction to SOA
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Service oriented architecture 27 May 2014
Service oriented architecture 27 May 2014Service oriented architecture 27 May 2014
Service oriented architecture 27 May 2014
 
Social networking app to trade user belongings
Social networking app to trade user belongingsSocial networking app to trade user belongings
Social networking app to trade user belongings
 
Modern Microservices Architecture with Docker
Modern Microservices Architecture with DockerModern Microservices Architecture with Docker
Modern Microservices Architecture with Docker
 
Cloud computing and Software as a Service Overview
Cloud computing and Software as a Service OverviewCloud computing and Software as a Service Overview
Cloud computing and Software as a Service Overview
 
05 microservices microdeck
05 microservices microdeck05 microservices microdeck
05 microservices microdeck
 
Microservices with mule whishworks blog
Microservices with mule   whishworks blogMicroservices with mule   whishworks blog
Microservices with mule whishworks blog
 
M.E Computer Science Server Computing Projects
M.E Computer Science Server Computing ProjectsM.E Computer Science Server Computing Projects
M.E Computer Science Server Computing Projects
 

Destacado

Destacado (6)

HR microservices
HR microservicesHR microservices
HR microservices
 
Netkit
NetkitNetkit
Netkit
 
Evolution of platform architecture
Evolution of platform architectureEvolution of platform architecture
Evolution of platform architecture
 
The Future Of Work & The Work Of The Future
The Future Of Work & The Work Of The FutureThe Future Of Work & The Work Of The Future
The Future Of Work & The Work Of The Future
 
Network Effects
Network EffectsNetwork Effects
Network Effects
 
Mobile Is Eating the World (2016)
Mobile Is Eating the World (2016)Mobile Is Eating the World (2016)
Mobile Is Eating the World (2016)
 

Similar a Introduction to Micro Services

service orentation documentation
service orentation documentationservice orentation documentation
service orentation documentation
pavan nani
 

Similar a Introduction to Micro Services (20)

Term paper 2073131
Term paper   2073131Term paper   2073131
Term paper 2073131
 
Meetup6 microservices for the IoT
Meetup6 microservices for the IoTMeetup6 microservices for the IoT
Meetup6 microservices for the IoT
 
CBSE VS SOA Presentation
CBSE VS SOA PresentationCBSE VS SOA Presentation
CBSE VS SOA Presentation
 
CBSE VS SOA SJSU Presentation
CBSE VS SOA SJSU PresentationCBSE VS SOA SJSU Presentation
CBSE VS SOA SJSU Presentation
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 
REST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of ConfusionREST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of Confusion
 
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
 
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHYSELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
 
service orentation documentation
service orentation documentationservice orentation documentation
service orentation documentation
 
Cc unit 2 updated
Cc unit 2 updatedCc unit 2 updated
Cc unit 2 updated
 
Microservices-101
Microservices-101Microservices-101
Microservices-101
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
 
Microservices with mule
Microservices with muleMicroservices with mule
Microservices with mule
 
Web Application Architecture: Everything You Need to Know About
Web Application Architecture: Everything You Need to Know AboutWeb Application Architecture: Everything You Need to Know About
Web Application Architecture: Everything You Need to Know About
 
Microservice - Intro and Discussion
Microservice - Intro and DiscussionMicroservice - Intro and Discussion
Microservice - Intro and Discussion
 
Web Services Foundation Technologies
Web Services Foundation TechnologiesWeb Services Foundation Technologies
Web Services Foundation Technologies
 
L11 Service Design and REST
L11 Service Design and RESTL11 Service Design and REST
L11 Service Design and REST
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Introduction to Micro Services

  • 1. Micro-Service Architecture by Shashi Shekhar “The system is not working. That is how a paradigm shift begins: the established way of seeing the world no longer functions.” – Matthew Fox. This article describes the increasingly popular Micro- service architecture pattern. The term "Micro-service Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. Today, there are several trends that are forcing application architectures to evolve. Users expect a rich, interactive and dynamic user experience on a wide variety of clients including mobile devices. Applications must be highly scalable, highly available and run on cloud environments. Organizations often want to frequently roll out updates, even multiple times a day. Consequently, it’s no longer adequate to develop simple, monolithic web applications that serve up HTML to desktop browsers. The trending act is to adapt Micro-Services based architecture, as was adapted by Netflix when they moved from a single large war file deployment to a more fluid and flexible, out-of-process service deployments. To understand micro-service architecture, it is important to first understand the limitations of monolithic applications. Case Study: For the purpose of this discussion, consider an example of an airline portal, providing key services to their web desktop users including flight information, internet booking, member service like loyalty programs and recommendation service that suggest best possible offers based on user’s preference, membership type and previous site visits. Current Monolithic Application Architecture Since the earliest days of developing applications for the web, the most widely used enterprise application architecture has been one that packages all the application’s server-side components into a single unit. Many enterprise applications consist of a single deployment bundle (for e.g. .war or .dll file). For this airline web-portal, the server side components like Flight Info Service and Member Service has been identified, that are bundled as one large deployable bundle. This approach works well for small applications as this simplifies the process of development, testing and deployment. However, the monolithic architecture becomes unwieldy for complex applications. Some of its limitations are: Obstacle to frequent deployment  There are long QA cycles and release time  Least frequent feature releases  High risk of failure with every release Nervous Developers  Large & complex code base  Intermingled dependencies  Mutated integrity Overloaded IDE and Containers  Refactoring takes minutes  Builds take hours  Testing in continuous integration takes hours Inflexible Scalability  Scalability through replication only behind the load-balancer.  Replication at application level and not at feature level.
  • 2. Obstacle to Feature Enhancements  Team follows communication structure of organization (Conway’s law)  Developers become specialists on specific application layer  Communication between teams is biased by layer experience (or lack thereof) Long-term Commitment to a technology Stack  Binding to one technology stack  Layer wise distribution of technology stack Therefore, Micro-Services (MS) Paradigm shift  From single large application to a suite of self- contained services  Each MS self-contained with its resource representation and data management  Each MS with autonoumy on technology stack and data repository  Independent deployability of MS, implying no shared state and inter-process communication through service communication layer  Each MS handling one resource (verb), e.g flight related MS, booking related MS. Characteristics of Micro-services are: Application as a suite of services  Each software component identified as a MS (micro-service)  MS segregated on the basis of Single Responsibility Principle  Each MS functionally complete with resource representation and data management  Each MS as a separate deployable unit running in a separate process MS Communication  Smart end-points and dumb communication points  Choreographed using simple RESTish protocol excluding BPEL, WS-Choreography  Focus on light messaging over message bus Decentralized Governance  Internal architecture of each MS  Cross-functional team owning a MS from design & development to application support & enhancement  Freedom of choice for technology selection  Each MS has its own software repository  Data models conceptualized specific to a MS  Each MS managing its own database Design for failure  Application can tolerate failure of MS  Emphasis on real-time monitoring of MS availability  Sophisticated monitoring and logging of MS
  • 3. 3-D Scalability Model Y-axis scaling (Functional decomposition)  Partition of application by Verb or Use-case  Independent service based change release  Independent service based deployment X-axis scaling (Functional replication)  X-axis scaling through cloning/replication  Apply x-axis cloning to each service independently Z-axis scaling (Data Localization)  X-axis scaling through slicing of data and localization of data-set  Independent scale-out of specific data-set Client-Service Communication (API Gateway)  API gateway will be the single point of entry  Client specific APIs (Web and Mobile clients have their own specific APIs)  Protocol translation through API gateway  Services published at the gateway for client access  Gateway act as mediator for services, abstracting fine grained services into coarse- grained service call Inter-Service Communication  Services can interact through synchronous HTTP based mechanism like REST or SOAP  Fault tolerant asynchronous message based mechanism like AMQP based message broker Comparison with service-oriented architecture  SOA system also focuses on system decomposition, but unlike MS, SOA services are not self-contained with data and UI  SOA is concentrated on further decomposing business layer into a separate service orchestration layer  SOA focuses mainly on business agility unlike MS that focuses primarily on functional clustering and independent deployment units  MS can be seen as “SOA – the good parts” Challenges with MS implementation  Complexity of developing & testing a distributed system  Multiple database and transaction management  Developing and deploying features that span multiple services requires careful co- ordination  Refactoring would be much harder with remote communication between services  Moving code would be difficult across service boundaries  In case services not identified properly, the complexity would simply shift from inside component to the interaction between components  Requires paradigm shift in how team looks at software development Horizontal replication Functionaldecomposition Scaling Cube