SlideShare une entreprise Scribd logo
1  sur  3
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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 DevelopmentRajesh Raheja
 
SOA Fundamentals
SOA  FundamentalsSOA  Fundamentals
SOA Fundamentalsabhi1112
 
Web Service
Web ServiceWeb Service
Web ServiceEri Alam
 
213650704 literature-survey
213650704 literature-survey213650704 literature-survey
213650704 literature-surveySrikanth Reddy
 
Reservoir sla@soi-interop-tech report
Reservoir sla@soi-interop-tech reportReservoir sla@soi-interop-tech report
Reservoir sla@soi-interop-tech reportpsanjeev
 
Microservices with mule
Microservices with muleMicroservices with mule
Microservices with mulealfa
 
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 Busmiteshisheth
 
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 belongingsMike Taylor
 
Modern Microservices Architecture with Docker
Modern Microservices Architecture with DockerModern Microservices Architecture with Docker
Modern Microservices Architecture with DockerEran Stiller
 
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 OverviewRahul Sudame
 
05 microservices microdeck
05 microservices microdeck05 microservices microdeck
05 microservices microdeckfenggang wang
 
Microservices with mule whishworks blog
Microservices with mule   whishworks blogMicroservices with mule   whishworks blog
Microservices with mule whishworks blogsaikuppannagari
 
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 ProjectsVijay Karan
 

Tendances (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
 

En vedette

Evolution of platform architecture
Evolution of platform architectureEvolution of platform architecture
Evolution of platform architectureVlad Khazin
 
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 FutureArturo Pelayo
 
Network Effects
Network EffectsNetwork Effects
Network Effectsa16z
 
Mobile Is Eating the World (2016)
Mobile Is Eating the World (2016)Mobile Is Eating the World (2016)
Mobile Is Eating the World (2016)a16z
 

En vedette (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)
 

Similaire à Introduction to Micro Services

Term paper 2073131
Term paper   2073131Term paper   2073131
Term paper 2073131mtestman
 
Meetup6 microservices for the IoT
Meetup6 microservices for the IoTMeetup6 microservices for the IoT
Meetup6 microservices for the IoTFrancesco Rago
 
CBSE VS SOA Presentation
CBSE VS SOA PresentationCBSE VS SOA Presentation
CBSE VS SOA PresentationMaulik Parikh
 
CBSE VS SOA SJSU Presentation
CBSE VS SOA SJSU PresentationCBSE VS SOA SJSU Presentation
CBSE VS SOA SJSU Presentationmgp1560
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureFaren faren
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureKim Clark
 
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 ConfusionGlenn Antoine
 
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 IJwest
 
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. CHOREOGRAPHYdannyijwest
 
service orentation documentation
service orentation documentationservice orentation documentation
service orentation documentationpavan nani
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesAraf Karsh Hamid
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service BusHamed Hatami
 
Microservices with mule
Microservices with muleMicroservices with mule
Microservices with muleGovind Mulinti
 
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 AboutNoman Shaikh
 
Microservice - Intro and Discussion
Microservice - Intro and DiscussionMicroservice - Intro and Discussion
Microservice - Intro and DiscussionSagarDevkota8
 
Web Services Foundation Technologies
Web Services Foundation TechnologiesWeb Services Foundation Technologies
Web Services Foundation TechnologiesPankaj Saharan
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application ModernisationAjay Kumar Uppal
 

Similaire à 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
 

Dernier

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 

Dernier (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 

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