SlideShare a Scribd company logo
Micro-services
architecture
By
Farwa Abdul Hannan (16F-9006)
Saba Ghani (16F-9011)
1
Micro-Services Architecture
• Defined as:
functional system decomposition into manageable
and independently deployable components
• “micro” refers to the sizing
• a micro service must be manageable by a single
development team (5-9 developers)
• Functional system decomposition means vertical
slicing
• in contrast to horizontal slicing through layers
2
More specifically
• Each micro-service is functionally complete with
• Resource representation
• Data management
• Each micro-service handles one resource (or verb),
e.g.
• Clients
• Shop Items
• Carts
• Checkout
3
Micro-services architecture is an evolutionary design
ideal for evolutionary systems where you can’t fully
anticipate the types of devices that may one day be
accessing your application
4
5
Problems of Monolithic
Architectures
• Code complexity and maintainability
• Deployment becomes the bottleneck
• Fear to change
• Lack of ownership
• Failure dependencies
• One size doesn’t fit all (ex: relational DB)
• Hard to scale out
6
• Code complexity and maintainability
• Deployment becomes the bottleneck
• Fear to change
• Lack of ownership
• Failure dependencies
• One size doesn’t fit all (ex: relational DB)
• Hard to scale out
7
Monolithic
Micro Services
8
Components & Connectors
• Components – individual programs
• Connectors are discussed below:
• Communication between micro services is often
standardized using
• HTTP(S) – broadly available transport protocol
• REST – uniform interfaces on data as resources with
known manipulation means
• JSON – simple data representation format
• REST and JSON are convenient because they simplify
interface evolution
9
Quality Characteristics 10
Decentralization
• Micro-services decentralize data storage
decisions
• Monolithic applications prefer a single logical
database for persistent data
• Micro-services prefer letting each service
manage its own database
• either different instances or entirely different
database systems
11
Independence
• Independent deployability is key
• Each service has its own software repository
• Each micro service can be scaled
independently
• Data sharing can be applied to micro-services as
needed
• Independent evolution of Features
• Micro-services can be extended without affecting
other services
12
Black Box
• Black box testing is a type of component
interface testing
• verifies that data being passed among
components in the system is done right and it
verifies application flow
13
Polyglot
• Polyglot persistence is an approach
• Used in monolithic but frequently in micro
services
• Using multiple data storage technologies for
an individual application
• chosen based upon the best way data can be
stored and retrieved for the application
14
Over to
Farwa Abdul Hannan (16F-9006)
15
Typical Usage and Applications
• Money Transfer/Transactional processing in
Financial Systems
• Most large scale web sites including Netflix,
Amazon and eBay have evolved from a
monolithic architecture to a Micro-Service
architecture.
16
Examples
• Traditional Web Application architecture
Monolithic VS Micro-Services
17
Cont…
• Taxi Hailing Company (monolithic architecture)
18
Cont…
Taxi Hailing Company (Micro-Services Architecture)
19
Cont… 20
Constraints and Limitations
Constraints
(principles that drive desired properties)
• Elastic
• Resilient
• Composable
• Minimal
• Complete
Limitations
• Complexity
• Creational (in case of
Distributed Systems)
• Operational
• Deployment
• Increased Memory
Consumption
21
Micro-Service Constraint #1 -
Elastic
• A Micro-Service must be able to scale, up or
down, independently of other services in the
same application.
• This constraint implies that based on load, or
other factors, applications’ performance and
availability couldn’t be affected.
• Multiple instances of each micro service can
run ineffectively
22
Micro-Service Constraint #2 -
Resilient
• A Micro-Service must fail without impacting
other services in the same application.
• A failure of a single service instance should
have minimal impact on the application.
• Failure of all instances of a micro service, should
impact a single application function & users should
be able to continue using the rest of the application
without impact.
• Micro-Services are Loosely Coupled
23
Micro-Service Constraint #3 -
Composable
• A Micro-Service must offer an interface that
is uniform and is designed to support service
composition.
• Micro-Service APIs should be designed with a
common way of identifying, representing, and
manipulating resources.
24
Micro-Service Constraint #4 -
Minimal
• A Micro-Service must only contain highly cohesive entities
• In software, cohesion is a measure of whether things belong
together.
• High cohesion – all objects and functions in it are focused on
the same tasks
• A Micro-Service should perform a single business function,
which implies that all of its components are highly cohesive.
• Higher cohesion – more maintainable software.
25
Micro-Service Constraint #5 -
Complete
• A Micro-Service must be functionally
complete
• A Micro-Service must offer a complete
function, with minimal dependencies (loose
coupling) to other services in the application.
• Minimal but Complete.
26
Limitation #1 - Complexity
• Too many Micro-Services
• Developers must deal with the additional complexity of creating a
distributed system.
• Testing is more difficult
• Developers must implement the inter-service communication mechanism.
• Developers must implement mechanisms for handling
operations/functionality of many different types of services.
• Obviously, the deployment complexity will be increased – need to
deploy and manage many different service types.
27
Limitation #2 – Increased
Memory Consumption
• The micro-services approach leads to the
increased memory consumption. It simply, due
to own address space for the each service.
28
Summing Up
• Improves fault isolation
• Makes it easier for a new developer to understand the
functionality of a service.
• Developing distributed systems can be complex.
• Multiple databases and transaction management can be
painful.
• Testing a Micro-services-based application can be
cumbersome.
• Deploying Micro-Services can be complex.
• Ease of Modification – make a change/modification to a
single service and deploy it independently of the rest of
the system.
29
References
• https://aws-de-
media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/sessions/pushing_t
he_boundaries_1300_microservices_on_aws.pdf
• http://www.pst.ifi.lmu.de/Lehre/wise-14-15/mse/microservice-
architectures.pdf
• https://www.nginx.com/blog/microservices-at-netflix-architectural-best-
practices/
• https://smartbear.com/learn/api-design/what-are-microservices/
• http://www.martinfowler.com/articles/microservices.html
• https://www.smartcat.io/blog/blackbox-testing-microservices/
• http://www.jamesserra.com/archive/2015/07/what-is-polyglot-persistence/
• https://2013.nosql-matters.org/cgn/wp-content/uploads/2013/02/Engelschall-
NoSQL-Matters-Polyglot-Persistence.pdf
• http://eventuate.io/exampleapps.html
• http://microservices.io/patterns/microservices.html
30
References
• https://dzone.com/articles/microservices-five
• https://www.nginx.com/blog/microservices-at-netflix-architectural-best-practices/
• https://www.nginx.com/blog/building-microservices-inter-process-communication/
• http://www.nirmata.com/2015/02/microservices-five-architectural-constraints/
• https://netflix.github.io
• https://cdn.wp.nginx.com/wp-content/uploads/2015/05/intro-microservices.png
• http://cloudacademy.com/blog/microservices-architecture-challenge-advantage-
drawback/
• https://www.quora.com/What-are-some-disadvantages-of-a-microservice-architecture
• https://www.stackbuilders.com/news/the-hidden-costs-of-microservices
• http://cyberleninka.ru/article/n/on-micro-services-architecture
31
Thank You
32

More Related Content

What's hot

Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
Amazon Web Services
 
Microservices
MicroservicesMicroservices
Microservices
SmartBear
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
Roger van de Kimmenade
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
Araf Karsh Hamid
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
Paul Mooney
 
Microservices architecture overview v2
Microservices architecture overview v2Microservices architecture overview v2
Microservices architecture overview v2
Dmitry Skaredov
 
Istio Service Mesh
Istio Service MeshIstio Service Mesh
Istio Service Mesh
Luke Marsden
 
Istio a service mesh
Istio   a service meshIstio   a service mesh
Istio a service mesh
Chandresh Pancholi
 
Kubernetes and service mesh application
Kubernetes  and service mesh applicationKubernetes  and service mesh application
Kubernetes and service mesh application
Thao Huynh Quang
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
Amazon Web Services
 
Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with Istio
Michelle Holley
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
Araf Karsh Hamid
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Faren faren
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
Žilvinas Kuusas
 
Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...
jeetendra mandal
 
Containers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red HatContainers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red Hat
Amazon Web Services
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
Ryan Jarvinen
 
Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!
Animesh Singh
 
ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep Dive
Yong Feng
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Joshua Costa
 

What's hot (20)

Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservices
MicroservicesMicroservices
Microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Microservices architecture overview v2
Microservices architecture overview v2Microservices architecture overview v2
Microservices architecture overview v2
 
Istio Service Mesh
Istio Service MeshIstio Service Mesh
Istio Service Mesh
 
Istio a service mesh
Istio   a service meshIstio   a service mesh
Istio a service mesh
 
Kubernetes and service mesh application
Kubernetes  and service mesh applicationKubernetes  and service mesh application
Kubernetes and service mesh application
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
 
Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with Istio
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...
 
Containers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red HatContainers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red Hat
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!
 
ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep Dive
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 

Similar to Micro-services architecture

Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Srinivasan Nanduri
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
ramesh_sharma
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
AFAS Software
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
Lalit Kale
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
Paria Heidari
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptx
MohammedShahid562503
 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services Architecture
Rabbani Mohideen
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
Developing Enterprise Applications for the Cloud,from Monolith to MicroservicesDeveloping Enterprise Applications for the Cloud,from Monolith to Microservices
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
David Currie
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
M A Hossain Tonu
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Jack-Junjie Cai
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
MahmoudZidan41
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Richard Langlois P. Eng.
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
PLovababu
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1
Amin Arab
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesAngelos Kapsimanis
 
microservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdfmicroservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdf
RichieBallyears
 
DEVNET-1142 Decomposing Monolithic Applications to Microservices
DEVNET-1142	Decomposing Monolithic Applications to MicroservicesDEVNET-1142	Decomposing Monolithic Applications to Microservices
DEVNET-1142 Decomposing Monolithic Applications to Microservices
Cisco DevNet
 
Microservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get StartedMicroservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get Started
Shailendra Chauhan
 
6. Microservices architecture.pptx
6. Microservices architecture.pptx6. Microservices architecture.pptx
6. Microservices architecture.pptx
datapro2
 
Deploying at will - SEI
 Deploying at will - SEI Deploying at will - SEI

Similar to Micro-services architecture (20)

Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptx
 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services Architecture
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
Developing Enterprise Applications for the Cloud,from Monolith to MicroservicesDeveloping Enterprise Applications for the Cloud,from Monolith to Microservices
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based Architectures
 
microservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdfmicroservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdf
 
DEVNET-1142 Decomposing Monolithic Applications to Microservices
DEVNET-1142	Decomposing Monolithic Applications to MicroservicesDEVNET-1142	Decomposing Monolithic Applications to Microservices
DEVNET-1142 Decomposing Monolithic Applications to Microservices
 
Microservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get StartedMicroservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get Started
 
6. Microservices architecture.pptx
6. Microservices architecture.pptx6. Microservices architecture.pptx
6. Microservices architecture.pptx
 
Deploying at will - SEI
 Deploying at will - SEI Deploying at will - SEI
Deploying at will - SEI
 

More from Farwa Ansari

Energy Harvesting Techniques in Wireless Sensor Networks – A Survey
Energy Harvesting Techniques in Wireless Sensor Networks – A SurveyEnergy Harvesting Techniques in Wireless Sensor Networks – A Survey
Energy Harvesting Techniques in Wireless Sensor Networks – A Survey
Farwa Ansari
 
Software Design Patterns - An Overview
Software Design Patterns - An OverviewSoftware Design Patterns - An Overview
Software Design Patterns - An Overview
Farwa Ansari
 
Optimizing the memory management of a virtual machine monitor on a NUMA syste...
Optimizing the memory management of a virtual machine monitor on a NUMA syste...Optimizing the memory management of a virtual machine monitor on a NUMA syste...
Optimizing the memory management of a virtual machine monitor on a NUMA syste...
Farwa Ansari
 
Fault Tolerance Typed Assembly Language - A graphical overview
Fault Tolerance Typed Assembly Language - A graphical overviewFault Tolerance Typed Assembly Language - A graphical overview
Fault Tolerance Typed Assembly Language - A graphical overview
Farwa Ansari
 
Comparative Analysis of Face Recognition Methodologies and Techniques
Comparative Analysis of Face Recognition Methodologies and TechniquesComparative Analysis of Face Recognition Methodologies and Techniques
Comparative Analysis of Face Recognition Methodologies and Techniques
Farwa Ansari
 
Chapter 5: Names, Bindings and Scopes (review Questions and Problem Set)
Chapter 5: Names, Bindings and Scopes (review Questions and Problem Set)Chapter 5: Names, Bindings and Scopes (review Questions and Problem Set)
Chapter 5: Names, Bindings and Scopes (review Questions and Problem Set)
Farwa Ansari
 
Chapter 4: Lexical & Syntax Analysis (Programming Exercises)
Chapter 4: Lexical & Syntax Analysis (Programming Exercises)Chapter 4: Lexical & Syntax Analysis (Programming Exercises)
Chapter 4: Lexical & Syntax Analysis (Programming Exercises)
Farwa Ansari
 
Business plan of a software house
Business plan of a software houseBusiness plan of a software house
Business plan of a software house
Farwa Ansari
 
Mission statement and Vision statement of 3 Different Companies
Mission statement and Vision statement of 3 Different CompaniesMission statement and Vision statement of 3 Different Companies
Mission statement and Vision statement of 3 Different Companies
Farwa Ansari
 
Applications of Image Processing
Applications of Image ProcessingApplications of Image Processing
Applications of Image Processing
Farwa Ansari
 
Cohen sutherland algorithm
Cohen sutherland algorithmCohen sutherland algorithm
Cohen sutherland algorithm
Farwa Ansari
 
Scaling
ScalingScaling
Scaling
Farwa Ansari
 
Raster images (assignment)
Raster images (assignment)Raster images (assignment)
Raster images (assignment)
Farwa Ansari
 
Prefix and suffix of open gl
Prefix and suffix of open glPrefix and suffix of open gl
Prefix and suffix of open gl
Farwa Ansari
 
Linear combination of vector
Linear combination of vectorLinear combination of vector
Linear combination of vector
Farwa Ansari
 
Graphic display devices
Graphic display devicesGraphic display devices
Graphic display devices
Farwa Ansari
 
Implementation & Challenges of IPv6
Implementation & Challenges of IPv6Implementation & Challenges of IPv6
Implementation & Challenges of IPv6
Farwa Ansari
 
IPv6 Implementation challenges
IPv6 Implementation challengesIPv6 Implementation challenges
IPv6 Implementation challenges
Farwa Ansari
 
Tomasulo Algorithm
Tomasulo AlgorithmTomasulo Algorithm
Tomasulo Algorithm
Farwa Ansari
 
Summary of Simultaneous Multithreading: Maximizing On-Chip Parallelism
Summary of Simultaneous Multithreading: Maximizing On-Chip ParallelismSummary of Simultaneous Multithreading: Maximizing On-Chip Parallelism
Summary of Simultaneous Multithreading: Maximizing On-Chip Parallelism
Farwa Ansari
 

More from Farwa Ansari (20)

Energy Harvesting Techniques in Wireless Sensor Networks – A Survey
Energy Harvesting Techniques in Wireless Sensor Networks – A SurveyEnergy Harvesting Techniques in Wireless Sensor Networks – A Survey
Energy Harvesting Techniques in Wireless Sensor Networks – A Survey
 
Software Design Patterns - An Overview
Software Design Patterns - An OverviewSoftware Design Patterns - An Overview
Software Design Patterns - An Overview
 
Optimizing the memory management of a virtual machine monitor on a NUMA syste...
Optimizing the memory management of a virtual machine monitor on a NUMA syste...Optimizing the memory management of a virtual machine monitor on a NUMA syste...
Optimizing the memory management of a virtual machine monitor on a NUMA syste...
 
Fault Tolerance Typed Assembly Language - A graphical overview
Fault Tolerance Typed Assembly Language - A graphical overviewFault Tolerance Typed Assembly Language - A graphical overview
Fault Tolerance Typed Assembly Language - A graphical overview
 
Comparative Analysis of Face Recognition Methodologies and Techniques
Comparative Analysis of Face Recognition Methodologies and TechniquesComparative Analysis of Face Recognition Methodologies and Techniques
Comparative Analysis of Face Recognition Methodologies and Techniques
 
Chapter 5: Names, Bindings and Scopes (review Questions and Problem Set)
Chapter 5: Names, Bindings and Scopes (review Questions and Problem Set)Chapter 5: Names, Bindings and Scopes (review Questions and Problem Set)
Chapter 5: Names, Bindings and Scopes (review Questions and Problem Set)
 
Chapter 4: Lexical & Syntax Analysis (Programming Exercises)
Chapter 4: Lexical & Syntax Analysis (Programming Exercises)Chapter 4: Lexical & Syntax Analysis (Programming Exercises)
Chapter 4: Lexical & Syntax Analysis (Programming Exercises)
 
Business plan of a software house
Business plan of a software houseBusiness plan of a software house
Business plan of a software house
 
Mission statement and Vision statement of 3 Different Companies
Mission statement and Vision statement of 3 Different CompaniesMission statement and Vision statement of 3 Different Companies
Mission statement and Vision statement of 3 Different Companies
 
Applications of Image Processing
Applications of Image ProcessingApplications of Image Processing
Applications of Image Processing
 
Cohen sutherland algorithm
Cohen sutherland algorithmCohen sutherland algorithm
Cohen sutherland algorithm
 
Scaling
ScalingScaling
Scaling
 
Raster images (assignment)
Raster images (assignment)Raster images (assignment)
Raster images (assignment)
 
Prefix and suffix of open gl
Prefix and suffix of open glPrefix and suffix of open gl
Prefix and suffix of open gl
 
Linear combination of vector
Linear combination of vectorLinear combination of vector
Linear combination of vector
 
Graphic display devices
Graphic display devicesGraphic display devices
Graphic display devices
 
Implementation & Challenges of IPv6
Implementation & Challenges of IPv6Implementation & Challenges of IPv6
Implementation & Challenges of IPv6
 
IPv6 Implementation challenges
IPv6 Implementation challengesIPv6 Implementation challenges
IPv6 Implementation challenges
 
Tomasulo Algorithm
Tomasulo AlgorithmTomasulo Algorithm
Tomasulo Algorithm
 
Summary of Simultaneous Multithreading: Maximizing On-Chip Parallelism
Summary of Simultaneous Multithreading: Maximizing On-Chip ParallelismSummary of Simultaneous Multithreading: Maximizing On-Chip Parallelism
Summary of Simultaneous Multithreading: Maximizing On-Chip Parallelism
 

Recently uploaded

CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
MIRIAMSALINAS13
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Atul Kumar Singh
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Po-Chuan Chen
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
DeeptiGupta154
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
DhatriParmar
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
BhavyaRajput3
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 

Recently uploaded (20)

CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 

Micro-services architecture

  • 1. Micro-services architecture By Farwa Abdul Hannan (16F-9006) Saba Ghani (16F-9011) 1
  • 2. Micro-Services Architecture • Defined as: functional system decomposition into manageable and independently deployable components • “micro” refers to the sizing • a micro service must be manageable by a single development team (5-9 developers) • Functional system decomposition means vertical slicing • in contrast to horizontal slicing through layers 2
  • 3. More specifically • Each micro-service is functionally complete with • Resource representation • Data management • Each micro-service handles one resource (or verb), e.g. • Clients • Shop Items • Carts • Checkout 3
  • 4. Micro-services architecture is an evolutionary design ideal for evolutionary systems where you can’t fully anticipate the types of devices that may one day be accessing your application 4
  • 5. 5
  • 6. Problems of Monolithic Architectures • Code complexity and maintainability • Deployment becomes the bottleneck • Fear to change • Lack of ownership • Failure dependencies • One size doesn’t fit all (ex: relational DB) • Hard to scale out 6
  • 7. • Code complexity and maintainability • Deployment becomes the bottleneck • Fear to change • Lack of ownership • Failure dependencies • One size doesn’t fit all (ex: relational DB) • Hard to scale out 7
  • 9. Components & Connectors • Components – individual programs • Connectors are discussed below: • Communication between micro services is often standardized using • HTTP(S) – broadly available transport protocol • REST – uniform interfaces on data as resources with known manipulation means • JSON – simple data representation format • REST and JSON are convenient because they simplify interface evolution 9
  • 11. Decentralization • Micro-services decentralize data storage decisions • Monolithic applications prefer a single logical database for persistent data • Micro-services prefer letting each service manage its own database • either different instances or entirely different database systems 11
  • 12. Independence • Independent deployability is key • Each service has its own software repository • Each micro service can be scaled independently • Data sharing can be applied to micro-services as needed • Independent evolution of Features • Micro-services can be extended without affecting other services 12
  • 13. Black Box • Black box testing is a type of component interface testing • verifies that data being passed among components in the system is done right and it verifies application flow 13
  • 14. Polyglot • Polyglot persistence is an approach • Used in monolithic but frequently in micro services • Using multiple data storage technologies for an individual application • chosen based upon the best way data can be stored and retrieved for the application 14
  • 15. Over to Farwa Abdul Hannan (16F-9006) 15
  • 16. Typical Usage and Applications • Money Transfer/Transactional processing in Financial Systems • Most large scale web sites including Netflix, Amazon and eBay have evolved from a monolithic architecture to a Micro-Service architecture. 16
  • 17. Examples • Traditional Web Application architecture Monolithic VS Micro-Services 17
  • 18. Cont… • Taxi Hailing Company (monolithic architecture) 18
  • 19. Cont… Taxi Hailing Company (Micro-Services Architecture) 19
  • 21. Constraints and Limitations Constraints (principles that drive desired properties) • Elastic • Resilient • Composable • Minimal • Complete Limitations • Complexity • Creational (in case of Distributed Systems) • Operational • Deployment • Increased Memory Consumption 21
  • 22. Micro-Service Constraint #1 - Elastic • A Micro-Service must be able to scale, up or down, independently of other services in the same application. • This constraint implies that based on load, or other factors, applications’ performance and availability couldn’t be affected. • Multiple instances of each micro service can run ineffectively 22
  • 23. Micro-Service Constraint #2 - Resilient • A Micro-Service must fail without impacting other services in the same application. • A failure of a single service instance should have minimal impact on the application. • Failure of all instances of a micro service, should impact a single application function & users should be able to continue using the rest of the application without impact. • Micro-Services are Loosely Coupled 23
  • 24. Micro-Service Constraint #3 - Composable • A Micro-Service must offer an interface that is uniform and is designed to support service composition. • Micro-Service APIs should be designed with a common way of identifying, representing, and manipulating resources. 24
  • 25. Micro-Service Constraint #4 - Minimal • A Micro-Service must only contain highly cohesive entities • In software, cohesion is a measure of whether things belong together. • High cohesion – all objects and functions in it are focused on the same tasks • A Micro-Service should perform a single business function, which implies that all of its components are highly cohesive. • Higher cohesion – more maintainable software. 25
  • 26. Micro-Service Constraint #5 - Complete • A Micro-Service must be functionally complete • A Micro-Service must offer a complete function, with minimal dependencies (loose coupling) to other services in the application. • Minimal but Complete. 26
  • 27. Limitation #1 - Complexity • Too many Micro-Services • Developers must deal with the additional complexity of creating a distributed system. • Testing is more difficult • Developers must implement the inter-service communication mechanism. • Developers must implement mechanisms for handling operations/functionality of many different types of services. • Obviously, the deployment complexity will be increased – need to deploy and manage many different service types. 27
  • 28. Limitation #2 – Increased Memory Consumption • The micro-services approach leads to the increased memory consumption. It simply, due to own address space for the each service. 28
  • 29. Summing Up • Improves fault isolation • Makes it easier for a new developer to understand the functionality of a service. • Developing distributed systems can be complex. • Multiple databases and transaction management can be painful. • Testing a Micro-services-based application can be cumbersome. • Deploying Micro-Services can be complex. • Ease of Modification – make a change/modification to a single service and deploy it independently of the rest of the system. 29
  • 30. References • https://aws-de- media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/sessions/pushing_t he_boundaries_1300_microservices_on_aws.pdf • http://www.pst.ifi.lmu.de/Lehre/wise-14-15/mse/microservice- architectures.pdf • https://www.nginx.com/blog/microservices-at-netflix-architectural-best- practices/ • https://smartbear.com/learn/api-design/what-are-microservices/ • http://www.martinfowler.com/articles/microservices.html • https://www.smartcat.io/blog/blackbox-testing-microservices/ • http://www.jamesserra.com/archive/2015/07/what-is-polyglot-persistence/ • https://2013.nosql-matters.org/cgn/wp-content/uploads/2013/02/Engelschall- NoSQL-Matters-Polyglot-Persistence.pdf • http://eventuate.io/exampleapps.html • http://microservices.io/patterns/microservices.html 30
  • 31. References • https://dzone.com/articles/microservices-five • https://www.nginx.com/blog/microservices-at-netflix-architectural-best-practices/ • https://www.nginx.com/blog/building-microservices-inter-process-communication/ • http://www.nirmata.com/2015/02/microservices-five-architectural-constraints/ • https://netflix.github.io • https://cdn.wp.nginx.com/wp-content/uploads/2015/05/intro-microservices.png • http://cloudacademy.com/blog/microservices-architecture-challenge-advantage- drawback/ • https://www.quora.com/What-are-some-disadvantages-of-a-microservice-architecture • https://www.stackbuilders.com/news/the-hidden-costs-of-microservices • http://cyberleninka.ru/article/n/on-micro-services-architecture 31

Editor's Notes

  1. http://www.pst.ifi.lmu.de/Lehre/wise-14-15/mse/microservice-architectures.pdf it becomes critical to have standardized methods of communication between them. Since services don't all have to be written in the same language, the chosen communication protocols must be language and platform independent. 
  2. http://www.martinfowler.com/articles/microservices.html
  3. http://www.pst.ifi.lmu.de/Lehre/wise-14-15/mse/microservice-architectures.pdf For example, you can deploy a new version of (a part of) the UI without re-deploying the whole system
  4. when it comes to testing levels, we have unit testing, integration testing, component interface testing and system testing.
  5. Developing distributed systems can be complex. By which I mean, because everything is now an independent service, you have to carefully handle requests travelling between your modules. There can be a scenario where one of the services may not be responding, forcing you to write extra code specifically to avoid disruption. Things can get more complicated when remote calls experience latency. Testing a microservices-based application can be cumbersome. Using the monolithic approach, we would just need to launch our WAR on an application server and ensure its connectivity with the underlying database. But now, each dependent service needs to be confirmed before you can start testing. Deploying microservices can be complex. They may need coordination among multiple services, which may not be as straightforward as deploying a WAR in a container.